Flink window Function– window concept
窗口的划分:
- 翻滚窗口(Tumbling Window,无重叠)
- 滚动窗口(Sliding Window,有重叠)
- 会话窗口(Session Window,活动间隙)
窗口的类型:
窗口在处理数据前,会对数据做分流,有两种控制流的方式,按照数据流划分:Keyed和Non-Keyed Windows。
Keyed Windows:就是有按照某个字段分组的数据流使用的窗口,可以理解为按照原始数据流中的某个key进行分类,拥有同一个key值的数据流将为进入同一个window,多个窗口并行的逻辑流。
Non-Keyed Windows:没有进行按照某个字段分组的数据使用的窗口
窗口算子:
基于窗口内数据的计算,叫做窗口函数。
Keyed Windows 常用的有以下四个:
1. ProcessWindowFunction 效率低,整个窗口的数据都会被传递给算子,详见代码:Flink window Function - ProcessWindowFunction
2. ReduceFunction 简单易用,推荐使用,详见代码:Flink window Function - ReduceWordCount
3. AggregateFunction 复杂逻辑,详见代码:Flink window Function - AggregateFunction
4. FoldFunction 过时API,不够友好,详见代码:Flink window Function – FoldFunction
Non-Keyed Windows
1. ProcessAllWindowFunction 将所有的数据放到一个窗口,性能低下,不常用。详见代码:Flink window Function - ProcessAllWindowFunction
个人网站:shuoyizui.com
公众号:写个框架玩
近期在公众号会发布一系列文章,主要是想完成一个简化的MapReduce框架的编写。实现Mapreduce编程模型、任务远程提交、任务分配、任务执行等功能。设计到了动态代理、反射、网络通信、序列化、消息队列、netty、自定义类加载器、多线程、shell等技术点。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步