⑦Flink窗口、时间和水印

       我们在之前的课时中反复提到过窗口和时间的概念,Flink 框架中支持事件时间、摄入时间和处理时间三种。而当我们在流式计算环境中数据从 Source 产生,再到转换和输出,这个过程由于网络和反压的原因会导致消息乱序。因此,需要有一个机制来解决这个问题,这个特别的机制就是“水印”。

Flink 的窗口和时间

事件(最常用)-摄入-处理


我们在前面讲解过 Flink 窗口的实现,根据窗口数据划分的不同,目前 Flink 支持如下 3 种:

        滚动窗口,窗口数据有固定的大小,窗口中的数据不会叠加;

        滑动窗口,窗口数据有固定的大小,并且有生成间隔;

        会话窗口,窗口数据没有固定的大小,根据用户传入的参数进行划分,窗口数据无叠加。

Flink 中的时间分为三种:

        事件时间(Event Time),即事件实际发生的时间;

        摄入时间(Ingestion Time),事件进入流处理框架的时间;

        处理时间(Processing Time),事件被处理的时间。

下面的图详细说明了这三种时间的区别和联系:

你可能感兴趣的:(flink,big,data,java)