2011-11-29 12 views
5

Jestem nowym użytkownikiem Cassandry i wypróbowuję modelowanie danych i zapytania dotyczące zakresu.Zapytania z zakresu Cassandra

Dla celów edukacyjnych chcę stworzyć bazę danych, w której będę mógł przechowywać linie dziennika z ich logType i czasem generowania dziennika. Gdzie muszę odpowiedzieć poniżej zapytanie:

Znajdź loglines według LogType między zakresem dat.

I WZÓR mojej bazy danych jako rodziny 2 kolumna: 1) Zaloguj

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

gdzie mam zamiar przechowywać linie z log ich logid na

ex: 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}]; 

W tym c olumn rodziny będę przechowywać typ dziennika wraz z upływem czasu i id linii log z dziennika rodziny kolumny:

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

Chcę uzyskać wyniki, gdy dany rodzaj dziennika i zakresu dat.

Czy ktoś może mi podpowiedzieć, jak uruchomić zapytanie dotyczące zakresu w rodzinie super-kolumn?

Odpowiedz

6

Artykuł na temat modelowania danych szeregów czasowych w Cassandry:

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

dla szeregów czasowych, tak naprawdę chcą zrobić większe wiersze - prawdopodobnie w okolicach 10k-50k kolumn w rzędzie jako punkt wyjścia (w zależności od obciążenia). Można uniknąć Super kolumny całkowicie jeśli ustawia klucz do funkcji „datę wiadra”:

[datetime] _ [5 sekundowych odstępach] (ziarnistość ponownie w zależności od obciążenia)

ten sposób twoje klawisze być ponownie utworzonym, a Ty właśnie wydajesz multi_get z kluczami dla potrzebnych kubełków.

Bardziej ogólny przegląd modelowania danych:

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

+0

Dzięki zznate, na [link] (http://rubyscale.com/2011/basic-time-series-with-cassandra/) jest bardzo pomocne. – user1071714

+0

Dzięki zznate, [link] (http://rubyscale.com/2011/basic-time-series-with-cassandra/) jest bardzo pomocny. Dostałem jednak inne podobne zapytania o zakres czasowy, aby odpowiedzieć na kilka innych kolumn w log-line. Czy sugerujesz, żebym tworzył różne rodziny kolumn dla każdej kolumny z zapytaniem za pomocą [columnvalue-datetimeinterval] lub czy istnieje inne lepsze działanie? – user1071714