flink1.12.x 窗口函数介绍、分类

说明

划分窗口后,调用一些函数,处理窗口中的数据,这类函数就叫 窗口函数

提示:大多数Flink应用都是要划分窗口的,如果不划分窗口,那就得计算流中所有的数据的结果,很少有这样的需求

全量窗口函数 和 增量窗口函数

窗口函数主要分:全量窗口函数增量窗口函数

全量函数

窗口先 缓存所有元素,等到触发时,对窗口内的所有元素执行计算

增量函数

窗口保存一份 中间数据,每来一个新元素,新元素与中间数据进行计算,生成新的中间数据

全量函数方法区别

apply和process的区别如下图:

  • apply和process都是处理全量计算,但工作中正常用process。
  • process更加底层,更加强大,有open/close生命周期方法,又可获取RuntimeContext。

增量函数方法区别

reduce和aggregate的区别:

  • reduce 接受两个相同类型的输入,生成一个同类型输出,所以泛型就一个 <T>
  • maxByminBysum 这3个底层都是由 reduce 实现的
  • aggregate 的输入值、中间结果值、输出值它们3个类型可以各不相同,泛型有 <T, ACC, R>

参考:
https://blog.csdn.net/winterking3/article/details/115352463


原文出处:https://malaoshi.top/show_1IX4Us8vT8Dj.html