2017-01-31 4 views
0

私はcassandraのクラスタリングキーをソートするためのカスタムコンパレータ関数を使用する方法がありますか?Cassandraのクラスタリング列のカスタムコンパレータを定義します。

私のテーブル定義は、次のようになります。ここでは

CREATE TABLE temp (user_id text, data_id int, data text, PRIMARY KEY(user_id, data_id)); 

data_idは、クラスタリング列として使用されます。私はディスクに書き込まれたときにdata_idの順序を指示するカスタムコンパレータを定義できるかどうか疑問に思っていました。

先生のおかげで:)。

+0

ここにはhttp://stackoverflow.com/questions/21427716/use-of-order-by-clause-in-cassandraが含まれていますが、その間に変更されていないようです。これを行う特定のユースケースはありますか?あなたのアクセスパターンは何ですか? –

+0

私の使用例では、data_id自体は、単にascまたはdesc関数を適用することによって、感知できる順序を定義しません。 data_idは、複数の部分を含む複合IDです。順序付けは、data_idの符号化された情報のいくつかを考慮する必要があります。さらに、ある列ファミリのdata_idの順序付け機能は、別の列ファミリの場合と異なる場合があります。 – user1855193

+1

通常、このデータが何らかの方法で合成されている場合、アプリケーションレベルで分割して保存する必要があるため、cassandraに送信する必要があります。 1つのフィールドに複数の値を保存することは、より古いカッサンドラヴァルシオンのパターンでした。それはアクセスパターンに関するものなので、アクセスするときにデータを準備する必要があります。 –

答えて

0

これは現在、私の知る限りでは、キャサンドラではサポートされていません。

正しいアプローチが何であるかを知るには、上記のコメントを参照してください。

関連する問題