Kafka Streams window 加入保留
Kafka Streams window joins retention
我们正在使用 kafka 流的 windows 加入 2 个流,我们想知道:
- 为什么 KS 将 +24 小时添加到内部主题?例如,我们的 window 为 1 小时,但内部主题的保留时间为 25 小时。我们可以将其配置为不添加那些 24 小时吗?
- KS 似乎将两个流的数据保存在 window - 内部主题和状态存储 (rocksdb) - 有没有办法只保留连接左侧的流?
[更新]
例如,我们这样创建 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 :
The default retention setting is Windows#maintainMs() + 1 day. You can override this setting by specifying StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG in the StreamsConfig.
的 Javadoc
我们正在使用 kafka 流的 windows 加入 2 个流,我们想知道:
- 为什么 KS 将 +24 小时添加到内部主题?例如,我们的 window 为 1 小时,但内部主题的保留时间为 25 小时。我们可以将其配置为不添加那些 24 小时吗?
- KS 似乎将两个流的数据保存在 window - 内部主题和状态存储 (rocksdb) - 有没有办法只保留连接左侧的流?
[更新]
例如,我们这样创建 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 :
的 JavadocThe default retention setting is Windows#maintainMs() + 1 day. You can override this setting by specifying StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG in the StreamsConfig.