Kafka 流 KTable 变更日志 TTL

Kafka stream KTable changelog TTL

假设我有一个 A-Event KStream 聚合到一个 A-Snapshot KTable 和一个 B-Event KStream 聚合到一个 B-Snapshot KTable。 A-SnapshotB-Snapshot 都不传递空值(删除事件被聚合为快照的状态属性)。在这一点上,我们可以假设我们有一个持久化的 kafka 变更日志主题和一个用于 A-KTableB-KTable 聚合的 rocksDB 本地存储。然后,我的拓扑将连接 A-KTableB-KTable 以生成连接的 AB-KStream。也就是说,我的问题是 A-KTableB-KTable 物化生命周期(变更日志主题和本地 rocksdb 存储)。假设 A-Event 主题和 B-Event 主题保留策略设置为 2 周,有没有办法通过上游事件主题删除保留对 kafka 内部 KTable 物化主题保留策略(变更日志和 rocksDB)产生副作用政策?否则,我们是否可以使用某种保留策略来配置 KTable 物化,以管理变更日志主题和 rockdb 存储生命周期?考虑到我无法显式发出 A-KTableB-KTable 快照墓碑?我担心更新日志和本地商店会无限增长,..,

目前,KStream 不支持开箱即用的功能,即根据源主题保留策略在更新日志主题中注入清理。默认情况下,它使用 "Compact" 保留策略。

同样有一个未解决的 JIRA 问题: https://issues.apache.org/jira/browse/KAFKA-4212

一种选择是注入逻辑删除消息,但这不是一个好方法。
如果是窗口存储,您可以使用 "compact, delete" 保留策略。