我正在尝试创建一个Cassandra表,用于根据时间戳在其中存储商店的日志。我还想创建一个查询,该查询以相对于时间戳的降序返回数据。如果我将时间戳记作为主键,它将自动成为分区键,因为我没有其他任何列作为复合主键。
在Cassandra中,我们无法对分区键执行ORDER BY。有什么方法可以将时间戳记用作主键而不是分区键(没有分区键的Cassandra DB)。
先谢谢了。
根据需要创建表:
CREATE TABLE myCass.logs(timestamp timestamp, logs text, PRIMARY KEY (timestamp));
答案 0 :(得分:3)
因为有了时间戳,所以知道年,月,日。您可以将它们用作分区键,并将时间戳记作为群集列。这样,您还可以满足对分区键的需求,您将拥有数据的主键,可以按时间戳排序,并且可以将数据均匀地分布在整个集群中。
这种拆分数据的方式称为存储桶。这是有关此主题的一些好读物-Cassandra Time Series Data Modeling For Massive Scale