cassandra和历史数据时间明智

时间:2017-07-20 07:42:07

标签: cassandra time-series data-modeling

我们要求我们有一个包含20个字段的关系数据库表T1。我们在各个字段(提交日志)中捕获此表中发生的所有更改/更新,并在Cassandra中的相应表CT1中提取/应用这些更改,即Cassandra表CT1具有与T1(关系数据库表)完全相同的模式/字段。

对于Cassandra表CT1,我们还要求我们捕获/存储/检索所有字段的所有更改值,这意味着如果字段f1更改了所有更改值的20倍,则应保存相应的更改时间戳。同样,如果Field f3改变了100次,则应保存其所有值。注意:不同的字段会在不同的时间发生变化,每个字段会更改变量的次数,这意味着一个字段可能每天更改1000次,而其他字段可能永远不会更改。

这是每个字段的某种时间序列数据。所以我想知道如何在Cassandra中有效地表示这样的数据模型?另一个要求是我想要有效地检索表中所有字段的最新值。

例如:

如果f1在一天内改变了10次,对于f1我想要返回它的最新值。如果f2最近一周改变了,那么对于f2应该返回最近的值,对其他领域也是如此。

1 个答案:

答案 0 :(得分:0)

您可以通过阅读找到有关Cassandra时间序列存储的更多详细信息 thisthis条款。 因此,要轻松查找最近的值,可以按如下方式创建表结构:

CREATE TABLE table1_history (
column_name text,
change_time timestamp,
column_value text,
PRIMARY KEY (column_name, change_time),
) WITH CLUSTERING ORDER BY (change_time DESC)

因此,您可以使用表格中的常用选择数据找到最新值。