首页 文章

cassandra结果分页

提问于
浏览
2

假设,我有一个从cassandra读取数据的应用程序,并以每行10行或20行的行显示给用户 . 有没有办法在cassandra有效地做到这一点?假设,我有一个表'ks1.cf1',分区键'pk'和聚类列'ck',每个分区有超过1000行,我想一次向用户显示每个分区10行 . 一种方法是运行

SELECT * FROM ks1.cf1 LIMIT 10; 并获取最后一行并根据聚类列(值为'ck')执行不等式并再次限制结果

SELECT * FROM ks1.cf1 WHERE ck > value_in_last_row LIMIT 10;

这是一种有效的方法,还是会有很多开销多次运行相同的查询?结果分页如何在cqlsh中工作并且cql或java驱动程序是否支持类似的东西?是否使用LIMIT获取整个分区并仅显示请求的记录数?另外,如何对常规查询执行相同操作,例如,如果我要获取多个分区并且希望一次显示n个分区?

1 回答

  • 4

    如果您只需要跳转到下一页,这很容易 . 最新的Java驱动程序版本(2.0.10.1和2.1.6)公开了查询的分页状态,请参阅文档here .

    另一方面,偏移查询没有简单的解决方案(例如直接跳到第20页) . Cassandra没有开箱即用,请参阅CASSANDRA-6511 .

相关问题