Cassandra - 按复合键和时间排序

时间:2015-10-08 15:47:55

标签: cassandra cassandra-2.0

我有这个架构:

CREATE TABLE datapoints (
  id UUID,
  collection_id UUID,
  time TIMESTAMP,
  PRIMARY KEY ((id), collection_id, time)
)
WITH CLUSTERING ORDER BY (collection_id ASC,time ASC);

我希望数据点按集合ID和时间排序,但是,它似乎在订购中包含了id。

这是一个输出示例:

 id                                   | collection_id                        | time
--------------------------------------+--------------------------------------+--------------------------
 08fc3461-4c1c-40ef-a9ba-aeedd454c0b4 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:27:00+0100
 93c32778-52fc-4568-872f-3697799f60a7 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:14:00+0100
 16d7c8df-f5a4-4b59-8f20-e6bd49e576c7 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:04:00+0100
 acbd2a04-64e5-419b-8140-3256f984e3c7 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:13:00+0100
 faadfee0-8968-4f69-885a-9f2b37e444b3 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:28:00+0100
 9d306504-ec00-4138-a9c6-531b3552ad8e | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:49:00+0100
 bedb143f-22a4-4ed7-90e5-ba0c0cecee57 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:20:00+0100
 b8a4eee5-64b3-418a-9cea-84e02a5172c7 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:21:00+0100
 f17beb58-905b-4253-a472-b8726d86bc04 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:05:00+0100
 83fbba8e-b06a-4763-b66b-47ffad907972 | 32c9fdd9-de41-4bb0-9ea6-7a30371df43e | 2013-02-01 00:19:00+0100

正如您所看到的那样,它不是按时间排序的。我怎么能这样做,所以id被忽略(我需要一个id,因为我可能需要更新记录)进行排序,按照集合id和时间对记录进行排序。也许我误解了一些事情......

提前致谢!

编辑:我可以将id作为主键删除,只为它创建一个索引 - 这可以解决问题。将id作为主键保留是很好的...

0 个答案:

没有答案
相关问题