我将flink与事件时间键控窗口一起使用。看起来有些窗户没有被发射出去
水印是否针对每个密钥单独进行了高级处理
例如,如果我的密钥是(id,type(,并且一对特定的id和type没有被引入到源中,那么它们的特定窗口水印将不会前进吗?如果是这样的话,我如何确保我所有的带钥匙的窗户在一段时间后都会被驱逐?(我们有很多密钥,所以不能为每个密钥发送周期性的伪消息(。
我将感谢的任何帮助
Flink为每个任务(即每个并行实例(都有单独的水印——否则就必须进行某种代价高昂的全局协调——但不是为每个键。在键控窗口的情况下,窗口运算符的每个实例都将处理键空间的某个不相交子集的事件,并且这些键的所有窗口都将使用相同的水印。
请记住,空窗口不会产生结果。因此,如果某个键在窗口中没有事件,则该窗口不会为该键生成结果。
或者它可能是你有一个闲置的来源阻止水印。如果你的一个源任务变得空闲,那么它的水印就不会前进。您可以在web UI中检查当前水印,并检查它是否在每个任务中都在推进。