El artículo de DynamoDB Wikipedia dice que DynamoDB es una base de datos de " valor-clave ". Sin embargo, al llamarlo una base de datos de "clave-valor" se pierde por completo una característica extremadamente fundamental de DynamoDB, la de la clave de clasificación : las claves tienen dos partes (clave de partición y clave de clasificación) y los elementos con la misma clave de partición pueden recuperarse juntos de manera eficiente por la clave de clasificación.
Cassandra también tiene exactamente la misma característica de clasificación de elementos dentro de una partición (que llama "clave de agrupamiento"), y el artículo de Cassandra Wikipedia utiliza el término almacén de columnas anchas para describirlo. Sin embargo, aunque este término "columna ancha" es mejor que "valor-clave", sigue siendo algo inapropiado porque describe la situación más general en la que un elemento puede tener una gran cantidad de columnas no relacionadas, no necesariamente una lista ordenada de artículos.
Entonces, mi pregunta es si hay un término más apropiado que pueda describir el modelo de datos de una base de datos como DynamoDB y Cassandra: las bases de datos que, como un almacén de valores clave, pueden recuperar de manera eficiente elementos para claves individuales, pero también pueden recuperar de manera eficiente elementos ordenados por clave o solo una parte de ella (la clave de clasificación de DynamoDB o la clave de agrupación de Cassandra ).
fuente
Respuestas:
Antes de que se introdujera CQL, Cassandra se adhirió más estrictamente al modelo de datos de almacén de columnas anchas, donde solo había filas identificadas por una clave de fila y que contenían columnas de clave / valor ordenadas. Con la introducción de CQL, las filas se conocieron como particiones y las columnas se podían agrupar opcionalmente en filas lógicas a través de claves de agrupación.
Incluso hasta Cassandra 3.0, CQL era simplemente una abstracción sobre el modelo de datos de ahorro original y no había concepto de filas CQL dentro del motor de almacenamiento. Eran solo un conjunto ordenado de columnas con una clave compuesta que constaba de los valores concatenados de las claves de agrupación. Más detalles se dan en este artículo . Ahora hay soporte nativo para CQL en el motor de almacenamiento, lo que permite que los modelos de datos CQL se almacenen de manera más eficiente.
Sin embargo, si piensa en una fila CQL como una agrupación lógica de columnas dentro de la misma partición, Cassandra aún podría considerarse un amplio almacén de columnas. En cualquier caso, no hay, que yo sepa, otro término bien establecido para describir este tipo de base de datos.
fuente