如何使用RangeSlicesQuery从第n行键重新分页?
数据基于RandomPartitioner,而setRange函数的反向选项似乎仅适用于不在行上的列。 (http://tinyurl.com/73tncn3)
示例:
row_key1
row_key2
row_key3
row_key4
row_key5
row_key6
预期:
row_key3
row_key4
收到:
row_key1
row_key2
收到
row_key4
row_key5
答案 0 :(得分:1)
使用RandomPartitioner时,Cassandra存储行的有效顺序是随机的。因此,您无法以您期望的方式进行范围切片。
您应该做的是连续实现您的视图,并为行键使用某种计算的存储桶。例如,行键可以是实际行键/ 10,然后该行可以包含10个实际行:
0 -> {row_key1 : v1, row_key2: v2, ...}
1 -> {row_key10: v10, row_key11: v11, ...}
and do on.
现在要进行查询,你可以在第0行从第'row_key4'列开始获取切片......
现在你可能会问,“我的列密钥怎么样”?为此,您应该使用复合列名称。例如,最初看起来像这样的东西:
row_key1 -> {column1: v1, column2: v2, ...}
现在看起来像这样:
0 -> {[row_key1, column1]: v1, [row_key2, column2]: v2, ...}
and so on.
HTH
汤姆