我有一个带有少量行(< 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
""
那么我怎样才能完成对单行中所有列的缓冲读取呢?谢谢。