cassandra的分区键上的令牌功能如何工作?

时间:2016-11-07 06:33:06

标签: cassandra cqlsh

在cassandra DB中我正在使用令牌函数对日期类型的分区键列进行范围查询,但是我得到的结果不正确。我打算在2016-09-09之后获得记录,但我也会得到2016-09-07的记录。

Cassandra版本:2.1.8 CQL版本:3.0

请参阅下面的查询,如果我做错了,请告诉我

user@cqlsh:mydb> select updated_on_day,updated_on from sample_data  where token(updated_on_day) > token('2016-09-09')  and token(updated_on_day) < token('2016-11-11') limit 10;

 updated_on_day           | updated_on
--------------------------+--------------------------
 2016-09-14 00:00:00+0530 | 2016-09-14 11:53:03+0530
 2016-09-14 00:00:00+0530 | 2016-09-14 14:26:58+0530
 2016-09-14 00:00:00+0530 | 2016-09-14 15:30:48+0530
 2016-09-14 00:00:00+0530 | 2016-09-14 16:01:56+0530
 2016-09-07 00:00:00+0530 | 2016-09-07 12:36:36+0530

1 个答案:

答案 0 :(得分:0)

当然,您的分区是按其令牌排序的,除非您使用保留分区键的原始字节顺序的ByteOrderedPartitioner,否则可以假定它们的顺序是随机的。

Here是我最近对类似问题的回答。