Kafka流-为变更日志定义保留策略



我将Kafka Streams用于TimeWindow的一些聚合。我只对每个窗口的最终结果感兴趣,所以我使用了.suppress()功能,该功能为其状态创建了一个变更日志主题。

此变更日志主题的保留策略配置被定义为"紧凑",据我所知,它将至少保留过去每个密钥的最后一个事件。

我的应用程序中的问题是密钥经常更改。这意味着主题将无限期增长(每个窗口都会带来永远不会删除的新键)。

由于聚合是按窗口进行的,所以在聚合完成后,我真的不需要"旧"键。

有没有办法告诉Kafka Streams从以前的窗口中删除密钥?

就这一点而言,我认为将变更日志主题保留策略配置为"压缩,删除"将完成这项工作(在kafka中可用,如下所示:KIP-71,kafka-4015。

但是,是否可以使用Kafka Streams api更改保留策略?

suppress()运算符在记录从其缓冲区中移出并发送到下游时,会向变更日志主题发送tombstone消息。因此,您不必担心主题的无限增长。更改压缩策略实际上可能会破坏操作员提供的保证,并且您可能会丢失数据。

相关内容

  • 没有找到相关文章

最新更新