用于分页遍历所有行的Cassandra CQL方法

Tao*_*bow 1 thrift cql cassandra

我想以编程方式检查大型cassandra表中的所有行,并希望使用CQL.我知道我可以用thrift做到这一点,用multiget一次获得10,000行(或者很多行)并将最后检索到的键交给下一个multiget调用.但我查看了有关CQL选择的所有文档,似乎没有办法做到这一点.我已经设置了更高和更高的选择限制,并设置更高和更高的超时以匹配它.

是否有一种未记录的方式将起点交给CQL选择,或者我只需要使用thrift API分解和重写我的代码?

Tao*_*bow 6

结果是大于和小于非直观但有用的行为(至少在CQL2中,我还没有检查过CQL3).它实际上比较了令牌而不是关键值.这是一个例子:

> create table users (KEY varchar PRIMARY KEY, data varchar);
> insert into users (KEY, 'data') values ('1', 'one');
> insert into users (KEY, 'data') values ('2', 'two');
> insert into users (KEY, 'data') values ('3', 'three');
> insert into users (KEY, 'data') values ('4', 'four');
> select * from users;
   3 | three
   2 |   two
   1 |   one
   4 |  four
> select * from users LIMIT 1;
   3 | three
> select * from users WHERE KEY > '3' LIMIT 1;
   2 |  two
> select * from users WHERE KEY > '2' LIMIT 1;
   1 |  one
> select * from users WHERE KEY > '1' LIMIT 1;
   4 | four
Run Code Online (Sandbox Code Playgroud)

  • 如果您明确使用token命令,它在CQL3中工作.例如.select*from users其中token(key)> token('3')limit 1; (6认同)