una relacional practicas modelo implementacion esquema ejemplo diseño diccionario datos buenas bases arquitectura database-design cassandra timestamp cql

database-design - relacional - implementacion de bases de datos nosql



Cassandra: diseño de tabla con marca de tiempo y gran conjunto de datos (1)

Aunque desee obtener todo el registro en un solo día, puede usar este esquema

CREATE TABLE eventlog ( day int, month int, year int, recordid uuid, insertedtimestamp timestamp, source text, event text, PRIMARY KEY((day,month,year),recordid) );

Entonces, todos los datos en un solo día estarán en un solo nodo. Ahora puede obtener datos de una fecha de 2017-01-25 de manera más eficiente con la consulta siguiente

SELECT* FROM eventlog WHERE day = 25 and month = 1 and year = 2017

Tengo problemas para consultar grandes volúmenes de datos en un solo día. Estoy buscando consejos para crear un esquema de tabla eficiente.

Tabla: eventlog

Columnas: recordid (UUID), insertedtimestamp (timestamp), source (Text), event (Text)

Si simplemente lo hago:

CREATE TABLE eventlog ( recordid uuid PRIMARY KEY, insertedtimestamp timestamp, source text, event text );

A continuación, la consulta siguiente se verá abrumada por el volumen de datos, suponiendo que hoy sea 1/25.

select * from eventlog where insertedtimestamp > ''2017-01-25'';

El objetivo es seleccionar todos los registros de un solo día, sabiendo que debemos ser eficientes en la partición usando tablas con posiblemente millones de registros. ¿Cómo diseñaría un esquema de tabla eficiente (¿Qué configuración de clave de partición)? Gracias.