基于行范围的Cassandra查询表

基于行范围的Cassandra查询表,cassandra,Cassandra,我是卡桑德拉的新手。我正在使用cassandra-3.0和datastax java驱动程序进行开发。我想知道cassandra是否提供了基于rowkey范围的数据传输选项 差不多 select * from <table-name> where rowkey > ? and rowkey < ?; 从何处选择*行键>?和rowkey

我是卡桑德拉的新手。我正在使用cassandra-3.0和datastax java驱动程序进行开发。我想知道cassandra是否提供了基于rowkey范围的数据传输选项

差不多

select * from <table-name> where rowkey > ? and rowkey < ?;
从何处选择*行键>?和rowkey<?;

如果没有,cassandra(java/cql)中是否还有其他选项可以基于行范围获取数据?

不幸的是,cassandra中没有一种机制可以按照您的要求工作。在分区键(rowkey)上运行范围查询的唯一方法是使用
令牌
函数。这是因为Cassandra根据分区键的哈希标记值对集群中的行进行排序。该值对您来说并没有任何意义,但它允许您在一个大表中“翻页”,而不会遇到超时

SELECT * FROM <table-name>
WHERE token(rowkey) > -9223372036854775807
AND token(rowkey) < -5534023222112865485;

不幸的是,在《卡桑德拉》中确实没有一种机制能够按照你所要求的方式工作。在分区键(rowkey)上运行范围查询的唯一方法是使用
令牌
函数。这是因为Cassandra根据分区键的哈希标记值对集群中的行进行排序。该值对您来说并没有任何意义,但它允许您在一个大表中“翻页”,而不会遇到超时

SELECT * FROM <table-name>
WHERE token(rowkey) > -9223372036854775807
AND token(rowkey) < -5534023222112865485;