先看官方的Flink自定义窗口流程:
基本操作如下:
- window:创建自定义窗口
- trigger:自定义触发器
- evictor:自定义evictor
- apply:自定义window function
从定义窗口的基本操作可以看出,先调用window函数,定义一个WindowAssigner对象,
在WindowAssigner中 通过
assignWindows 设定窗口类型,然后基于trigger,evictor来设定触发器,过滤器等,
最后apply来设定用户自定义的窗口函数,同时flink自身也集成了若干个窗口函数,如sum,max,maxBy,reduce等