| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Flink 【二】 -> 正文阅读 |
|
[大数据]Flink 【二】 |
04 时间三兄弟
设置时间语义,按时间三兄弟中哪个来处理。
Window对流处理,数据是源源不断进入的,无界的(批处理是有界的)。不可能无界限一直一直计算,Window 把一个无界流数据进行切分,得到有界流(流转批),在窗口内进行一组计算。 (和 ss 的微批是相反的思想(批转流)) 窗口的分类根据是否有keyBy分两类
Assigner负责将每条数据分发到正确的window中去 计数的 CountWindow是根据元素的个数来划分,达到指定数量就划分。与时间是没关系。 如果keyby,要某个key达到指定数量才会统计这个key,而不统计其他key,只能其他key也达到指定数量才触发自己key的统计。 计时的 TimeWindow达到时间长度就切分。 滚动窗口 TumblingWindowwindow size可以是CountSize也可以是TimeSize(又既可以是EventTime也可以是ProcessingTime )。不带key时用windowAll,带key用window。 滑动窗口 SlidingWindowwindow size 和 slide size是不等的,window size是一个窗口的大小,代表这个窗口从开始道结束的间隔;slide size可以理解是前后两个窗口开始时间的间隔。一个元素可能会被落在多个window中;window间可能有重叠。可以用来分析一种趋势、走势。 如图示,假设每个window的大小是10s(window size),而每隔5s就开启下一个window(slide size)。则一个元素会被落在两个window中。 滚动窗口可以理解为window size 和 slide size相等的的滑动窗口,是滑动窗口的特例。上一个窗口结束同时开启才下一个窗口,所以不会重叠。 时间间隔 SessionWindow只有没有操作的时间间隔达到指定size的间隔后,才开始算新window。数据不断,就一直是旧window(保持在当前window) 总结WindowFunctionwindow之后,数据在窗口内进行每组window进行计算,如sum(0)。
自定义 AggregateFunction,重写 createAccumulator()、add()、getResult()、merge()方法 05 Watermark 水印理想情况下先操作的数据应该先到达,受网络原因,先产生的数据不一定先到,需要解决,以EventTime来确定数据顺序。 延迟(乱序)数据处理:不能等待数据全部到达再处理,等待时间不可预测,等待过久就变成了批处理。 乱序数据处理:window + Watermark 。Watermark 是衡量EventTime进展的机制。是一条特殊的数据记录。 使用:在获取环境时,设置为EventTime;获取数据源时同时指定watermark的字段(一般情况都在数据源时设置,但支持在transformation时)。 EventTimeSessionWindows
之前学习SessionWindow时是以ProcessingTime做时间语义,就会以终端的时间来作为window划分的time size。如果以EventTime(watermark指定数据里某个字段作为EventTime),那么就会关联数据里的这个字段的时间作为划分window的依据(具体计算过程?)。 TumblingEventTimeWindows需要注意,当前数据所携带的时间,>= 上一个window的结束边界的时间,则触发上一个window。但当前数据不会纳入上一个window的统计;它是属于下一个window的,作为下一个window的第一条数据。 延迟的数据(属于上一个window的范围,但上一个window已经被触发过了的数据):
SlidingEventTimeWindows
滑动窗口每个window都是独立的触发,独立的统计自己范围的数据,只是可能会重复。 Flink on YarnFlink结构flink client(提交flink作业) --> JobManager(主) --> TaskManager(从) Standalone模式用于学习,生产都是 on Yarn 、on k8s。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:01:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |