Как получить отсортированные строки из кассандры при использовании RandomPartioner и Hector в качестве клиента?

Чтобы улучшить свои навыки работы с Гектором и кассандрой, я пробую разные методы для запроса данных из кассандры.

Сейчас я пытаюсь сделать простую систему сообщений. Я хочу получать опубликованные сообщения в хронологическом порядке, начиная с последнего отправленного сообщения.

В обычном sql можно использовать "заказ по". Я знаю, что это возможно, если вы используете OrderPreservingPartitioner, но этот разделитель устарел и менее эффективен, чем RandomPartioner. Я думал о создании индекса для вторичного столбца со значением отметки времени als, но не могу понять, как получить данные. Я уверен, что нужно использовать как минимум два запроса.

Моя колонка Семья выглядит так:

create column family messages
with comparator = UTF8Type
and key_validation_class=LongType
and compression_options =
{sstable_compression:SnappyCompressor, chunk_length_kb:64}
and column_metadata = [
{column_name: message, validation_class: UTF8Type}
{column_name: index, validation_class: DateType, index_type: KEYS}
];

Я не уверен, следует ли мне использовать DataType или long для столбца индекса, но я думаю, что это не важно для этого вопроса.

Итак, как мне отсортировать данные? Если возможно, я хотел бы знать, как это делается, без синтаксиса CQL и без него.

Заранее спасибо.


person Rubenski    schedule 07.11.2011    source источник


Ответы (1)


Я не думаю, что есть совершенно простой способ сделать это при использовании RandomPartitioner.

Столбцы в каждой строке автоматически сохраняются в отсортированном порядке, поэтому вы можете сохранить каждое сообщение как столбец с меткой времени.

Конечно, очень скоро ваш ряд станет большим. Таким образом, вам нужно будет разделить сообщения на строки (по дням, часам или минутам и т. Д.), И ваш клиент должен будет решить, к каким строкам (временным периодам) получить доступ.

См. Также данные временных рядов Cassandra и http://rubyscale.com/2011/basic-time-series-with-cassandra/ и https://www.cloudkick.com/blog/2010/mar/02/4_months_with_cassandra/ и http://pkghosh.wordpress.com/2011/03/02/cassandra-secondary-index-patterns/

person DNA    schedule 07.11.2011
comment
Спасибо @DNA за сообщение на rubyscale.com/2011/basic-time-series -with-cassandra мне очень помогает! - person Rubenski; 08.11.2011