| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 第8.3章 Flink WarterMark 源码信息 未完结 -> 正文阅读 |
|
[大数据]第8.3章 Flink WarterMark 源码信息 未完结 |
序参考: Flink源码解析系列-- WatermarkGenerator接口及其常用实现_打酱油的葫芦娃的博客-CSDN博客 Flink教程-聊聊 flink 1.11 中新的水印策略 - 知乎 EventTime我们一般使用 EventTime 来进行各种数据的统计,但是数据从产生到进入 Flink 的过程中,经常遇到各种错序问题,那么就需要使用 WaterMark 来进行解决,我们先看看最简单的一个根据 EventTime 开窗进行统计的示例程序: 在这个示例里面,我们构建了 <某用户ID,时间戳> 的一个数据流,然后自定义了 AutoWatermarkInterval、assginTimestampsAndWatermarks、TimestampAssigner,然后根据用户ID进行开窗,进行每4秒钟统计一次 count。 WatermarkStrategy在 assignTimestampsAndWatermarks 中,需要传入一个 watermarkStrategy,那么我们先来看看这个 watermarkStrategy 是干什么用的。 根据备注我们可以看到,这个接口主要是在 sources 生成 watermark,并且怎么进行记录内部的时间戳的(通过继承 TimestampAssignerSupplier 得到)。 这里面有一些静态方法,和一些 default 方法,提供了一些默认的实现规则供我们调用。 除了 createWatermarkGenerator。 createWatermarkGenerator提供了一个需要实现的接口方法,来装填一个 WatermarkGenerator。使用这个 WatermarkGenerator 来创建时间戳。 createTimestampAssigner提供一个 RecordTimestampAssigner 来进行数据的注册 todo。 withTimestampAssigner传入一个 TimestampAssignerSupplier,或者 SerializableTimestampAssigner 来注册WatermarkStrategyWithTimestampAssigner 。 withIdleness按照注释说明,这个主要是可以进行空闲的 Source 检测,如果超时没有数据接入,那么就会标记为 idle 状态,不会造成下游数据的堵塞。 使用的 WatermarkStrategyWithIdleness 进行创建,createWatermarkGenerator 使用的是 WatermarksWithIdleness 进行创建。 org.apache.flink.api.common.eventtime.WatermarkStrategyWithIdleness org.apache.flink.api.common.eventtime.WatermarksWithIdleness WatermarksWithIdleness 使用 IdlenessTimer 来进行计时操作,如果超时后,在 onPeriodicEmit(output) 中,将 output 设置为 Idle()状态。 assignTimestampsAndWatermarksorg.apache.flink.streaming.api.datastream.DataStream#assignTimestampsAndWatermarks(org.apache.flink.api.common.eventtime.WatermarkStrategy<T>) 获取到数据源后,我们进行了 Watermark 的计算方式就是使用的这个进行的。 还是一样看源码: 通过传入的 watermarkStratey,获取当前的并行度,构建一个 TimestampsAndWatermarksTransformation。 然后返回链式调用。 Watermarkorg.apache.flink.api.common.eventtime.Watermark 看看源码: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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:24:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |