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

时间:2018-05-23 15:42:01

标签: apache-kafka apache-kafka-streams

我们需要使用一个非常大的窗口执行Kstream - Kstream连接,其中左边的刻度将仅触发与右边最新记录的连接,反之亦然。

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

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

我们如何为KStream KStream join自定义商店实现?

1 个答案:

答案 0 :(得分:0)

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

但请注意,对于您想要的连接类型,很难正确处理无序数据。