核心知识-Flink 增量聚合和全窗口函数你知道多少——第九课

DBC 1.7K 0

一、Flink里面你需要知道的AggregateFunction增量聚合函数知识

窗口 window function ,对窗口内的数据做啥?

  • 定义了要对窗口中收集的数据做的计算操作
  • 增量聚合函数
aggregate(agg函数,WindowFunction(){  })
  • 窗口保存临时数据,每进入一个新数据,会与中间数据累加,生成新的中间数据,再保存到窗口中
  • 常见的增量聚合函数有 reduceFunction、aggregateFunction
  • min、max、sum 都是简单的聚合操作,不需要自定义规则
AggregateFunction<IN, ACC, OUT>
IN是输入类型,ACC是中间聚合状态类型,OUT是输出类型,是聚合统计当前窗口的数据

代码实战

Flink17AggWindowApp

点击查看完整内容

控制台输出

点击查看完整内容
温馨提示

你可以理解为就是一个自定义的操作,里面你想干什么都可以!

二、Flink里面你需要知道的WindowFunction全窗口函数知识

  • 全窗口函数
apply(new WindowFunction(){ })
  • 窗口先缓存该窗口所有元素,等窗口的全部数据收集起来后再触发条件计算
  • 常见的全窗口聚合函数 windowFunction(未来可能弃用)、processWindowFunction(可以获取到窗口上下文 更多信息,包括窗口信息)
IN是输入类型,OUT是输出类型,KEY是分组类型,W是时间窗 
WindowFunction<IN, OUT, KEY, W extends Window>

代码实战

Flink17ApplyWindowApp

点击查看完整内容

控制台输出

点击查看完整内容

三、Flink里面你需要知道的processWindowFunction全窗口函数知识

  • 全窗口函数
process(new ProcessWindowFunction(){})
  • 窗口先缓存该窗口所有元素,等窗口的全部数据收集起来后再触发条件计算
  • 常见的全窗口聚合函数 windowFunction(未来可能弃用)、processWindowFunction(可以获取到窗口上下文 更多信息,包括窗口信息)
IN是输入类型,OUT是输出类型,KEY是分组类型,W是时间窗 
ProcessWindowFunction<IN, OUT, KEY, W extends Window>

代码实战

Flink17ProcessWindowApp

点击查看完整内容

控制台输出

点击查看完整内容

窗口函数对比

  • 增量聚合
  • 全窗口聚合

发表评论 取消回复
表情 图片 链接 代码

分享