Cassandra key说明——Cassandra 整体数据可以理解成一个巨大的嵌套的Map Map<RowKey, SortedMap<ColumnKey, ColumnValue>>,
Cassandra之中一共包含下面5种Key:
- Primary Key
- Partition Key
- Composite Key
- Compound Key
- Clustering Key
1 2 3 4 5 6 7 8 9 10 11 12 | -- 一列 create table stackoverflow ( key text PRIMARY KEY, data text ); -- 复合列 create table stackoverflow ( key_part_one text, key_part_two int, data text, PRIMARY KEY(key_part_one, key_part_two) ); |
在上面复合列的table之中,全称: Composite Primary Key 并且: (1) key_part_one –> partition key (2) key_part_two –> clustering key 注意: partition key, clustering key 都可以是复合列。 Partition Key : Cassandra会对partition key 做一个hash计算,并自己决定将这一条记录放在哪个node Partition Key的设计,可以完全的借用MySQL的主键。 Cassandra会给每一行数据一个timestamp,如果有多行数据,Cassandra会取时间最新的数据返回!
Clustering Key : 主要用于进行Range Query. 并且使用的时候需要按照建表顺序进行提供信息!
参考下面代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | -- 创建表 -- 注意state 这个field CREATE TABLE users ( mainland text, state text, uid int, name text, zip int, PRIMARY KEY ((mainland), state, uid) ) -- 插入一些值 insert into users (mainland, state, uid, name, zip) VALUES ( 'northamerica', 'washington', 1, 'john', 98100); xxxx more insert into users (mainland, state, uid, name, zip) VALUES ( 'southamerica', 'argentina', 6, 'alex', 10840); |
有效的查询:
1 | select * from users where mainland = 'northamerica' and state > 'ca' and state < 'ny'; |
本质是先node上查找后,然后range筛选!
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6279047.html,如需转载请自行联系原作者
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。