1

get_range_slicesランダム パーティショナーの場合も、すべてのキーを反復処理します。私が理解しているように、このクエリの結果は重複したキーを返しません。これは、リングを昇順にするためです。キーはハッシュされるため、Cassandra はそのようなクエリを実行できるように追加の「インデックス」が必要になります。各キーが次のキーへの参照を保持する必要があるように (そうではありません)。

ランダム パーティショナーの場合に、Cassandra がすべてのキーの反復をどのように実現するかについて、誰かがヒントを教えてくれませんか?

4

2 に答える 2

2

結果はランダムな順序で返されます。より具体的には、トークンの順序 (キーのハッシュ値)。

于 2012-10-17T16:19:54.937 に答える
0

編集: 100 個のノードがある場合、単一のノードから get_range_slices を実行することは決してないので、元の質問を理解しているかどうかはわかりません。通常、すべてのキーを並行して処理できるように、cassandra のアダプターを使用して cassandra の上に hadoop map/reduce をインストールします。

get_range_slices は一般に、ランダム パーティショナーで「すべて」のキーを取得するために使用されることはありません。代わりに、バイナリコードを各マシンに送信する方がはるかに高速であり、各マシンが並行して実行されるため、マップ/リデュースが利用されるため、データセット全体をはるかに高速にトラバースできます。

すなわち。get_range_slices の代わりに map/reduce を調べる必要があるのではないでしょうか?

別のオプションは、ストームを使用でき、各パーティションを処理するマシンを持つことができるため、PlayOrm を使用する場合は PlayOrm のパーティショニングです。そして、あなたはすることができます

 PARTITIONS(:partitionId) SELECT * FROM Table

パーティションのすべての行を取得します。

もちろん、結合なども実行できます。それらは複数のディスクから並行して読み取り、ディスクを処理するため高速です。その並行アクションで処理を高速化する必要があります。

于 2012-10-18T13:31:42.937 に答える