Cassandra 主键允许重复

Cassandra Primary Key allows duplicates

我尝试在 Cassandra table 的主键中插入两条具有相同列值的记录,插入成功。我是 Cassandra 的新手,我认为 Cassandra 中的主键不允许重复插入。那是不正确的吗?以下是我的主键中的列

主键 ((customer_id, source_id ), status_code, create_timestamp, modified_timestamp)

以下是我插入的方式

insert into testkeyspace.customers 
(customer_id, source_id, status_code,
 create_timestamp, modified_timestamp) 
value ('123e4567-e89b-12d3-a456-426655440000', 
1122334455, 0, toTimestamp(now()), toTimestamp(now()));

您正在对主键中的 2 个聚类列使用 toTimestamp(now()),因此插入的 2 个记录不太可能对这些列具有完全相同的值,即这两个记录不重复。

看一下this answer一个类似的问题

需要注意的重要一点是 C* 并未明确禁止主键具有重复值。具有重复值将覆盖以前的值(基于写入时间),将不会有客户端消息指示这种情况正在发生。您只会在后续阅读中注意到。