Flink window Function– window concept

窗口的划分:

  1. 翻滚窗口(Tumbling Window,无重叠)
  2. 滚动窗口(Sliding Window,有重叠)
  3. 会话窗口(Session Window,活动间隙)

窗口的类型:

   窗口在处理数据前,会对数据做分流,有两种控制流的方式,按照数据流划分:Keyed和Non-Keyed Windows。

   Keyed Windows:就是有按照某个字段分组的数据流使用的窗口,可以理解为按照原始数据流中的某个key进行分类,拥有同一个key值的数据流将为进入同一个window,多个窗口并行的逻辑流。

   Non-Keyed Windows:没有进行按照某个字段分组的数据使用的窗口

窗口算子:

   基于窗口内数据的计算,叫做窗口函数。

   Keyed Windows 常用的有以下四个:

   1. ProcessWindowFunction  效率低,整个窗口的数据都会被传递给算子,详见代码:Flink window Function - ProcessWindowFunction

   2. ReduceFunction  简单易用,推荐使用,详见代码:Flink window Function - ReduceWordCount

   3. AggregateFunction  复杂逻辑,详见代码:Flink window Function - AggregateFunction

   4. FoldFunction  过时API,不够友好,详见代码:Flink window Function – FoldFunction

   Non-Keyed Windows

   1.  ProcessAllWindowFunction  将所有的数据放到一个窗口,性能低下,不常用。详见代码:Flink window Function - ProcessAllWindowFunction

原文地址:https://www.cnblogs.com/maoxiangyi/p/10978028.html