假设我在Cassandra中有如下表格:
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
进行查询,获取这些键并为每个键创建一个删除语句。-我不喜欢这个概念,因为我必须维护记录。
TTL
)?