Kafka Streams删除已使用的重新分区记录,以减少磁盘使用量

问题描述 投票:0回答:1

我们有一个kafka实例,大约有50M记录,每天输入大约10万,所以在kafka-world中没有什么疯狂的。当我们想要使用一个更复杂的流应用程序(具有许多不同的聚合步骤)重新处理这些记录时,磁盘使用情况会从重新分区主题中变得非常疯狂。根据我们的理解,Theese主题使用kafka-streams 1.0.1中的标准保留时间(14天?)和2.1.1中的Long.Max。这非常不方便,因为对于重新分区主题,在我们的情况下,每个记录仅在聚合完成时读取一次,之后可以删除。

所以我们的问题是,是否有任何方法可以在kafka-streams中配置一个设置,以便在处理完后清除记录?我已经看到有一些方法可以用purgeDataBefore()(https://issues.apache.org/jira/browse/KAFKA-4586)来做到这一点。

作为参考,应用程序的一部分有些尺寸:

table-1(changelog,compact~2GB) - >更改密钥和聚合(重新分区~14GB) - > table-2(changelog,delete,14KB) - >更改密钥和聚合(重新分区21GB) - >表-3(更改日志,紧凑,0.5GB)

(这是我的第一个堆栈溢出问题,所以任何反馈都表示赞赏,提前谢谢!)

apache-kafka apache-kafka-streams diskspace
1个回答
0
投票

purgeDataBefore()发布以来,Kafka Streams使用1.1 API:https://issues.apache.org/jira/browse/KAFKA-6150

您不需要启用它(也不能禁用它)。

© www.soinside.com 2019 - 2024. All rights reserved.