2012-03-01 10 views
2

ここでは、ユースケースの例を示します。(CQLの)cassandraの固定数の(timeuuid)列を実装する方法は?

timeuuidベースの列のすべての詳細を含む最後のN(固定バケットサイズとして1000と言う)ユーザーアクションを保存する必要があります。

通常、各ユーザーのアクションは、ユーザーIDが行キーとして使用される「UserAction」列ファミリと、timeuuid列のアクションにあります。 「AllActions」列ファミリでは、列の名前と同じtimeuuidとユーザーIDを列の値として格納することもできます。これは基本的に関係の列ファミリですが、残念なことにユーザーアクションの詳細はありません。この列ファミリを使用してクエリを実行すると、無作為化されたpartionerが原因で高価になる可能性があります。一方、 "AllActions" CFにすべての詳細を格納すると、cassandraはある時点でその大きな行を適切に処理できません。このため、最後のN個のユーザーアクションをすべての詳細とともにtimeuuidベースの列の固定数で保存したいのです。たぶん、あなたは、このユースケースのためのより良い設計ソリューションを有していても良い

...私はそれを聞きたい...

ない場合は、問題は(カサンドラに(timeuuid)の列の固定番号を実装する方法でありますCQLを使って)効果的ですか?

挿入後、cqlのDELETEである種の範囲サポートがあった場合、古い(オーバーフロー)列を削除することができました。 AFAIKはこれをサポートしていません。

だから、どんな考えですか?事前にありがとう...

答えて

2

IMHO、これはC *が圧縮のようにそれ自身を処理しなければならないものです。クライアント側でこれを処理することは良い考えではありません。

おそらく、「最近のデータ」に適した列ファミリの構成(記憶域)オプションが必要です。

+0

こちらは[CASSANDRA-3929](https://issues.apache.org/jira/browse/CASSANDRA-3929)です。 –

関連する問題