当前位置: 首页 > 知识库问答 >
问题:

Cassandra聚类密钥顺序

路昆杰
2023-03-14

所以我有一张表,它看起来像这样:

CREATE TABLE schema.table (
  partitionkey int,
  clusterkey text,
  value bigint,
  PRIMARY KEY ((partitionkey), clusterkey)
);

我们依赖该表根据clusterkey进行分页来正确排序。
问题是:当从cassandra返回结果时,看起来它们是根据ASCII值而不是逻辑的A-Z排序进行排序的。-对于观看它的人来说,这在程序上是有意义的,但在逻辑上是不合理的。

---------(current)---                ----------(wanted)---
          clusterkey                           clusterkey 
---------------------                ---------------------
       Other capital                      a should be top 
     Starts capital1                        Other capital 
     Starts capital2                      Starts capital1 
     Starts capital3                      starts capital1 
     Starts capital4                      Starts capital2 
        YYYYYYYYYYYY                      Starts capital3
        ZZZZZZZZZZZZ                      Starts capital4 
     a should be top                         YYYYYYYYYYYY 
     starts capital1                         ZZZZZZZZZZZZ 
        zzzzzzzzzzzz                         zzzzzzzzzzzz

是否有一个选项来改变当前聚类顺序的方法?
-或者另一种逻辑排序的方法?

共有1个答案

阙星渊
2023-03-14

不,除了使群集列大小写/大小写之外,没有办法不区分大小写地进行排序。如果您关心数据的外观,您可以始终将未修改的文本保留在附加列中(是的,它将复制数据),并将其显示给用户,而不是此聚类列。

 类似资料:
  • 是否可以将列作为分区和聚类键?例如, 创建表citylist2(城市varchar,loc list,pop int,zip varchar,state varchar,primary key(city,city,zip)),使用集群顺序BY(城市ASC,zip DESC);

  • 我有一个表格,记录在我的网站上执行的用户活动。我的桌子结构看起来像: 现在我想取过去5分钟内收到的所有记录。 为了做同样的事情,我正在使用 但是这个查询没有返回任何结果

  • 我有C*列族来存储类似事件的数据。以这种方式在CQL3中创建的列族: null 提前谢谢你。

  • 我已经用这个链接备份了我在卡桑德拉的密钥空间cassandra-backup.sh 为了恢复,我写了一个脚本,从包含快照的备份文件夹中复制内容,并粘贴到 /var/lib/cassandra/data/mykeypsace/下的相应目录中,但是当我看到mykeyspace的表内容时,没有恢复任何内容。例如,备份文件夹:path/mykeyspace/tableOne/snapshot/all-co

  • 我正在尝试将以下结构存储在卡桑德拉中。 上面的大多数查询是 这就是为什么将()设置为主键很有用的原因。 根据docu,Cassandra的默认分区键是主键的第一列-在我的例子中是,但我想在Cassandr集群上均匀分布数据,我不能允许一个中的所有数据只存储在一个分区中,因为有些商店有10M条记录,有些只有1k条记录。 我可以设置()作为分区键,然后我可以达到Cassandra集群中记录的统一分布。

  • 卡桑德拉会读这本书吗?按顺序聚类键? 总之,Cassandra是否可以被认为是数据结构?