c# cassandra composite cql

c# - Crear COLUMNAS compuestas(no claves) con CQL 3



cassandra composite (3)

Este artículo discute las posibles formas en que CQL 3 podría usarse para crear columnas compuestas en Cassandra 1.1. Son solo ideas. Nada es oficial, y la documentación de Datastax no lo cubre (solo claves compuestas).

Según tengo entendido, las columnas compuestas son varias columnas que juntas tienen un solo valor.

¿Cómo se crean con CQL?

EDITAR

Usaré C # para conectar con Cassandra. CQL parece fácil de usar, y es por eso que quiero usarlo.


¿Seguro que quieres crearlos con CQL? ¿Cuál es tu caso de uso?


Con Cassandra, usted almacena los datos en filas. Cada fila tiene una clave de fila y una cantidad de columnas. Cada columna tiene un nombre y un valor. Por lo general, el nombre y el valor de la columna (y la clave de la fila, para el caso) son valores únicos (int, largo, UTF8, etc.), pero puede usar valores compuestos en las claves de filas, nombres de columnas y valores de columnas. Un valor compuesto es solo una cantidad de valores que se han serializado juntos de alguna manera.

Con el tiempo, se han desarrollado varias API específicas del idioma. Estas API comienzan con la comprensión que describo más arriba y proporcionan acceso a una familia de columnas en consecuencia. Hector, la API de cliente de Java, es con la que estoy más familiarizado, pero hay otros.

CQL se introdujo como un medio para usar las tablas de Cassandra en una forma SQL / JDBC. No todas las capacidades de Cassandra fueron soportadas a través de CQL al principio, aunque CQL se vuelve cada vez más funcional a medida que pasa el tiempo.

No dudo de su necesidad de nombres y valores de columna compuestos (creo que eso es lo que está pidiendo). El problema es que CQL aún tiene que evolucionar (según tengo entendido) a ese nivel de soporte nativo. No sé si lo hará o no.

Sugiero que complete la definición de los esquemas de familia de columnas que desee, completa con valores compuestos si es necesario. Una vez que haya hecho eso, mire las diversas API disponibles para acceder a las familias de columnas de Cassandra y elija la que mejor se adapte al esquema que desee.

No has dicho qué idioma estás usando. Si estuvieras codificando en java, te recomendaría Hector y no CQL.


Creo que tienes un par de conceptos confusos. Es muy posible que esto sea culpa de la documentación de Datastax; si tiene alguna buena sugerencia para hacerlo más claro después de tener una mejor imagen, me complacerá enviarlas.

Las cosas de "teclas compuestas" en los documentos de Datastax en realidad están hablando de columnas de Cassandra compuestas. El motivo de la confusión es que las filas en CQL 3 no se asignan directamente a las filas del motor de almacenamiento (con qué trabajas cuando utilizas la interfaz de ahorro). La "clave compuesta" en el contexto de una tabla CQL solo significa una clave principal que consta de varias columnas, que se implementa mediante columnas compuestas en la capa de almacenamiento.

Este artículo es una de las mejores explicaciones sobre cómo se realiza la asignación y por qué es más fácil pensar en el modelo CQL.

Con este tipo de uso, la primera columna CQL se convierte en la clave de partición del motor de almacenamiento.

A partir de Cassandra 1.2 (en desarrollo), también es posible crear claves compuestas de motor de almacenamiento utilizando CQL, al poner paréntesis adicionales en la definición PRIMARY KEY alrededor de las columnas CQL que se almacenarán en la clave de partición (ver CASSANDRA-4179 ), pero esa probablemente sea la excepción, no la regla.