时间戳的cassandra限制条款(timeuuid)

时间:2016-07-18 12:59:21

标签: cassandra timeuuid

我有一个cassandra表结构如下

create table demo (user_id text , comment_id text , timestamp timeuuid , PRIMARY KEY (user_id , comment_id , timestamp))

现在在UI中我希望分页,以便在点击下一个按钮时,我应该得到10到20之间的值,然后是20到30,依此类推。

我知道我们无法在cassandra中启动查询

select * from demo limit 10,20 

因此,如果我创建一个查询

select * from demo where timestamp = 'sometimestampvalue' limit 10;

这将提供来自' sometimestampvalue'的10个值。直到接下来的10个值。

然后将最后一行时间戳值存储在变量(比如X)中,然后将下一个查询作为

启动
select * from demo where timestamp = 'X' limit 10;

等等,这会有效吗?或者更好的事情可以做,因为我已经准备好改变表格的结构,同时添加了计数器列,基本上我应该可以根据任何列进行分页。

2 个答案:

答案 0 :(得分:1)

看到这个答案: Cassandra Limit 10,20 clause

基本上,您必须在应用代码中处理它。你的建议看起来会起作用,只需稍加调整即可。

答案 1 :(得分:1)

在驱动程序中可以更轻松地完成分页,您可以在其中设置获取大小。例如,在Java中:

cluster.getConfiguration().getQueryOptions().setFetchSize(10);

请参阅DataStax Java Driver for Apache Cassandra, Features, Paging