1

CQL (またはさらに重要なのは、datastax Java ドライバー) で、「WHERE カウンター > 5」のように、カウンターの値を正確に照会できますか?

ありがとう、

4

2 に答える 2

1

http://cassandra.apache.org/doc/cql3/CQL.html#counters

したがって、カウンター値ではなく、キーでのみクエリを実行できます。

于 2014-02-20T04:27:02.833 に答える
0

ミハイルが投稿したように、カウンターではできません。また、いくつかの余分なポイントを追加したいと思いました。まず、これは基本的にアーキテクチャ上の理由でサポートされていません。「CQL がまだサポートしていない」などの表面的な理由によるものではありません。次に、統計 (カウントを含む) でクエリを実行する場合は、次のものが必要です。

  • カウンター値によるクエリを可能にするテーブル。範囲クエリ (<、> または同等のもの) が必要な場合は、カウントが最初のクラスタリング列 (つまり: primary key(some_group, counter_value, {counted object id})) であるスキーマを検討してください。これにより、カウンター値で行が内部的にソートされるため、指定したようなクエリをすばやく検索できます。some_groupパーティション キー ( ) がどうなるかを考える必要があります。ノード間でデータを分割できることと、グローバルにクエリを実行しやすいこととの間にはトレードオフがあります。

  • スケーラブルなソート済みテーブルを更新する方法。データの受信速度に基づく 2 つのオプション:

    a) 更新の頻度が非常に低い場合は、ソートされたテーブルをリアルタイムで更新するだけです。したがって、カウンターがインクリメントされたら、古い行を削除して新しい行を挿入します。これにより、すぐに更新できますが、書き込みは非常に高価になるため、多くの行が常に変更されている場合、これはスケーリングされません。

    b) 書き込みが頻繁に行われる場合、またはカウンターによるクエリのシナリオで少し古いデータを使用できる場合は、最新のカウントを読み取り、必要に応じて並べ替えられたテーブルを更新する定期的なタスクを実行することを検討してください。「ビッグデータ」ボリュームが進行中の場合、これを実行するには Hadoop 環境で行う必要がある場合があります。

于 2014-02-20T22:07:43.547 に答える