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

时间:2018-11-06 07:25:33

标签: cassandra nosql cql datastax-enterprise

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

在Cassandra中,我们无法对分区键执行ORDER BY。有什么方法可以将时间戳记用作主键而不是分区键(没有分区键的Cassandra DB)。

先谢谢了。

根据需要创建表:

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

1 个答案:

答案 0 :(得分:3)

因为有了时间戳,所以知道年,月,日。您可以将它们用作分区键,并将时间戳记作为群集列。这样,您还可以满足对分区键的需求,您将拥有数据的主键,可以按时间戳排序,并且可以将数据均匀地分布在整个集群中。

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