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.