【发布时间】:2011-08-11 04:33:15
【问题描述】:
我有一个包含少量行(
理想情况下,我想使用 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 指定一个列name。这是一个问题,因为我实际上不知道开始或结束列名是什么。特殊值"" 可以指示行的开始或结束,但这不适用于中间的任何值。
那么我怎样才能完成对单行中所有列的缓冲读取呢?谢谢。
【问题讨论】:
-
哪个版本的 cassandra/pycassa? Hector 0.7.0-28 和 cassandra 0.7+ 让你有列键迭代器,所以这是可能的。
-
我正在使用 cassandra 0.7 和 pycassa 1.0.7