Cassandra からランダムな行を取得する可能性はありますか (Python/Pycassa で使用)?
更新: ランダム行とは、ランダムに選択された行を意味します!
ランダムなキー (単なるランダムな文字列) と 1 の aを使用してget_range
リクエストを行うことで、これを行うことができる場合があります。start
row_count
メモリから、クエリがキースペースを「ラップアラウンド」するように、finish
キーは と同じである必要があると思います。start
これは通常、すべての行を返しますが、それrow_count
を制限します。
試したことはありませんが、これにより、正確な行キーを知らなくても単一の結果が得られるはずです。
これは私の場合に機能します:
ini = random.randint(0, 999999999)
rows = col_fam.get_range(str(ini), row_count=1, column_count=0,filter_empty=False)
行キーのタイプ(私の場合は文字列)に適応する必要があります
ランダムな行の意味がわかりません。ランダムアクセス行を意味する場合は、非常に簡単に実行できることを確認してください。
import pycassa.pool
import pycassa.columnfamily
pool = pycassa.pool.ConnectionPool('keyspace', ['localhost:9160']
cf = pycassa.columnfamily.ColumnFamily(pool, 'cfname')
row = cf.get('row_key')
それはあなたにどんな行も与えるでしょう。ランダムに選択された行が必要な場合、キーが何であるかを知らずにそれを簡単に行うことはできないと思います. インデックス行を生成し、そこからランダムな列を選択し、それを使用して別の列ファミリから行を取得できます。基本的に、各列の値が行を選択しようとしている列ファミリーの行キーである新しい行を作成する必要があります。次に、その行からランダムに列を取得でき、ランダムな行へのキーを取得できます。
pycassa は、インデックスのないランダムな行を取得するためのサポートを提供しているとは思いません。