说明
划分窗口后,调用一些函数,处理窗口中的数据,这类函数就叫 窗口函数
提示:大多数Flink应用都是要划分窗口的,如果不划分窗口,那就得计算流中所有的数据的结果,很少有这样的需求
全量窗口函数 和 增量窗口函数
窗口函数主要分:全量窗口函数 和 增量窗口函数
全量函数
窗口先 缓存所有元素,等到触发时,对窗口内的所有元素执行计算
增量函数
窗口保存一份 中间数据,每来一个新元素,新元素与中间数据进行计算,生成新的中间数据
全量函数方法区别
apply和process的区别如下图:
- apply和process都是处理全量计算,但工作中正常用process。
- process更加底层,更加强大,有open/close生命周期方法,又可获取RuntimeContext。
增量函数方法区别
reduce和aggregate的区别:
reduce
接受两个相同类型的输入,生成一个同类型输出,所以泛型就一个<T>
maxBy
、minBy
、sum
这3个底层都是由reduce
实现的aggregate
的输入值、中间结果值、输出值它们3个类型可以各不相同,泛型有<T, ACC, R>
参考:
https://blog.csdn.net/winterking3/article/details/115352463