Cassandra群集密钥唯一性

问题描述 投票:0回答:1

在《 Cassandra》这本书的权威指南中,有人说分区键和集群键的组合保证了数据库中唯一的记录……我知道分区键是保证记录唯一的一个-节点所在记录已存储。聚类键用于记录的排序。有人可以帮我理解吗?感谢和抱歉的问题...

cassandra cassandra-2.0 cassandra-3.0
1个回答
2
投票
    单个分区键(没有群集键)是primary key,必须是唯一的。
  • [Apartition key+ clustering key必须是唯一的,但这并不意味着分区键或群集键都必须是唯一的。
  • 您可以插入

      ((a,b)(第一条记录)
  • ((a,c)(与第一条记录相同的分区键)
  • (d,b)(与第一条记录相同的聚类键)
  • 再次插入(a,b)时,它将更新现有主键的非主键值。

    在下面的示例中,userid是分区键,date是群集键。

    cqlsh:play> CREATE TABLE example (userid int, date int, name text, PRIMARY KEY (userid, date)); cqlsh:play> INSERT INTO example (userid, date, name) VALUES (1, 20200530, 'a'); cqlsh:play> INSERT INTO example (userid, date, name) VALUES (1, 20200531, 'a'); cqlsh:play> INSERT INTO example (userid, date, name) VALUES (2, 20200531, 'a'); cqlsh:play> SELECT * FROM example; userid | date | name --------+----------+------ 1 | 20200530 | a 1 | 20200531 | a 2 | 20200531 | a (3 rows) cqlsh:play> INSERT INTO example (userid, date, name) VALUES (2, 20200531, 'b'); cqlsh:play> SELECT * FROM example; userid | date | name --------+----------+------ 1 | 20200530 | a 1 | 20200531 | a 2 | 20200531 | b (3 rows) cqlsh:play>

  • © www.soinside.com 2019 - 2024. All rights reserved.