目前,我使用以下查询as described here来浏览表格:
select token(id) as token_id, description, title from my_table where token(id) >= -8987733732583272758 limit 10;
将使用上一个查询的最后一个标记查询下一页:
select token(id) as token_id, description, title from my_table where token(id) >= -7325522621472161647 limit 10;
现在我的问题是:这是正确的吗?结果集总是按令牌(id)排序,这样我就不会跳过任何行吗?
答案 0 :(得分:3)
我认为自从Cassandra 2.0以来,如果你使用java驱动程序,就会有自动分页功能。因此,令牌方法可能不是浏览表格的最佳方式。
在此处查看更多信息:automatic paging。
答案 1 :(得分:1)
在我们需要迭代整个表的情况下,我们将不得不使用token()函数,而不是跨群集排序的分区键,而是分区键的令牌。所以之前的两个查询变为:
SELECT * FROM images LIMIT 100;
SELECT * FROM images WHERE token(image_id) > token([Last image ID received]) LIMIT 100;