2017-07-20 41 views
0

我们有一个要求,我们有一个关系数据库表T1与20个领域。我们捕获在此表中发生在各个字段(提交日志)上的所有更改/更新,并将其应用于Cassandra的相应表CT1中,即Cassandra表CT1与T1(关系数据库表)具有完全相同的模式/字段。cassandra和历史数据时间明智

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

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

例如:

如果F1在一天内换了10次,F1我要返回最近的值。如果f2最近一周改变了,那么f2应该返回最近的值,其他字段则如此。

回答

0

您可以通过阅读 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) 

所以,你可以找到您的餐桌上常见的选择数据的最新值。