Apache flink Flink键控窗口水印

Apache flink Flink键控窗口水印,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在使用flink和事件时间键控窗口。 似乎有些窗户没有被发射出去。 是否分别为每个密钥推进水印? 例如,如果我的密钥是id,type,并且特定的id和type对没有被摄取到源中,那么它们的特定窗口水印是否不会前进? 如果是这种情况,我如何确保我的所有钥匙窗在一段时间后都会被逐出?我们有许多密钥,因此为每个密钥发送周期性的伪消息不是一个选项 我将感谢任何帮助Flink为每个任务(即每个并行实例)提供了单独的水印,否则将不得不进行某种极其昂贵的全球协调,但不是针对每个密钥。对于已设置关键帧的窗口

我正在使用flink和事件时间键控窗口。 似乎有些窗户没有被发射出去。 是否分别为每个密钥推进水印? 例如,如果我的密钥是id,type,并且特定的id和type对没有被摄取到源中,那么它们的特定窗口水印是否不会前进? 如果是这种情况,我如何确保我的所有钥匙窗在一段时间后都会被逐出?我们有许多密钥,因此为每个密钥发送周期性的伪消息不是一个选项


我将感谢任何帮助

Flink为每个任务(即每个并行实例)提供了单独的水印,否则将不得不进行某种极其昂贵的全球协调,但不是针对每个密钥。对于已设置关键帧的窗口,窗口操作符的每个实例都将处理关键帧空间某个不相交子集的事件,并且这些关键帧的所有窗口都将使用相同的水印

请记住,空窗口不会产生结果。因此,如果某个键在窗口期间没有事件,该窗口将不会为该键生成结果


也可能是因为有一个空闲的源阻止了水印。如果源任务之一变为空闲,则其水印将不会前进。您可以在web UI中检查当前水印,并查看它是否在每项任务中都有进展。

谢谢David,什么是并行实例?key id=1,type=string的窗口与id=2,type=bool key的窗口是不同的并行实例?如果是这样,我如何查看ui以查看每个键的水印?ui位于任务级别。我遗漏了什么?对不起,我不准确。所谓并行实例,我指的是与任务完全相同的事情。