1.世界
2.概述
窗口操作符本质上就是一个流操作符,也是通过 processElement 来处理流元素,只是一般的操作符执行窗口函数之后就 emit 结果到下游了,窗口操作符通过 trigger 设置定时器,当定时器触发的时候,取出窗口中保存的数据,执行窗口函数并 emit 结果到下游(其实窗口操作符有些类似于之前讲过的异步操作符)
窗口流(由 DataStream 转换得到,下一篇文章会介绍)类似于之前讲过的 KeyedStream,提供 reduce、fold、sum 等函数对窗口进行聚合操作,这是理解窗口函数的基础
我们知道窗口操作符分为 WindowOperator 和 EvictingWindowOperator,EvictingWindowOperator 会在 emitWindowContents 前后 remove 部分窗口中的元素。当使用 WindowOperator 的时候,窗口在接受到一个元素之后,就会在内部执行聚合操作,当 emitWindowContents 的时候,直接将最后聚合好的数据 emit 给下游即可