2017-07-20 39 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) 

所以,你可以找到您的餐桌上常見的選擇數據的最新值。