我有一个包含多个数据中心的Cassandra集群。我想每月归档并清除数据。有很多关于备份和恢复的文章,但没有关于在Cassandra集群中存档数据的说明。 请问有谁能告诉我如何在Cassandra集群中每月归档数据并清除数据。
我认为没有这样的工具可以用于归档cassandra数据。您需要编写使用CqlInputFormat的Spark作业或MapReduce作业来归档数据。您可以参考以下链接,了解人们如何在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。
最佳实践是使用时间窗口压缩策略,并在表上设置每月的时间窗口和TTL(一个月),以便可以清除超过一个月的数据。如果编写了一个清除作业来删除这些未应用正确压缩策略的表中的数据,那么这可能会影响集群性能,因为按日期/月份搜索数据将使集群超负荷。我曾经有过这样的经历,最终我们不得不回到更改表结构并修改压缩策略。这就是为什么一开始就设计好表格非常重要的原因。我们需要考虑(从一开始)数据将如何插入和读取到表格中,以及如何删除它,然后制定键、压缩、ttl等。对于归档,只需编写几行代码从Cassandra读取数据并将其放入您的归档位置即可。如果这有助于获得您想要的最终结果,或者如果您有进一步的问题需要帮助,请告诉我。
snappy
进行压缩。 - Amey Jadiye