Как получить отсортированные строки из Кассандры при использовании RandomPartioner и Hector в качестве клиента? - PullRequest
2 голосов
/ 07 ноября 2011

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

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

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

Моя колонка Family выглядит следующим образом:

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 и без него.

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

1 Ответ

6 голосов
/ 07 ноября 2011

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

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

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

См. Также Данные временных рядов Кассандры и 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/

...