3

RandomPartitionerキーを分割するためにを使用して、列ファミリーのすべての行をトラバースする方法に関する情報を見つけることができないようです。リストされているフルスキャンへの通常のアプローチは、「MapReduceを使用する」(これはオプションですが、現時点ではありません)と、範囲スライスクエリを作成して行をバッチで取得し、範囲の下限を最後の値で更新することです。すべてのバッチの後に表示されるキー。これは、キーの順序を保証できない場合の奇妙なアプローチのように思われるので、この状況で受け入れられている方法は何であるか疑問に思いました。

明確にするために、この列ファミリー全体のトラバーサルは定期的に発生するものではなく、データベースへの標準的なアクセスパターンの一部ではありません。特に高速である必要はありません(もちろん、それは素晴らしいことですが!)ゴミなどをチェックするために時々それを行う必要があります。返される行が一貫性のあるスナップショットなどであるとは期待していません。

4

1 に答える 1

2

これを行うには Hadoop MapReduce を使用するのが正しい方法ですが、現時点では実行可能なオプションではないことは理解しています。したがって、いくつかの可能性があります。

  1. キーに何らかの論理的な順序があり、事前に計算または既知である場合は、バッチで一連のキーを複数取得できます。

  2. Cassandra のColumnFamilyInputFormatの動作と同様の範囲クライアントを作成できます。

  3. このようなHectorまたは別のライブラリの同様の構成を使用して、範囲スライスを実行できます。

于 2013-02-06T15:05:41.880 に答える