卡桑德拉Cassandra按第二个聚类键排序

问题描述

我在cassandra中有一个表,我想按第二个聚类列排序并离开第一个聚类列。它是表的定义:

CREATE TABLE table1 (
key int,value1 text,value2 text,value3 text,comments text,PRIMARY KEY (key,value1,value2,value3)
)WITH CLUSTERING ORDER BY (value2 DESC);

我知道上面的脚本是错误的,我应该在下面进行更改:

CREATE TABLE table1 (
key int,value3)
)WITH CLUSTERING ORDER BY (value1 DESC,value2 DESC);

但我想按唯一的value2(而不是value1)对它进行排序。可能吗?有什么办法可以做到这一点?

解决方法

这不可能是开箱即用的-数据在分区内按层次结构进行排序-首先按第一个群集列对数据进行排序,然后在“父列”的每个唯一值内进行排序,以此类推。 :

partition key:
  CL1 value 1:
    CL2 value 1
    CL2 value 2
  CL1 value 2
    CL2 value 1
    CL2 value 3
  ...