ventajas - sintaxis cassandra
¿Cuál es la diferencia entre crear una tabla y crear una familia de columnas en Cassandra? (4)
Consulte el documento: https://cassandra.apache.org/doc/old/CQL-3.0.html
Especifica que el LRM del CQL admite la palabra clave TABLE siempre que se admita COLUMNFAMILY.
Esta es una prueba de que TABLE y COLUMNFAMILY son sinónimos.
Necesito detalles tanto del rendimiento como de los aspectos de consulta. Aprendí de un sitio que solo se puede dar una clave al usar una familia de columnas. Si es así, ¿qué sugeriría para mi espacio de claves? Necesito usar agrupar por, ordenar por, contar, sumar , ifnull, concat, joins y algunas veces consultas anidadas.
En Cassandra no hay diferencia entre tabla y familia de columnas. son un concepto
Las familias de columnas están algo relacionadas con la tabla de la base de datos relacional, con diferencias de distribución y quizás incluso un carácter idealista.
Imaginar que tiene una entidad de usuario que podría contener 15 columnas, en una base de datos relacional es posible que desee dividir las columnas en una estructura basada en columnas pequeñas que todos conocemos como Tabla. En db distribuido, como Cassandra, podrá concatenar todas las entradas de esas tablas en una sola fila larga, por lo que si usa el gestor de perfiles / db verá una sola tabla con 15 columnas en lugar de 2/3 tablas. Otra cosa interesante es que cada familia de columnas se escribe en nodos diferentes, tal vez en un grupo diferente y se reconoce por la tecla de la fila, lo que significa que tendrá una sola tecla para toda la familia de columnas y no necesitará mantener un PK o FK para cada tabla y mantener las relaciones entre ellos con 1-1, 1-n, nn relaciones. ¡Fácil!
Para responder a la pregunta original que planteó: una familia de columnas y una tabla son lo mismo.
- El nombre "familia de columnas" se usó en la antigua API de Thrift .
- El nombre "tabla" se usa en la nueva API de CQL .
Puede encontrar más información sobre las API aquí: http://wiki.apache.org/cassandra/API
Si necesita usar "agrupar por, ordenar por, contar, sumar, ifnull, concat, unir y algunas veces consultas anidadas" como dice, entonces probablemente no quiera usar Cassandra, ya que no es compatible con la mayoría de ellas. .
CQL admite COUNT
, pero solo hasta 10000. Admite ORDER BY
, pero solo en claves de clustering. Las otras cosas que mencionas no son compatibles en absoluto.