2016-03-11 4 views
3

Я хочу просмотреть «rowkey» с сохраненными данными в cassandra 3.0. Я знаю, у обесцененного кассандра-кли была команда «список». Однако в cassandra 3.0 я не могу найти замену для команды «list». Кто-нибудь знает новую команду cli для «списка»?cassandra-cli 'list' in cassandra 3.0

+0

'SELECT * FROM table' in cqlsh. Ячейки больше не выкладываются на диск, как в экономном формате, поэтому CQL SELECT является репрезентативным для ваших данных. –

+0

Но я хочу посмотреть, как Кассандра хранит эти данные под капотом. «Выбор * из таблицы» не показывает мне формат, такой как: RowKey: 100. => (name =, value =, timestamp = 1387 ..) 07. => (name = tmp, value = 51cc0000 , timestamp = 1387 ...). Как кассандра хранила мой «выбор» из таблицы под капотом? Я больше не могу использовать «список» в cassandra 3. – nimo23

+1

http://thelastpickle.com/blog/2016/03/04/introductiont-to-the-apache-cassandra-3-storage-engine.html – RussS

ответ

0

Вы можете использовать утилиту sstabledump в качестве предлагаемого @ chris-lohfink. Как это использовать? Создать пространство ключей, таблица в ней заполнить некоторые данные:

cqlsh> CREATE KEYSPACE IF NOT EXISTS minetest WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; 

cqlsh> CREATE TABLE object_coordinates (
    ... object_id int PRIMARY KEY, 
    ... coordinate text 
    ...); 

cqlsh> use minetest; 

cqlsh:minetest> insert into object_coordinates (object_id, coordinate) values (564682,'59.8505,34.0035'); 
cqlsh:minetest> insert into object_coordinates (object_id, coordinate) values (1235,'61.7814,40.3316'); 
cqlsh:minetest> select object_id, coordinate, writetime(coordinate) from object_coordinates; 

object_id | coordinate  | writetime(coordinate) 
-----------+-----------------+----------------------- 
     1235 | 61.7814,40.3316 |  1480436931275615 
    564682 | 59.8505,34.0035 |  1480436927707627 

(2 rows) 

object_id является первичным ключом (ключ раздела), coordinate является кластеризация один.

Flush изменения на диск:

# nodetool flush 

Найти sstable на диске и анализировать его:

# cd /var/lib/cassandra/data/minetest/object_coordinates-e19d4c40b65011e68563f1a7ec2d3d77 

# ls 
backups mc-1-big-CompressionInfo.db mc-1-big-Data.db mc-1-big-Digest.crc32 mc-1-big-Filter.db mc-1-big-Index.db mc-1-big-Statistics.db mc-1-big-Summary.db mc-1-big-TOC.txt 

# sstabledump mc-1-big-Data.db 
[ 
    { 
    "partition" : { 
     "key" : [ "1235" ], 
     "position" : 0 
    }, 
    "rows" : [ 
     { 
     "type" : "row", 
     "position" : 18, 
     "liveness_info" : { "tstamp" : "2016-11-29T16:28:51.275615Z" }, 
     "cells" : [ 
      { "name" : "coordinate", "value" : "61.7814,40.3316" } 
     ] 
     } 
    ] 
    }, 
    { 
    "partition" : { 
     "key" : [ "564682" ], 
     "position" : 43 
    }, 
    "rows" : [ 
     { 
     "type" : "row", 
     "position" : 61, 
     "liveness_info" : { "tstamp" : "2016-11-29T16:28:47.707627Z" }, 
     "cells" : [ 
      { "name" : "coordinate", "value" : "59.8505,34.0035" } 
     ] 
     } 
    ] 
    } 
] 

Или с -d флагом:

# sstabledump mc-1-big-Data.db -d 
[1235]@0 Row[info=[ts=1480436931275615] ]: | [coordinate=61.7814,40.3316 ts=1480436931275615] 
[564682]@43 Row[info=[ts=1480436927707627] ]: | [coordinate=59.8505,34.0035 ts=1480436927707627 

Выход говорит, что 1235 и 564682 и сохраняет координаты в этих разделах.

Ссылка на документ http://www.datastax.com/dev/blog/debugging-sstables-in-3-0-with-sstabledump

PS. sstabledump предоставляется по номеру cassandra-tools пакета в ubuntu.