flink入门(四)——window概念和时间、水位线

一、窗口概述

  窗口的概念:用来将无限流切分为有限流,分发到有限大小的桶中进行处理

  窗口的分类:大致分为时间窗口和计数窗口

  窗口的边界:左闭右开

  

 

 

 二、窗口介绍

  1.滚动时间窗口

    由固定的窗口长度控制,不会有重叠

    

 

 

   2.滑动时间窗口

    由窗口size和滑动距离控制,元素会有重叠,当然,步长=size的时候,将会是没有重叠的滚动时间窗口

    

 

    3.会话窗口

      超过一定距离,就视为一个窗口,一个会话

      

 三、window的使用

  1.使用入门示例:(根据参数个数可以知道是哪种类型的窗口)

  

   2.创建各种类型的window示例:

  

 

   

   3.窗口函数

  

 四、flink中的时间

  时间概念;

  

   在代码中设置event TIme的方法:

  

   当然,有时候是会出现event Time受网络等影响,出现乱序问题

  类似做班车时,到了发车时间点,却发现乘客还有一些未到齐,此时通常会有“等几分钟”的操作。这个操作对比在flink中就是通过水位线watermark,

来实现等几分钟的操作,等乱序的元素进入窗口了再“发车”!

  3.水位线的概念

  

 

 

     水位线的特点:

      图中示例:右边数据1来的时候,插入一个水位2,表示2以前的数据都来了,后续的watermark类似的原理

    

     在面对多分区时,会以水位最低的分区的watermark作为最终的watermark,类似木桶理论,以最短的为准。

    watermark代码中的实践:

    

 

posted @ 2020-11-02 10:12  ---江北  阅读(590)  评论(0编辑  收藏  举报
TOP