删除cassandra集群中的海量数据

eoigrqb6  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(479)

我有三个节点的cassandra集群。我们有过去4年中接近7 tb的数据。现在,由于服务器中可用的空间较少,我们只希望保留过去2年的数据。但我们不想完全删除它(超过2年的数据)。我们想保留特定的数据,即使它是超过2年。目前我可以想到一种方法:1)使用“mutationbatch对象”的java客户机。我可以得到所有的记录键属于日期范围,排除行,我们不想删除。然后批量删除记录。但由于数据量巨大,这种解决方案引发了对性能的担忧。
是否可以在服务器级别(opscenter)处理它。我读过关于ttl的文章,但是我如何将它应用到现有的数据中,并且限制一些我想要保留的数据,即使这些数据已经超过2年了。
请帮我找出最好的解决办法。

1rhkuytd

1rhkuytd1#

您需要了解的主要一点是,当您删除cassandra中的数据时,实际上是通过写入墓碑来添加它们,然后在压缩过程中删除实际数据。
因此,正确地执行删除操作非常重要。有不同类型的删除—单个单元格、行、范围、分区(根据生成的墓碑数量从最不有效到最有效)。最好的方法是按分区删除,其次是按分区内的范围删除。下面的文章详细描述了如何删除数据。
您可能需要分几个步骤执行删除,这样就不会添加太多数据作为逻辑删除。您还需要检查是否有足够的磁盘空间进行压缩。

相关问题