使用Cassandra分页进行休息分页

时间:2018-04-09 13:48:56

标签: rest cassandra

据我所知,Cassandra没有经典的分页。为了检索更多项,必须提供(可序列化)令牌,这是先前查询的结果。

这是否意味着经典&我们在查询参数中指定页面和大小的整洁REST端点不再可能吗?我的意思是我们可以迭代Cassandra(选项1),但对于长列表来说这似乎效率很低,不是吗?或者我们不应该打扰而只是这样做?

或者,现在客户有责任提供从最后一个范围获得的令牌吗?这也意味着客户只能来回导航(除非我们做一些魔术,比如引擎盖下的自动倒带,这基本上意味着选项1)。

2 个答案:

答案 0 :(得分:2)

您可以让其余接口采用“pageToken”,序列化最后一个群集密钥,您检索到base64编码(或加密,然后编码,如果包含敏感信息),您可以在响应中传递。提供寻呼机令牌和计数,并可以继续向下迭代。它将是高效的,它只是取代了偏移量。提供聚类键较小,看起来不会很奇怪。有关示例,请查看https://developers.google.com/calendar/v3/pagination

答案 1 :(得分:2)

某些驱动程序支持某种此功能,例如,您可以将其放入查询字符串或cookie中的DataStax Java驱动程序exposes the "paging state",并从您停止的位置继续。 Python,Node.js,C ++和其他可能的驱动程序(未检查)的驱动程序中存在类似的功能。但这些只是“前进”迭代器