Flink 理解延迟事件与水印
Flink understanding late events vs watermark
查看 this article 它说关于 watermark
We will now set the watermark as current time - 5 seconds, which tells Flink to expect messages
to be a maximum of 5 seconds dealy - This is because each window will be evaluated only when the watermark passes through it
后面 post 它解释了当设置 允许迟到时 :
Flink will not discard message unless it is past the window_end_time + allowed lateness
实际上导致了 window 的延迟评估,因为设置了 allowed lateness ?
那么 watermark 和 allowed lateness 的实际使用有什么区别?什么时候使用哪个?
水印延迟 设置了 Flink 在触发 window 之前等待乱序事件的下限第一次.
允许的延迟 决定了 Flink 将在 window 的状态下保持多长时间。在 window 的状态仍然可用时到达的任何迟到事件将 再次触发 window ,导致它产生更新的结果。
一旦允许的迟到过期,window 的状态将被清除,任何超晚事件要么被丢弃,要么被发送到侧输出。
如果您的 window 输出的下游消费者可以像这样处理接收 window 结果的更新(例如,window 连接到实时仪表板),那么设置一个相对较短的水印延迟可能是有意义的,并自由地使用允许的迟到。另一方面,如果您不能在初始结果后利用任何东西,您将希望使水印延迟足够大以满足您对 accuracy/completeness 的要求,并将允许的延迟设置为零。
查看 this article 它说关于 watermark
We will now set the watermark as current time - 5 seconds, which tells Flink to expect messages to be a maximum of 5 seconds dealy - This is because each window will be evaluated only when the watermark passes through it
后面 post 它解释了当设置 允许迟到时 :
Flink will not discard message unless it is past the window_end_time + allowed lateness
实际上导致了 window 的延迟评估,因为设置了 allowed lateness ?
那么 watermark 和 allowed lateness 的实际使用有什么区别?什么时候使用哪个?
水印延迟 设置了 Flink 在触发 window 之前等待乱序事件的下限第一次.
允许的延迟 决定了 Flink 将在 window 的状态下保持多长时间。在 window 的状态仍然可用时到达的任何迟到事件将 再次触发 window ,导致它产生更新的结果。
一旦允许的迟到过期,window 的状态将被清除,任何超晚事件要么被丢弃,要么被发送到侧输出。
如果您的 window 输出的下游消费者可以像这样处理接收 window 结果的更新(例如,window 连接到实时仪表板),那么设置一个相对较短的水印延迟可能是有意义的,并自由地使用允许的迟到。另一方面,如果您不能在初始结果后利用任何东西,您将希望使水印延迟足够大以满足您对 accuracy/completeness 的要求,并将允许的延迟设置为零。