问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何高效接入 Flink:Connecter / Catalog API 核心设计与社区进展_百 ...

发布网友 发布时间:2024-10-23 22:50

我来回答

1个回答

热心网友 时间:2024-11-06 09:51

为了高效接入 Flink,理解其核心设计与社区进展至关重要。本文将分层次介绍 Flink API 的核心内容,从 DataStream API 到 Table 和 SQL API,再到 Connector 和 Catalog API。

首先,DataStream API 是基础,针对 Java 开发者,通过实现 Source 和 Sink API 来直接构建 Stream 算法。为了支持 Table 和 Catalog,需要在 Source 和 Sink 的基础上,针对 Connector 提供的 API 进行二次开发。

在 Source API 部分,从 Flink 1.12 开始引入,逐渐稳定并标记为 Public,取代了之前的 InputFormat 和 SourceFunction。设计上采用主从结构,类似 Flink 集群,分为 SplitEnumerator 和 SourceReader。SplitEnumerator 负责枚举分片,而 SourceReader 以 Subtask 级别并发执行,通过 RPC 与 Enumerator 通信,封装 SourceEvent 协调工作。为了简化开发,引入了 SourceReaderBase 和 SplitReader,将外部系统交互与 Flink 协作分离,减轻开发者负担。

在开发 Source 时,需注意与外部系统和 Flink 之间交互的分离,避免影响主线程和 Checkpoint 运行。利用 SourceReaderBase 和 SplitReader,可以复用现有逻辑,降低开发复杂度。

为了满足更多需求,Flink 在最近版本中引入了 Hybrid Source,它允许在不同 Source 之间切换,如从文件系统切换到消息队列。通过封装现有 Enumerator 和 Reader,提供切换能力,确保数据流平滑过渡。

Watermark Alignment 机制解决了不同 Source 间进度差异导致的下游算子等待问题,通过 CoordinatorStore 交换 Watermark 信息,确保进度同步。

SinkAPI 设计相对简单,Sink 作为工厂类构建拓扑,核心组件是 SinkWriter 负责数据序列化和外部系统输出。对于 Exactly-once 和第二阶段提交的需求,引入 SinkCommitter 组件。Async Sink 基类提供通用的异步输出逻辑,内置异常重试,实现 at-least-once 语义,简化开发。

集成至 Table/SQL API 时,Source 和 Sink 需实现 DynamicTableSource 和 DynamicTableSink 接口,提供对 Planner 的兼容性和配置构建。LookupTableSource 支持外部系统查询,通过 LookupFunction 实现点查逻辑。Sink 的实现同样依赖于 DynamicTableSink 接口。

为了简化用户配置和管理,Catalog API 提供外部系统信息的统一抽象,包括 Database、Table 等概念的映射。它能够简化配置,降低使用门槛,并支持血缘信息管理,通过 Catalog Modification Listener 监听表的增删操作。

实现自己的 Connector 时,首先接触的是 Source 和 Sink API,这是构建 Stream 算法的基础。为了支持 SQL 和 Table 生态,需实现 DynamicTableSource 和 DynamicTableSink。通过对接 Catalog API,可以利用外部系统的概念,简化用户操作,降低使用成本,并获得血缘管理能力。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
王卡专属免流包是什么意思 腾讯王卡专属流量是什么意思 人防临空墙排烟机房可以留洞吗? 瑞士转机的问题? 雅阁、第九代凯美瑞、迈腾,大空间的中级车推荐 云顶之弈双人排位介绍 金铲铲之战 金铲铲段位相差多少可以一起打? 现在上海办理居住证需要本人去吗 34周加5天是几个月 孕34周是几个月了 孕34周如何预防早产 实例讲解Flink 流处理程序编程模型 ...2011年3月——5月选定领证、结婚吉日,请高手指点 鞋带花卷教你在家做,手指绕一绕,简单省时颜值高,看一遍就会做 我和男朋友打算2011年结婚,哪天是黄道吉日?请高手指点 准备在2011年4-5月份结婚请大师帮忙算一下,男阳历1984年10月28日14... ...求出IP地址的范围,网络地址,网关地址和广播地址呢? “耶律”、“爱新觉罗”是中国百家姓之一吗? 现在满族人的姓氏包括以前的皇族爱新觉罗氏,现在是否绝大多数都用汉族... 百家姓里为什么没有爱新觉罗和孛儿只斤? 百家姓上面明明没有 爱新觉罗嘛!但是听说现在还有姓的 猪煤气中毒的症状 久座屁股上长泡破了是褥疮吗 速卖通无忧退货保障计划好不好?服务费率多少? vivos7i(t)程序比我删除些,好多停止运行 速卖通无忧退货有哪些国家?服务费率是多少? ...呆一俩个月请问怎么办护照签证?需要准备什么资料?不是留学 从广东汕头到广东深圳有多少公里,大概需要多少钱? 什么情况下不结转损益 ...仙气温柔的二字网名_神仙温柔二字网名_温柔到爆的神仙昵称 求好看精彩的欧美动作片,不要太经典的,因为都看过了,最好是一些不太出 ... 初级溶酶体的特点 肛瘘与坐的软凳不透气有关吗? Flink 双流 Join 的3种操作示例 煤气中毒后清醒会失忆吗 硬盘可以打开但是复制东西到硬盘就会提示无这个盘,我的电脑里会突然消失... 吉林省第二松花江防汛机动抢险队怎么样? ...下角显示有硬件插入,打开“我的电脑”里却找不到该移动硬盘... 我的移动硬盘无法读出来.在电脑里没盘符显示.不是供电不足的问题.在... 2015年阳历9月7日出生的是什么星座 m.ziyun.com 母亲说,我出生回家后的一天晚上,我像是得了什么绝症,像要死一样。和我... 江西大宇职业技术学院院系设置 江西大宇学院院系设置 江西大宇职业技术学院招生问题。急急急! ...符号有没有无所谓。起码要八个字或八个字... 江西大宇学院简介 江西南昌大宇学院 win732刷到64结果每次开机都是蓝屏 江西大宇职业技术学校怎么样?计算机信息管理专业怎样?毕业后好找工作吗... 广州的二本学校有哪些 ...急用,然后要长的,别太长,符号神马的有没有无所谓,谢谢大神了_百度知 ...