Вы можете запросить каждую строку раздела «строка» и посмотреть, сколько «столбцов» присутствует в ней (обратите внимание, что кластерные столбцы на 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]]}
]
Поскольку я был на фоне РСУБД, выход select * в CQL смутил меня, что создано 4 строки. Но вы думаете, что проверка вывода nodetool cfstatus сообщит мне, что хранятся только значения столбцов, а не ключи раздела для каждой новой вставки? –
Привет, Srinivasa, я добавил пример моего ответа, чтобы показать, как данные хранятся на диске. Вы можете видеть, что ключи разделов не сохраняются для каждой вставки. Они определяют ведро данных, в которое помещаются кластерные данные, чтобы он мог быть запрошен эффективно. –