我有一个带有多个数据中心的cassandra集群。我想每月归档数据并清除该数据。有许多备份和恢复的文章,但没有提到它在cassandra集群中存档数据。
有人可以告诉我如何每月在cassandra集群中存档我的数据并清除数据。
答案 0 :(得分:1)
最佳做法是使用时间窗口压缩策略并在表上设置每月的窗口以及 TTL(month),以便清除超过一个月的数据。
如果您编写执行删除工作的清除作业(在未应用正确压缩策略的表上),那么这可能会影响集群性能,因为在基本日期/月份上搜索数据将使集群不堪重负。
>我经历过这种情况,我们最终不得不回去改变表的结构并改变压缩策略。这就是为什么首先拥有正确的桌子设计非常重要的原因。我们需要考虑(在开始时本身)不仅要考虑如何在表中插入和读取数据,还要考虑如何删除数据,然后对键进行帧化、压缩、ttl 等。
对于存档,只需编写几行代码即可从 Cassandra 读取数据并将其放到您的存档位置。
如果这有助于获得您想要的最终结果,或者您还有其他问题需要我帮助,请告诉我。
答案 1 :(得分:0)
我认为没有这样的工具可以用于存档cassandra.You必须编写使用CqlInputFormat存档数据的Spark Jobs或map reduce作业。您可以按照以下链接帮助您了解人们是如何在cassandra中归档数据:
[1] - [http://docs.wso2.org/display/BAM240/Archive+Cassandra+Data]
[2] - http://docs.wso2.org/pages/viewpage.action?pageId=32345660
[3] - http://accelconf.web.cern.ch/AccelConf/ICALEPCS2013/papers/tuppc004.pdf
还有一种方法可以在cassandra中启用增量备份,可以像CDC一样使用。