Flink - [04] 窗口(Windows)
题记部分
一、Flink中的窗口是什么
(1)一般真实的流都是无界的,怎样处理无界的数据?
(2)可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也就是得到有界流
(3)窗口(Window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析。
二、窗口类型
(1)时间窗口(Time Window)
① 滚动时间窗口(tumbling time window):.timeWindow(Time.seconds(15))
② 滑动时间窗口(sliding time window):.timeWindow(Time.seconds(15),Time.seconds(5))
③ 会话窗口(session window):.window(EventTimeSessionWindows.withGop(Time.minutes(10)))
(2)计数窗口(Count Window)
① 滚动计数窗口(tumbling count window):.countWindow(5)
② 滑动计数窗口(sliding count window):.countWindow(10,2)
2.1、滚动窗口(Tumbling Windows)

2.2、滑动窗口(Sliding Windows)

2.3、会话窗口(Session Windows)

三、Window API
(1)窗口分配器 —— window()方法
(2)我们可以用.window()来定义一个窗口,然后基于这个window去做一些聚合或者其它处理操作。
(3)window()方法必须在keyBy之后才能使用。
(4)Flink提供了更加简单的.timeWindow和.countWindow方法,用于定义时间窗口和计数窗口。
val minTempPerWindow = dataStream
.map(r => (r.id,r.temperature))
.keyBy(_._1)
.timeWindow(Time.seconds(15))
.reduce((r1,r2) => (r1._1,r2.min(r2._2)))
四、窗口分配器
(1)window()方法接收的输入参数是一个WindowAssigner
(2)WindowAssigner负责将每条输入的数据分发到正确的window中
(3)Flink提供了通用的WindowAssigner
① 滚动窗口(tumbling window)
② 滑动窗口(sliding window)
③ 会话窗口(session window)
④ 全局窗口(global window)
五、窗口函数
window function定义了要对窗口中收集的数据做的计算操作,可以分为两类
(1)增量聚合函数(incremental aggregation functions)
- 每条数据到来就进行计算,保持一个简单的状态
- ReduceFunction、AggregateFunction
(2)全窗口函数(full window functions)
- 先把窗口所有数据收集起来,等到计算的时候会遍历所有数据
- ProcessWindowFunction
六、其他API
(1).trigger():触发器,定义window什么时候关闭,触发计算并输出结果;
(2).evitor():移除器,定义移除某些数据的逻辑;
(3).allowedLateness():允许处理迟到的数据
(4).sideOutputLateData():将迟到的数据放入侧输出流
(5).getSideOutput():获取侧输出流
— 业精于勤荒于嬉,行成于思毁于随 —
Flink - [04] 窗口(Windows)的更多相关文章
- DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示
DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...
- Ubunut18.04与Windows传输文件的方式
ubunut18.04与Windows传输文件的方式 开发环境:ubuntu18.04; 虚拟机:virtual box; 操作系统:Win10_64bits/专业版 在以前使用的ubuntu12.0 ...
- 【源码解析】Flink 滑动窗口数据分配到多个窗口
之前一直用翻滚窗口,每条数据都只属于一个窗口,所有不需要考虑数据需要在多个窗口存的事情. 刚好有个需求,要用到滑动窗口,来翻翻 flink 在滑动窗口中,数据是怎么分配到多个窗口的 一段简单的测试代码 ...
- Flink(八)【Flink的窗口机制】
目录 Flink的窗口机制 1.窗口概述 2.窗口分类 基于时间的窗口 滚动窗口(Tumbling Windows) 滑动窗口(Sliding Windows) 会话窗口(Session Window ...
- 关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思
关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思 一.遇到的问题 如题目所说,在windows的虚拟机中和windo ...
- Flink会话窗口测试
Flink会话窗口测试 一.测试结论: 1.会话窗口的间隔时间和水位线作用一样,表示输出现在时间 - 间隔时间之前所有未结算时间的数据,作用类似于水位线,但是和水位线开闭不一样. 2.会话窗口显示的数 ...
- ubuntu 16.04 和 windows 10系统安装mysql 允许远程访问 | mysql user guide on ubuntu 16.04 and windows 10
本文首发于个人博客https://kezunlin.me/post/36e618e7/,欢迎阅读! mysql user guide on ubuntu 16.04 and windows 10 Pa ...
- Flink的窗口处理机制(一)
一.为什么需要 window ? 在流处理应用中,数据是连续不断的,即数据是没有边界的,因此我们不可能等到所有数据都到了才开始处理.当然我们可以每来一个消息就处理一次,但是有时我们需要做一些聚合类的处 ...
- Flink Window窗口机制
总览 Window 是flink处理无限流的核心,Windows将流拆分为有限大小的"桶",我们可以在其上应用计算. Flink 认为 Batch 是 Streaming 的一个特 ...
- flink入门实例-Windows下本地模式跑SocketWordCount
一般情况下,开发大数据处理程序,我们希望能够在本地编写代码并调试通过,能够在本地进行数据测试,然后在生产环境去跑“大”数据. 一.nc工具 配置windows的nc端口,在网上下载nc.exe(htt ...
随机推荐
- 前后端数据传递之form-data
前情 最近在项目开发中,跟服务端连调发现接口一直报错,服务端一直提示是数据没有传,而通过浏览器控制台发现数据是有传的. 坑 服务通过postman自测是OK的.经过和服务端一起定位发现服务端只接收以f ...
- GPU服务器常见问题汇总
目录 Q1.从启动盘安装时黑屏/屏幕卡住? Q2.1T固态硬盘Ubuntu系统磁盘分区策略: Q3.安装Ubuntu需要选择更新吗? Q4.安装Ubuntu后重启无法开机? Q5.首次开机的配置代码? ...
- 1.猿人学web爬虫攻防第一题 js混淆源码乱码
题目链接:http://match.yuanrenxue.com/match/1 1.首先我们打开F12开发者工具,点击..... 我们可以看到在请求中有m的加密参数! 2.根据题目js混淆,我们寻找 ...
- 8.mysql表分区
MySQL表分区 表分区是将⼀个表的数据按照⼀定的规则⽔平划分为不同的逻辑块,并分别进⾏物理存储,这个规则就叫做分区函数,可以有不同的分区规则 5.7可以通过show plugins语句查看当前MyS ...
- 中电金信:GienTech动态|丰收之秋,公司多项目获得荣誉
中电金信微电影<妙"笔"生花>获国资委表彰 近日,国务院国资委在京举行中央企业社会主义核心价值观主题微电影(微视频)展映发布活动.中电金信作品<妙&quo ...
- 中电金信:ChatGPT一夜爆火,知识图谱何以应战?
随着ChatGPT的爆火出圈 人工智能再次迎来发展小高潮 那么作为此前搜索领域的主流技术 知识图谱前路又将如何呢? 事实上,ChatGPT也 ...
- 【实训总结报告】大二下学期期末Java EE实训报告
站点在微信公众号(萌狼蓝天)回复便可以访问
- 如何使用Jet家软件进行学习(intellij、idea、IDEA、Pycharm……)
如何使用Jet家软件进行学习 本文档提供方法只用于学习研究,不得用于其他用途 以下,萌狼蓝天将会提供两种方式 目录 如何使用Jet家软件进行学习 第一种方式:使用EAP版本 第二种方式:使用插件 (1 ...
- Argocd基于网络的终端
https://argo-cd.readthedocs.io/en/stable/operator-manual/web_based_terminal/ 官网参考: https://argo-cd ...
- Qt/C++动态启用地图功能/地图拖曳/键盘操作/滚轮缩放/双击放大/连续缩放等
一.前言说明 地图组件为了方便用户的操作,一般会满足各种需求场景,比如用鼠标拖曳地图,实体键盘按键上下左右移动,鼠标滚轮缩放地图大小,双击放大地图,这些常规的操作可以极大的方便用户操作,问题是,有时候 ...