删除Cassandra群集中的大量数据

时间:2018-09-25 03:58:33

标签: solr cassandra opscenter

我有三个节点的Cassandra群集。过去4年中,我们的数据接近7 TB。现在,由于服务器中的可用空间较少,我们只想保留最近2年的数据。但我们不想将其完全删除(超过2年的数据)。我们希望保留超过2年的特定数据。 目前,我可以想到一种方法: 1)Java客户端使用“ MutationBatch对象”。我可以获得属于日期范围的所有记录键,并且排除了我们不想删除的行。然后批量删除记录。但是由于数据量巨大,此解决方案引起了人们对性能的担忧。

是否可以在服务器级别(opscenter)进行处理。我了解了TTL,但如何将其应用于现有数据并限制一些我想保留的数据,即使该数据已超过2年。

请帮助我找出最佳解决方案。

1 个答案:

答案 0 :(得分:0)

您需要了解的主要事情是,当您在Cassandra中删除数据时,实际上是通过编写逻辑删除来添加它们的,然后在压缩期间会删除实际数据。

因此正确执行删除非常重要。删除有不同类型-单个单元格,行,范围,分区(按生成的逻辑删除的数量从最不有效到最有效)。最适合您的是按分区删除,然后第二个是按分区内的范围删除。 Following article详细介绍了如何删除数据。

您可能需要分几个步骤执行删除操作,因此您不必添加太多数据作为逻辑删除。您还需要检查是否有足够的磁盘空间用于压缩。