2014-12-30 3 views
0

Я экспериментировал с примером Timeseries в cassandra, указанным в http://planetcassandra.org/getting-started-with-time-series-data-modeling/. Теперь, как я могу проверить, что пример на рисунке 2 (Разделение строки в зависимости от метеостанции и даты) создал только две строки, и каждая строка содержит два столбца?Количество строк/столбцов в таблице

С уважением, Seenu.

ответ

1

Вы можете запросить каждую строку раздела «строка» и посмотреть, сколько «столбцов» присутствует в ней (обратите внимание, что кластерные столбцы на CQL представляют собой строки с общим префиксным ключом раздела, поэтому пример действительно создает то, что выглядит как четыре строки в CQL).

SELECT event_time, temperature FROM temperature_by_day WHERE weatherstation_id='1234ABCD' AND date='2013-04-03'; 

event_time    | temperature 
--------------------------+------------- 
2013-04-03 07:01:00-0400 |   72F 
2013-04-03 07:02:00-0400 |   73F 

SELECT event_time, temperature FROM temperature_by_day WHERE weatherstation_id='1234ABCD' AND date='2013-04-04'; 

event_time    | temperature 
--------------------------+------------- 
2013-04-04 07:01:00-0400 |   73F 
2013-04-04 07:02:00-0400 |   74F 

Или получить все кластерные столбцы сразу:

SELECT event_time, temperature FROM temperature_by_day WHERE weatherstation_id='1234ABCD' and DATE in ('2013-04-03', '2013-04-04'); 

event_time    | temperature 
--------------------------+------------- 
2013-04-03 07:01:00-0400 |   72F 
2013-04-03 07:02:00-0400 |   73F 
2013-04-04 07:01:00-0400 |   73F 
2013-04-04 07:02:00-0400 |   74F 

Или просто посмотрите на содержимое всей таблицы:

SELECT * from temperature_by_day ; 

weatherstation_id | date  | event_time    | temperature 
-------------------+------------+--------------------------+------------- 
      1234ABCD | 2013-04-04 | 2013-04-04 07:01:00-0400 |   73F 
      1234ABCD | 2013-04-04 | 2013-04-04 07:02:00-0400 |   74F 
      1234ABCD | 2013-04-03 | 2013-04-03 07:01:00-0400 |   72F 
      1234ABCD | 2013-04-03 | 2013-04-03 07:02:00-0400 |   73F 

Чтобы увидеть, как данные хранятся на диске , вы можете очистить пространство ключей до диска, а затем запустить служебную программу sstable2json в файле данных. Это покажет, что каждый ключ раздела хранится только один раз, а столбцы кластеризации хранятся в отсортированном порядке в ключе раздела.

[email protected]:/var/lib/cassandra/data/tkeyspace/temperature_by_day-e1a74970912211e4aa1ea3121441a41b# sstable2json tkeyspace-temperature_by_day-ka-1-Data.db 
[ 
{"key": "1234ABCD:2013-04-04", 
"cells": [["2013-04-04 07\\:01-0400:","",1420054084914905], 
      ["2013-04-04 07\\:01-0400:temperature","73F",1420054084914905], 
      ["2013-04-04 07\\:02-0400:","",1420054155058044], 
      ["2013-04-04 07\\:02-0400:temperature","74F",1420054155058044]]}, 
{"key": "1234ABCD:2013-04-03", 
"cells": [["2013-04-03 07\\:01-0400:","",1420054017282283], 
      ["2013-04-03 07\\:01-0400:temperature","72F",1420054017282283], 
      ["2013-04-03 07\\:02-0400:","",1420054049403031], 
      ["2013-04-03 07\\:02-0400:temperature","73F",1420054049403031]]} 
] 
+0

Поскольку я был на фоне РСУБД, выход select * в CQL смутил меня, что создано 4 строки. Но вы думаете, что проверка вывода nodetool cfstatus сообщит мне, что хранятся только значения столбцов, а не ключи раздела для каждой новой вставки? –

+0

Привет, Srinivasa, я добавил пример моего ответа, чтобы показать, как данные хранятся на диске. Вы можете видеть, что ключи разделов не сохраняются для каждой вставки. Они определяют ведро данных, в которое помещаются кластерные данные, чтобы он мог быть запрошен эффективно. –

Смежные вопросы