在Cassandra分区键上有重复的条目



我有一个关于Cassandra分区的问题。我有一个表

CREATE TABLE books (
isbn text,
title text,
author text,
publisher text,
category text,
timestamp text,
PRIMARY KEY (timestamp)
);

我想根据时间戳创建分区,我的时间戳是以分钟为单位的日期时间。因此,在某些情况下,该时间戳将重复。

如果我对Cassandra的理解正确的话,当插入相同的时间戳条目时,它会做的是更新具有该时间戳的条目。

这不是我想要的。我想要时间戳作为我的分区,但我也想要复制时间戳条目。

如果你不能输入重复的条目,它是不是与整个基于主键的分区相矛盾?

我刚认识Cassandra,所以我可能错了。

Cassandra中的分区键必须是全局唯一的,因为它们在集群中标识一个唯一的分区(记录)。

在Cassandra中,当你插入一个具有相同分区键的新记录时,它会导致"upsert"这意味着分区将被新值覆盖。

作为旁注,为表使用人工键是没有意义的。ISBN是唯一的,所以你应该用它来划分你的books表。

如果您想在表中保留多个版本的书籍,我建议相应地建模您的表。例如:

CREATE TABLE books_by_isbn (
isbn text,
version timestamp,
title text,
author text,
publisher text,
category text,
PRIMARY KEY (isbn, version)
)

在这个表中,每本书都由其ISBN标识,并且每个分区中有多行可以由version列标识。干杯!

相关内容

  • 没有找到相关文章

最新更新