flink-watermark 是什么?

2021/12/8 23:21:26

本文主要是介绍flink-watermark 是什么?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1: watermark 是流里的一个特殊的元素,这个不是我说的,看源码的注释:

public final class Watermark extends StreamElement {

然后我们看看StreamElement的注释里:
An element in a data stream. Can be a record or a Watermark.

2:watermark 是要配合我们的窗口来使用的,且我们要使用的时间语义这个时候是事件时间,watermark 通过决定何时关闭窗口来做到我们对乱序数据的处理。它其实就是窗口的边界,一旦它和窗口的关闭的时间一样的时候,窗口就要关闭了,后来的数据就不再属于这个窗口,窗口是左开右闭的。

3:watermark是只增不减的,因为我们的事件时间按道理来说是只会随着时间的流逝逐步的递增,所以和event time 强关联的watermark必然也是逐步递增的。

4:如何处理分布式下的watermark,一说到分布式简单的问题就会变得复杂。

5:如何设定合理的watermark其实狠考验人,常见的处理方式一般可以满足多数不是狠复杂的需求。



这篇关于flink-watermark 是什么?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程