如何在 cassandra 中按日期设置计数器?
How to have counters by date in cassandra?
我想要一个带有按日期分布的计数器的键空间。我一直在阅读文档,它说计数器列不能在时间戳旁边存在。有什么办法可以达到这个目的吗?
一个想要的例子是:
material(text) views(counter) date(timestamp)
"phones" 234 2015-01-22
"tablets" 55 2015-01-22
"phones" 20 2015-01-21
"tablets" 50 2015-01-21
一种方法是将日期设置为文本或长日期,但这会阻止我获得 "all views from las week"。我正在寻找您的经验:)
我使用的是 Cassandra 2.0.11 | CQL 规范 3.1.1
您可以将计数器与其他列结合使用,前提是其他列是分区键或集群键的一部分(即计数器是唯一的值)。
在你的情况下,因为你想按日期过滤,一个好的方法是将 material
设置为分区键,date
作为聚类键,views
作为你的值。
通过使用日期作为聚类键,您可以按日期倒序排列计数器。这将允许您过滤上周的数据。
这种模式的一个例子是:
CREATE TABLE views (
material text,
date timestamp,
views counter,
PRIMARY KEY(material, date)
) WITH CLUSTERING ORDER BY (date DESC);
我想要一个带有按日期分布的计数器的键空间。我一直在阅读文档,它说计数器列不能在时间戳旁边存在。有什么办法可以达到这个目的吗?
一个想要的例子是:
material(text) views(counter) date(timestamp)
"phones" 234 2015-01-22
"tablets" 55 2015-01-22
"phones" 20 2015-01-21
"tablets" 50 2015-01-21
一种方法是将日期设置为文本或长日期,但这会阻止我获得 "all views from las week"。我正在寻找您的经验:)
我使用的是 Cassandra 2.0.11 | CQL 规范 3.1.1
您可以将计数器与其他列结合使用,前提是其他列是分区键或集群键的一部分(即计数器是唯一的值)。
在你的情况下,因为你想按日期过滤,一个好的方法是将 material
设置为分区键,date
作为聚类键,views
作为你的值。
通过使用日期作为聚类键,您可以按日期倒序排列计数器。这将允许您过滤上周的数据。
这种模式的一个例子是:
CREATE TABLE views (
material text,
date timestamp,
views counter,
PRIMARY KEY(material, date)
) WITH CLUSTERING ORDER BY (date DESC);