Cassandra分区密钥重复吗?

时间:2019-05-02 19:16:06

标签: cassandra

我是Cassandra的新手,所以我有几个简单的问题,假设我这样做:

CREATE TABLE my_keyspace.my_table (
 id bigint,     
 year int,   
 datetime timestamp,    
 field1 int,     
 field2 int,
 PRIMARY KEY ((id, year), datetime))

我想象Cassandra像Map<PartitionKey, SortedMap<ColKey, ColVal>>之类的东西,

我的问题是,当使用WHERE从Cassandra查询某些内容时,它会像这样:

SELECT * FROM my_keyspace.my_table WHERE id = 1 AND year = 4

这可能返回 2条或更多记录,这与Cassandra的数据模型如何匹配?

如果确实是Big HashMap,怎么允许partition key的重复记录?

谢谢!

1 个答案:

答案 0 :(得分:3)

SortedMap<ColKey, ColVal>中的每一行都有其使用的排序属性。

要建立您的心理模型,尽管id = 1 AND year = 4只有1个分区键,但有多个单元格:

(id, year) |  ColKey            | ColVal
------------------------------------------
 1, 4      | datetime(1):field1 | 1         \ Row1
 1, 4      | datetime(1):field2 | 2         / 
 1, 4      | datetime(5):field1 | 1         \ 
 1, 4      | datetime(5):field2 | 2         / Row2
...