Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 在KStream-KStream join中自定义窗口存储实现_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka 在KStream-KStream join中自定义窗口存储实现

Apache kafka 在KStream-KStream join中自定义窗口存储实现,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我们需要在一个非常大的窗口中执行Kstream-Kstream连接,在这个窗口中,左侧的一个勾号将触发一个连接,而右侧只有最新的记录,反之亦然 这不是默认窗口的工作方式,因为KStreamKStreamJoinProcessor中的window.fetch返回的WindowStoreIterator是一个迭代器,可以包含多条记录 我们特别注意到,RockDBWindowsStore的retainDuplicates属性设置为true,我们希望将其设置为false 我们如何为KStream KSt

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

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

我们特别注意到,
RockDBWindowsStore
retainDuplicates
属性设置为true,我们希望将其设置为false


我们如何为KStream KStream join定制存储实现?

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


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

我不得不求助于一个大的联接窗口,以确保无论到达顺序是什么(左侧还是右侧),输出都会进行标记。ktable-ktable连接会给我相同的属性吗?ktable会为两侧的输入发出连接结果。这篇博文详细解释了Kafka Streams中的连接语义: