假设我们在Cassandra中有这样的行键
国家+州+城市 国家是分区密钥,州和城市是集群密钥。
所以我插入这样的记录
India , Himachal, Manali
India , Karnataka, Mysore
India , Karnataka, Bagalkot
India , Maharashtra, Pune
India , Maharashtra , Mumbai
India , Maharashtra , Nagpur
India , Maharashtra , Kolhapur
India , Karnataka, Bangalore
India , Himachal, Shimla
USA , California , San Jose
USA , California , palo alto
在cassandra广行键中将是印度,美国但聚类键是州+城市 所以,当我读取数据时,我会按升序获得州和城市吗?比如
India , Himachal, Manali
India , Himachal, Shimla
India , Karnataka, Bagalkot
India , Karnataka, Bangalore
India , Maharashtra , Kolhapur
India , Maharashtra , Mumbai
India , Maharashtra, Pune
USA , California , palo alto
USA , California , San Jose
Cassandra有望阅读吗?按顺序聚类键?
简而言之,Cassandra可以被视为数据结构吗?
Map<State sortedMap<state , sortedMap<city , value >>>
答案 0 :(得分:2)
默认的群集顺序确实是通过CREATE TABLE文档提升:
您可以订购查询结果以使用磁盘的磁盘排序。您可以按升序或降序订购结果。升序将比降序更有效。如果需要按降序排列结果,则可以指定一个集群顺序,以按默认值的相反顺序在磁盘上存储列。降序查询将比升序查询更快。
Map<country, sortedMap<state, sortedMap<city, value>>
如果您的主键是(国家,州,城市),那么您的地图解释似乎是正确的。
答案 1 :(得分:1)
默认情况下,群集顺序确实是升序,但可以在创建表格期间进行配置
create table TABLE_NAME (
Partionkey_event text,
ClusterKey_time timestamp,
....,
PRIMARY KEY (Partionkey_event, ClusterKey_time)
)
WITH CLUSTERING ORDER BY (ClusterKey_time DESC);
对于升序,您可以停止指定将升序的聚类顺序。或者你可以指定如下
create table TABLE_NAME (
Partionkey_event text,
ClusterKey_time timestamp,
....,
PRIMARY KEY (Partionkey_event, ClusterKey_time)
)
WITH CLUSTERING ORDER BY (ClusterKey_time ASC);
更多信息: http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/refClstrOrdr.html