Cassandra 中的每个 table 都应该有一个分区键吗?

Should every table in Cassandra have a partition key?

我正在尝试创建一个 Cassandra table,我在其中根据时间戳存储商店的日志。我还想创建一个查询,其中 returns 数据相对于时间戳按降序排列。如果我将时间戳作为主键,它将自动成为分区键,因为我没有任何其他列作为复合主键。

并且在 Cassandra 中我们不能对分区键执行 ORDER BY。有什么办法可以让我的时间戳作为主键而不是分区键(没有分区键的 Cassandra 数据库)。

提前致谢。

table 需要时创建:

CREATE TABLE myCass.logs(timestamp timestamp, logs text, PRIMARY KEY (timestamp));

因为你有时间戳,所以你知道年、月、日。您可以将它们用作分区键,并将时间戳作为聚簇列。通过这种方式,您还可以满足对分区键的需求,您将拥有数据的主键,可以按时间戳排序,并且可以在集群中均匀分布数据。

这种拆分数据的方式称为分桶。这里有一些关于这个主题的好读物 - Cassandra Time Series Data Modeling For Massive Scale