码迷,mamicode.com
首页 > 其他好文 > 详细

Flink 窗口算子

时间:2020-04-19 22:13:10      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:reference   一个   长度   自定义   ast   算子   data   func   重叠   

1、新建一个窗口算子需指定两个窗口组件

1)窗口分配器(window assigner),决定如何划分窗口,比如每5秒一个窗口(左闭右开区间),按照事件时间或者处理时间划分;

2)窗口函数,决定如何处理窗口中的元素

 

2、DataStream API 中的多种内置窗口分配器

1)滚动窗口(Tumbling Window)

默认滚动窗口会和纪元时间 1970-01-01-00:00:00:000 对齐,可以通过第二个参数指定偏移量

2)滑动窗口(Sliding Window)

需指定窗口大小以及用于定义新窗口开始频率的滑动间隔。

如果滑动间隔小于窗口大小,窗口会出现重叠,元素会分配给多个窗口;

如果滑动间隔大于窗口大小,一些元素可能不会分配给窗口,可能直接丢弃。

3)会话窗口(Session Window)

窗口长度可变且不重叠,边界由非活动间隔,即持续没有收到记录的时间间隔定义。

 

3、在窗口上应用函数

1)增量聚合函数

ReduceFunction

AggregateFunction 比 ReduceFunction 更加灵活,实现更复杂

2)全量窗口函数

ProcessWindowFunction

比如计算中值,众数等。

单个窗口的状态:当前正在计算的窗口实例的状态,用于维护同一窗口内多次调用 process() 方法所需共享的信息。

使用了单个窗口的状态的 ProcessWindowFunction 需实现 clear() 方法,在窗口清除前清理仅供当前窗口使用的状态。

全局状态:不属于任何一个窗口的健值分区状态,用于在健值相同的多个窗口之间共享信息。

 

4、自定义窗口算子

自定义分配器(assigner)、触发器(trigger)、移除器(evictor)

 

reference:
1 《Stream Processing with Apache Flink》

 

Flink 窗口算子

标签:reference   一个   长度   自定义   ast   算子   data   func   重叠   

原文地址:https://www.cnblogs.com/zgq25302111/p/12734025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!