Kafka Streams窗口加入了保留

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka Streams窗口加入了保留相关的知识,希望对你有一定的参考价值。

我们正在使用kafka streams的windows join来加入2个流,我们想知道:

  • 为什么KS在内部主题上增加+24小时?例如,我们有一个1小时的窗口,但内部主题保留25小时。我们可以将其配置为不添加24h吗?
  • KS似乎在窗口中保留了两个流的数据 - 内部主题和状态存储(rocksdb) - 有没有办法只保留连接左侧的流?

[UPDATE]

例如,我们像这样创建JoinWindow:

JoinWindows.of(300000).before(600000).until(3600000)

虽然我可以看到内部主题(对于JOINTHIS和OUTEROTHER)已经创建了

Configs:retention.ms=90000000

这刚刚在我的机器上的空代理(使用confluent cli tool)上进行了测试

答案

我将部分回答我自己关于+ 24h的问题:确实文档清楚地在这里谈到这个问题:https://kafka.apache.org/10/documentation/streams/developer-guide/processor-api.html#fault-tolerant-state-stores

默认保留设置为Windows#maintainMs()+ 1天。您可以通过在StreamsConfig中指定StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG来覆盖此设置。

这是关于WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG的Javadoc

以上是关于Kafka Streams窗口加入了保留的主要内容,如果未能解决你的问题,请参考以下文章

kafka Streams会话窗口

Kafka Streams 与时间窗口聚合的问题

去重 KStream-KStream 的中间结果加入 Kafka Streams

Kafka---窗口函数

Kafka Streams 在 HDFS 上查找数据

Kafka-文件管理