2011-11-07 1 views
2

Hectorとcassandraのスキルを向上させるために、私はcassandraからデータを照会するさまざまな方法を試しています。RandomPartionerとHectorをクライアントとして使用するとソートされた行をcassandraから取り出す方法は?

現在、私は単純なメッセージシステムを作成しようとしています。投稿されたメッセージを、最後に投稿されたメッセージが最初に表示される順番で取得したいと考えています。

プレーンなSQLでは、 'order by'を使用することができます。 OrderPreservingPartitionerを使用すると可能ですが、このpartionerは非推奨であり、RandomPartionerよりも効率が悪いです。私はタイムスタンプals値で二次列にインデックスを作成することを考えましたが、私はデータを取得する方法を見つけることができません。少なくとも2つのクエリを使用する必要があると確信しています。私のコラムの家族はこのようになります

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} 
]; 

私はインデックス列のデータ型またはlongを使うべきかどうかわからないんだけど、私はこの質問のためには重要ではないと思います。

どうすればデータをソートできますか?可能であれば、私は白いCQL構文とホワイトアウトを知りたいと思っています。

ありがとうございます。

答えて

6

RandomPartitionerを使用するときにこれを行うには完全に簡単な方法はないと思います。

各行内の列はソート順に自動的に格納されるため、各メッセージをタイムスタンプをキーにして列として格納できます。

もちろん、あなたの行は大きくなるでしょう。したがって、メッセージを行(日、時間または分など)に分割する必要があり、クライアントはアクセスする行(期間)を決定する必要があります。 http://rubyscale.com/2011/basic-time-series-with-cassandra/上のポストは私に多くのことができます@DNA

Cassandra time series datahttp://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/

+0

感謝を参照してください! – Rubenski

関連する問題