行数が少ない (< 100) cassandra クラスターがあります。各行には約 200 万列あります。行全体 (200 万列すべて) を取得する必要がありますが、読み取りを完了する前に、あちこちで問題が発生し始めます。私はある種のバッファリングされた読み取りをしたいと思います。
理想的には、Pycassa を使用して次のようなことをしたいと思います (いいえ、これは を呼び出す適切な方法ではありませんget
。アイデアを得ることができるようにするためです)。
results = {}
start = 0
while True:
# Fetch blocks of size 500
buffer = column_family.get(key, column_offset=start, column_count=500)
if len(buffer) == 0:
break
# Merge these results into the main one
results.update(buffer)
# Update the offset
start += len(buffer)
Pycassa (ひいては Cassandra) では、これを行うことはできません。代わりに、 と の列名を指定する必要がありcolumn_start
ますcolumn_finish
。開始列名または終了列名が実際にどうなるかわからないため、これは問題です。特別な値""
は、行の開始または終了を示すことができますが、中間の値では機能しません。
では、1 行のすべての列のバッファリングされた読み取りを実行するにはどうすればよいでしょうか? ありがとう。