比方說,我在下面的表格有卡桑德拉:刪除數據與分區鍵
customer_bought_product (
store_id uuid,
product_id text,
order_time timestamp,
email text,
first_name text,
last_name text,
PRIMARY KEY ((store_id, product_id), order_time, email)
分區鍵store_id
和order_id
,它是爲了存儲時間序列數據使用。
該數據沒有TTL
,因爲它應該始終可以訪問。
在某些情況下,我們可能需要刪除給定store_id
的所有數據。 這樣做的最佳做法是什麼?
到目前爲止,我已經想到了以下解決方案:
- 寫一個程序,將選擇所有從表中的數據,並與給定
store_id
刪除記錄。 - 缺點是,我們在表格中插入更多的數據會花費更多的時間。 - 將數據留在表中。 - 這樣做的唯一問題是我們將有無用的數據。
- 將表名與可用分區鍵一起存儲在不同的表中,可以通過
store_id
查詢,從中獲取鍵併爲每個或那些鍵創建刪除語句。 - 我不喜歡這個概念,因爲我必須保持記錄。
有沒有人遇到過這個問題?清除Cassandra中未使用的記錄(不包括TTL
)的最佳做法是什麼?
你如何與分區鍵的一部分訪問數據刪除相應的記錄?允許過濾將在生產中如此昂貴和無效。 – dilsingi
當我訪問數據時,我有一個特定的'product_id'和'store_id'。 –
因此,它只有在刪除時,您只有store_id和正常訪問模式是通過product_id和store_id的分區鍵。基於此提供了我的答案。物化視圖中的 – dilsingi