窗口函数

  • 基于时间
  • 基于数量
  • ReduceFunction
    • 两两合一汇总
  • AggregateFunction
    • 增量计算窗口函数,也只保留一个中间状态数据
  • ProcessWindowFunction
    • 要对窗口内的全量数据都缓存
    • 能操作更底层的实现,比如直接操作状态等。
  • Trigger
    • 触发器(Trigger)决定了何时启动 Window Function 来处理窗口中的数据以及何时将窗口内的数据清理
  • Evictor
    • 清除器(Evictor)是在 WindowAssigner 和 Trigger 的基础上的一个可选选项,用来清除一些数据。我们可以在 Window Function 执行前或执行后调用 Evictor

滚动窗口

  • 窗口不重叠,窗口的长度固定

滑动窗口

  • 以一个步长不断向前滑动,窗口的长度固定

会话窗口

  • 根据 Session Gap 切分不同的窗口;当一个窗口在大于 Session Gap 的时间内没有接收新的数据,窗口将会关闭。窗口的长度是可变的。

参考资料

  1. Flink 窗口全解析:三种时间窗口、窗口处理函数使用及案例

推荐阅读: