在 KStream - KStream 联接中自定义窗口存储实现



我们需要执行一个带有非常大的窗口的 Kstream - Kstream 连接,其中左侧的勾号将仅触发右侧最新记录的连接,反之亦然。

这不是默认窗口的工作方式,因为 window.fetch 在KStreamKStreamJoinProcessor中返回的WindowStoreIterator<V>是一个可以包含多个记录的迭代器。

特别是,我们注意到RockDBWindowStoreretainDuplicates属性设置为 true,我们希望它设置为 false。

我们如何自定义 KStream KStream 联接的商店实现?

最简单的方法可能是将代码复制到具有新名称的类中并相应地更改逻辑?另一种可能性应该是将两个流转换为KTables并执行表表连接(您需要禁用两个输入 KTable 的缓存。

但请注意,对于所需的联接类型,很难正确处理无序数据。

最新更新