1

我使用以下 CQL 在 cqlsh 中的 CQL3 中创建了一个表:

CREATE TABLE test (
    locationid int,
    pulseid int,
    name text, PRIMARY KEY(locationid, pulseid)
) WITH CLUSTERING ORDER BY (locationid ASC, pulseid DESC);

请注意,locationid 是一个整数。

但是,在我插入数据并运行选择之后,我注意到 locationid 的升序排序似乎是基于字符串,而不是整数。

cqlsh:citypulse> select * from test;
 locationid | pulseid | name
------------+---------+------
          0 |       3 | test
          0 |       2 | test
          0 |       1 | test
          0 |       0 | test
         10 |       3 | test
          5 |       3 | test

请注意 0 10 5. 有没有办法通过其实际数据类型对其进行排序?

谢谢,艾莉森

4

1 回答 1

3

在 Cassandra 中,主键的第一部分是“分区键”。该密钥用于在集群中分发数据。它以随机方式执行此操作以实现均匀分布。这意味着您不能按主键的第一部分进行排序。

你用的是哪个版本的 Cassandra?在最新版本的 1.2 (1.2.2) 中,您使用的示例中的 create 语句无效。

于 2013-03-07T02:17:40.283 回答