在Cassandra中更长时间保留数据的最有效方法是什么

tct7dpnv  于 10个月前  发布在  Cassandra
关注(0)|答案(1)|浏览(120)

我正在寻找一种有效的方法来在Cassandra中更长时间地保留数据。
例如:我想保留最近2年的数据,用于真实的查询目的,而在此之前的2年不会被查询,但需要保留用于必要的审计目的。

  • 有没有办法做到这一点?

期待着真实的的选择,如果有的话。
版本:Cassandra 3.11 / 4.0

fivyi3re

fivyi3re1#

在不知道您的访问模式(特别是主键)和写入模式(批处理/流)的情况下,以下几个建议可以解决您的问题:

1/具有TTL的历史记录表

设计一个可以通过临时键存储数据的表,并为写入的每一行应用4年的TTL
用于审计目的的数据(超过2年),处理日期以阻止后端API中的恢复
建议PK+CC:((year,month,day),dataId)
注意TTL位于列级(See this medium article

2/历史记录的表,有计划清除

与之前的建议相同,但使用计划作业而不是TTL来清除超过4年的数据。
为了实现这一点,使用Spark Cassandra Connector从Cassandra中提取历史化的表,识别要删除的行并清除Cassandra中的数据
我个人推荐使用Dataframe API而不是RDD(Official GitHub project

相关问题