所以我有一张表,它看起来像这样:
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
是否有一个选项来改变当前聚类顺序的方法?
-或者另一种逻辑排序的方法?
不,除了使群集列大小写/大小写之外,没有办法不区分大小写地进行排序。如果您关心数据的外观,您可以始终将未修改的文本保留在附加列中(是的,它将复制数据),并将其显示给用户,而不是此聚类列。
是否可以将列作为分区和聚类键?例如, 创建表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是否可以被认为是数据结构?