在我的ETL作業期間,我正在考慮將Cassandra作爲中間存儲來執行重複數據刪除。獲取Cassandra中每個分區鍵的第一行
讓我們想象一下,我有一系列事件,每個事件都有一些業務實體ID,時間戳和一些值。我只需要根據每個業務密鑰的事件時間戳獲取最新值,但事件可能無序。
我的想法是與業務ID創建臨時表的分區鍵和時間戳作爲聚集關鍵字:
CREATE TABLE sample_keyspace.table1_copy1 (
id uuid,
time timestamp,
value text,
PRIMARY KEY (id, time)
) WITH CLUSTERING ORDER BY (time DESC)
現在,如果我插入此表中的一些數據,我可以爲某些給定分區獲取最新值鍵:
select * from table1 where id = 96b29b4b-b60b-4be9-9fa3-efa903511f2d limit 1;
但這需要爲每一個企業的關鍵我很感興趣,發出這樣的查詢
有沒有我可以做一些有效的方法它在CQL中?
我知道我們有能力列出所有可用的分區鍵(由select distinct id from table1
)。因此,如果我研究Cassandra的存儲模型,爲每個分區鍵獲取第一行應該不會太難。
是否支持?