Introducción a la familia de columnas con Cassandra



Este blog destaca la importancia de la familia de columnas con Cassandra

Familia de columnas

Una familia de columnas es similar a una tabla en RDBMS o sistema de gestión de bases de datos relacionales y es una división lógica que asocia datos similares. Básicamente, en datos similares tiende a almacenar algún tipo de datos que son de temas similares.

Por ejemplo, los datos de un pedido se almacenan en una sola familia de columnas, por lo que puede tener un ID de pedido como clave de fila, así como varias columnas, como el tipo de producto que se trajo como parte de ese pedido para almacenarse en la familia de pedidos en particular. . Para dar ciertos ejemplos, una familia de columnas de usuario consta de una identificación de usuario como clave. Por lo tanto, uno es libre de elegir un ID y las columnas pueden ser 'nombre = Kunal'. Y los valores de las columnas son Kunal y Bangalore. Hay una segunda familia de columnas llamada familia de columnas de cricketer que permite el almacenamiento de estadísticas de cricketer en una familia de columnas. Por ejemplo, puede tener Sachin Tendulkar en una columna y varios siglos en otra. Por tanto, puede haber cualquier número de columnas.





Tipos de columnas

La familia de columnas no es más que una tabla que es análoga a una tabla en un mundo RDBMS. Hay ciertos tipos, a saber

Familia de columnas estáticas - La familia de columnas estáticas es donde se definen los nombres y tipos de datos. Entonces, cuando se crea la familia de columnas, está disponible la opción de nombrar el nombre de la columna y los tipos de datos. Se llama estática porque las columnas permanecen estáticas y se conocerá la cantidad de columnas disponibles.



c ++ java python

Familia de columnas dinámicas - Una familia de columnas dinámicas, por otro lado, no define los nombres de las columnas al principio y la capacidad de Cassandra para usar aplicaciones arbitrarias y nombres de columnas para almacenar datos está disponible. Así que la dinámica ayuda de alguna manera porque en datos no estructurados, la mayoría de las veces, la familia de columnas dinámicas ayuda a ocuparse de nuevos campos que podrían haberse agregado más adelante.

Si tiene una familia de columnas estáticas y desea agregar una familia de columnas dinámicas en su código mientras carga los datos, puede agregarla a una familia de columnas estáticas en cualquier momento. Cassandra da la libertad de elegir los nombres de las columnas.

Diferencia con RDBMS

La familia de columnas Cassandra no tiene esquemas y es mucho más escalable. La familia de columnas Cassandra tiene dos atributos: Nombre y Comparador. Entonces, cuando tiene una familia de columnas Cassandra, darle un nombre se vuelve obligatorio y Comparator es básicamente un tipo de datos para los nombres de columna. Si no especifica el comparador, asumirá que es un comparador predeterminado.



Cassandra también tiene una columna de familias de súper columnas. Utilizará una supercolumna internamente. Es una agrupación lógica y otro nivel de agrupación de columnas. Por lo tanto, en una familia de columnas de usuario, puede tener dos supercolumnas donde podemos tener la información personal de los usuarios y la información del producto.

Columnas

Una columna es el incremento más pequeño de datos en Cassandra. Tiene 3 componentes:

  • Nombre
  • Valor
  • Sello de tiempo - Se utiliza en la resolución de conflictos y la marca de tiempo no se puede editar. Es un mecanismo interno para ver cuándo se actualizaron estos datos o esta columna.
  • Columnas expiradas - Se puede dar una fecha de vencimiento a una columna para saber que la columna vencerá.
  • Columnas de contador - Las columnas de contador no son más que mantener las columnas para que pueda incrementar y disminuir esas columnas de contador.

Supercolumnas

Super Columns agrupa todas las columnas en conjunto según una necesidad empresarial y una agrupación lógica. Agrega otro nivel de anidamiento a la estructura de la familia de columnas regular. Comprenden una estructura familiar de supercolumnas.

El caso principal de las supercolumnas es desnormalizar varias filas de otras familias de columnas en una sola fila, lo que permite la recuperación de datos de vista materializada.

Casos de uso

Limitaciones de las supercolumnas

Una limitación es que todas las subcolumnas de una familia de supercolumnas se deben deserializar para leer una sola familia de subcolumnas. Otra limitación es que no podemos crear índices secundarios en las subcolumnas de una supercolumna.

que es sqoop en hadoop

Tipos de datos de columna

Tipos de datos de columna

En la imagen de arriba, hay diferentes tipos de datos. El tipo de datos de un valor de columna se denomina validador. Y comparador es el tipo de datos de una columna. El nombre y la dirección se convierten en un nombre de columna. Entonces puede tener una fecha en caso de nombres de columna. También puede tener datos de series de tiempo si tiene la fecha como nombre de columna.

Filas

Puede haber filas anchas y varias filas. Puede haber millones de columnas y filas disponibles.

Las filas delgadas tienen una pequeña cantidad de columnas con la opción de tener solo filas limitadas.

pasando argumentos de línea de comando en java

Clave compuesta

Consta de uno o más campos de clave primaria. Suponga que el nombre de una ciudad se establece como una clave de fila, tal vez haya una ciudad nombrada en dos estados diferentes, por lo que tendrá que mencionar qué ciudad y qué estado. Esto simplemente significa que se debe indicar la clave. En lugar de tener una clave de columna simple de un tipo, puede agregar varios valores también llamados componentes de varios tipos para formar una clave de columna única.

Tienes una pregunta para nosotros? Menciónalos en la sección de comentarios y nos pondremos en contacto contigo.

Artículos Relacionados:

Introducción a los soplones en Cassandra