在 cassandra 中处理分页结果
Posted
技术标签:
【中文标题】在 cassandra 中处理分页结果【英文标题】:Handling Paged results in cassandra 【发布时间】:2017-10-18 08:51:14 【问题描述】:我正在查看 this 。但无法弄清楚它是如何工作的。我的期望是当我会做session_execute
它会给我10
行fetch_size=10
。
query = "SELECT * FROM users where region_code=1"
statement = SimpleStatement(query, fetch_size=10)
for user_row in session.execute(statement):
print(user_row)
print('*'*100)
它只给我单行。我在这里缺少什么。我想让它成为paginated api
【问题讨论】:
【参考方案1】:如果您使用SELECT * FROM users where region_code=1 LIMIT 10
,它将获取 10 条记录。如果你使用SELECT * FROM users where region_code=1
获取大小为 10,它将通过一次抓取 10 的所有匹配行进行分页。在您的 for 循环消耗 10 行后,它将进行另一个阻塞查询以自动获取下一个 10。
【讨论】:
知道了,我的results.current_rows
给了我 10 行 (fetch_size)
。我也在使用paging_state
来获取下一组。但是我怀疑如果用户从页面 1
跳转到 5
那么这不是正确的方法吗?
另外,如果用户想将第 4 页回溯到第 3 页,这里也行不通吧?以上是关于在 cassandra 中处理分页结果的主要内容,如果未能解决你的问题,请参考以下文章