3

Cassandra からランダムな行を取得する可能性はありますか (Python/Pycassa で使用)?

更新: ランダム行とは、ランダムに選択された行を意味します!

4

3 に答える 3

1

ランダムなキー (単なるランダムな文字列) と 1 の aを使用してget_rangeリクエストを行うことで、これを行うことができる場合があります。startrow_count

メモリから、クエリがキースペースを「ラップアラウンド」するように、finishキーは と同じである必要があると思います。startこれは通常、すべての行を返しますが、それrow_countを制限します。

試したことはありませんが、これにより、正確な行キーを知らなくても単一の結果が得られるはずです。

于 2012-03-05T13:12:14.057 に答える
0

これは私の場合に機能します:

ini = random.randint(0, 999999999)
rows = col_fam.get_range(str(ini), row_count=1, column_count=0,filter_empty=False)

行キーのタイプ(私の場合は文字列)に適応する必要があります

于 2012-12-03T19:00:21.533 に答える
0

ランダムな行の意味がわかりません。ランダムアクセス行を意味する場合は、非常に簡単に実行できることを確認してください。

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 は、インデックスのないランダムな行を取得するためのサポートを提供しているとは思いません。

于 2012-03-05T12:25:15.483 に答える