2011-11-29 23 views
5

Soy nuevo en Cassandra y estoy probando el modelado de datos y las consultas de rango.Cassandra Range Queries

Para fines de aprendizaje, deseo desarrollar una base de datos donde pueda almacenar líneas de registro con su LogType y Log time de generación. Donde tengo que responder debajo de la consulta:

Encuentra loglines por tipo de registro entre rango de fechas.

I Modelo de mi base de datos ya que las familias 2 columnas: 1) Entrar

create column family log with comparator = 'UTF8Type' 
and key_validation_class = 'LexicalUUIDType' 
and column_metadata=[{column_name: block, validation_class: UTF8Type}]; 

donde tengo la intención de almacenar las líneas con el registro de su LOGID

ejemplo: set log['7561a442-24e2-11df-8924-001ff3591711'][blocks]='someText|11-17-2011 23:40:42|sometext';

2)

create column family ltype with column_type = 'Super' 
and comparator = 'TimeUUIDType' 
and subcomparator = 'UTF8Type' 
and column_metadata=[{column_name: id, validation_class: LexicalUUIDType}]; 

En esta c COLUMNA familia pueda almacenar el tipo de registro junto con el tiempo y el ID de línea de registro de la familia de columnas de registro:

ex: set ltype[ltype1][12307245916538][id]='7561a442-24e2-11df-8924-001ff3591711'; 

quiero conseguir los resultados cuando se administra tipo de registro y el intervalo de fechas.

¿Alguien me puede guiar cómo ejecutar una consulta de rango en la familia de súper columnas?

Respuesta

6

Un artículo sobre el modelado de datos de series de tiempo en Cassandra:

http://rubyscale.com/2011/basic-time-series-with-cassandra/

Para series de tiempo, que realmente quieren hacer filas más grandes - probablemente en la vecindad de las columnas 10k-50k por fila como punto de partida (dependiendo de tu carga). Puede evitar súper columnas por completo si se hace la llave en función de la una "fecha de cubo":

[fecha y hora] _ [5 segundos de intervalo] (granularidad de nuevo dependiendo de la carga)

De esta manera sus claves puede ser recreado, y usted acaba de emitir un multi_get con las claves para los depósitos que desea.

Una visión más general de modelado de datos:

http://www.datastax.com/docs/0.8/ddl/index

+0

Gracias zznate, el [link] (http://rubyscale.com/2011/basic-time-series-with-cassandra/) es bastante util. – user1071714

+0

Gracias zznate, el [enlace] (http://rubyscale.com/2011/basic-time-series-with-cassandra/) es bastante útil. Sin embargo, obtuve otras consultas de rango de tiempo similares para responder para algunas otras columnas en la línea de registro. Entonces, ¿sugieres que cree diferentes familias de columnas para cada columna consultada con [columnvalue-datetimeinterval] o hay otro trabajo mejor? – user1071714