问题描述
我在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
...