基于Apache SeaTunnel构建CDC数据同步管道

2023-12-19

file

引言

在快速发展的数据驱动时代,数据的实时、准确同步成为了企业信息系统不可或缺的一部分。随着技术的进步,特别是在分布式计算和大数据技术的背景下,构建一个高效且可靠的数据同步管道成为了挑战。

Apache SeaTunnel作为一个先进的数据集成开发平台,提供了构建高效CDC数据同步管道的可能性。本文将深入探讨利用Apache SeaTunnel构建CDC数据同步管道的过程,揭示其背后的关键技术和实践策略,旨在为面临数据同步挑战的专业人士提供实用指导。

大家下午好,今天分享的主题是基于Apache SeaTunnel构建CDC数据同步管道。我之前主要从事监控APM的计算平台工作,后来转向数据集成开发平台。目前,我正在基于Apache SeaTunnel开发CDC的数据同步管道,长期活跃于开源社区。我是Apache SeaTunnel的PMC成员和Skywalking的committer。

Apache SeaTunnel 简介

Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段: file

  1. ETL时代(90年代) :面向结构化数据库的数据同步,用于构建数据仓库。
  2. MPP和分布式技术流行 :使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。
  3. 数据湖技术流行 :重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。

file

技术定位与挑战

file

Apache SeaTunnel在ELT环节中,主要解决简单的转换问题,并快速搬运数据。面临的挑战包括:

  • 处理多样化的数据源和存储差异。
  • 尽量减少对数据源的影响。
  • 适应不同的数据集成场景,如离线和实时CDC同步。
  • 保证数据集成的监控和量化指标。

重要特性

  • 简单易用 :No code,通过配置文件提交作业。
  • 运行监控 :提供详细的读写监控。
  • 丰富的生态 :插件式架构,提供统一的读写API。

Apache SeaTunnel的发展历程

Apache SeaTunnel的前身是Whatdorp。它于2021年加入Apache孵化器,并在2022年发布了第一个版本。2022年10月,进行了重大重构,引入统一API。

file

2022年11月,开发了专门用于数据同步的引擎。到2022年底,连接器的读写功能已经支持超过100种数据源。到2023年,主要集中于CDC和整库同步。

file

CDC(Change Data Capture)简介

file CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。在业务数据库中,数据不断变更,CDC的作用是捕获这些事件,并同步到数仓、数据湖或其他平台,确保目标存储与原始数据库保持一致。 file

CDC的应用场景

  1. 数据复制 :如备库建设或读写分离。
  2. 数据分析 :在大数据平台进行基于BI的数据分析。
  3. 检索业务 :例如,将商品库或文档库同步到ES等检索平台。
  4. 操作审计 :记录系统变更,用于金融审计等。

常见的CDC方案的痛点

  1. 单表作业限制 :大多数开源方案中,一个作业通常只能处理一个表。
  2. 读取与写入分离 :一些平台专注于数据捕获,而另一些只负责数据写入。
  3. 多数据库支持问题 :不同的数据库可能需要不同的同步平台,增加了维护难度。
  4. 大规模表处理困难 :处理大型表时可能遇到性能瓶颈。
  5. DDL变更同步 :实时同步数据库结构(DDL)变更是一个复杂且重要的需求。

Apache SeaTunnel在CDC中的应用

file Apache SeaTunnel作为一个连接器,可以实现抽象的Source API和Sink API,即读写API,以实现数据的同步。它的设计目标是: file

  1. 支持多种数据库 :如MySQL、Oracle等。
  2. 零编码 :自动建表和动态增删表,无需编写代码。
  3. 高效读取 :先进行数据快照,再跟踪binlog变化。
  4. 确保一致性 :实现exactly-once语义,即使在中断恢复情况下也不会出现数据重复。

Apache SeaTunnel CDC的设计实践重点

file 在于处理数据同步的两个阶段:快照读取和增量跟踪。 file

快照读取阶段

基本流程
  • Chunk划分(Splitting) :为了高效同步大量历史数据,表被划分为多个chunk(或split),每个chunk处理一部分数据。
  • 并行处理 :每个表分成多个split,这些split通过路由算法分配给不同的reader进行并行读取。
  • 事件反馈机制 :每个reader在完成split读取后会向split分发器报告进度(watermark)。 file

file

Split详解
  • 组成 :Split包括唯一ID、指向的表ID、以及划分细节(如数据范围)。
  • 划分方法 :Split可基于不同类型的列(如数字或时间)进行范围划分。
  • 处理过程 :划分后的split被分发给reader,每个split的读取完成后会报告数据水位线。

file

增量跟踪阶段

单线程流读取

file

  • 流读取特性 :与快照阶段的并行读取不同,增量跟踪通常为单线程操作。
  • 减少业务压力 :避免重复拉取binlog,减轻对业务数据库的压力。

file

file

file

Split管理
  • 无终止的Split :增量阶段的Split没有结束点,意味着流读取是持续的。
  • 水位线管理 :增量Split包含所有快照Split的最小水位线,从最小位置开始读取。
  • 资源优化 :一个reader占用一个连接,保持高效且资源优化的数据跟踪。

Apache SeaTunnel CDC的设计允许有效地同步历史数据(快照读取)和实时变更(增量跟踪)。通过Split管理和资源优化策略,确保数据同步既高效又对原始数据库影响最小。

Apache SeaTunnel CDC的Exactly-Once实现

file

Apache SeaTunnel CDC实现Exactly-Once语义的核心在于处理数据同步中的不一致性和系统故障。

file

Exactly-Once的实现机制

快照读取的水位线管理
  • 低水位与高水位 :在快照读取时,首先记录低水位线,读取结束后记录高水位线。这两个水位线之间的差异表明数据库在此期间发生了变化。
  • 内存表合并 :低水位和高水位之间的变更会被合并到内存表中,确保未遗漏任何变更。

file

file

Split与Split之间的间隙处理
  • 处理数据间隙 :处理Split间的数据间隙,确保没有遗漏变更。
  • 反向过滤与回捞 :快照阶段的每个数据点都会检查以确保没有被之前的Split覆盖,避免数据重复。
  • 阶段性校对 :分为两个阶段(Stage 1和Stage 2),分别处理Split间的间隙和表间的间隙,确保所有变更都被捕获。

断点续传与分布式快照

分布式快照机制

file

  • 不同引擎适配 :分布式快照API适配不同的执行引擎,确保状态一致性。
  • 检查点保存 :定期发起检查点保存操作,所有组件上传自己的状态,保存完整的检查点状态。
  • 恢复选择 :在恢复时,可以选择任何一个检查点版本进行恢复。

file

分布式状态对齐
  • 进程间状态同步 :处理多个进程内的不同内存状态,确保它们在一个时间点达到一致状态。
  • 信号传播与保存 :从一个进程发起分布式快照信号,其余进程根据信号保存自己的状态并传递信号,直至所有节点状态对齐。
  • 实际应用 :在CDC任务中,枚举器节点、读取节点、写入节点均参与这一过程,保证整个数据同步过程的状态一致性。

DDL同步的深入探讨

file

在Apache SeaTunnel CDC中,DDL同步是一个关键的挑战。由于数据库结构可能在数据流处理过程中发生变化,因此必须谨慎处理这些变更。

DDL解析与抽象化
  • DDL事件解析 :DDL事件首先被解析并转换为结构化的抽象形式,这样做的目的是将DDL处理过程与特定数据库的语法细节解耦。
  • 结构化事件处理 :例如,添加列的操作被转换为一个通用的结构化事件,不再依赖于具体数据库的语法。

file

数据流与结构流的分离
  • 信号插入 :在DDL操作前后,系统会插入特定的信号以分离结构流和数据流。这样做允许在DDL操作期间暂停数据处理,避免在结构变更期间发生数据混乱。
前置与后置信号处理
  • 前置信号 :在DDL操作前,清空内存中的数据状态,并暂停数据处理,以确保结构变更前的数据完整性。
  • 后置信号 :DDL操作完成后,系统恢复数据处理,并继续之后的数据同步。 file

file

file

数据传输的细节优化

file 在数据传输方面,Apache SeaTunnel CDC通过一系列优化,确保数据同步的效率和一致性。

数据操作的类型化处理
  • 插入(Insert) :处理新增数据,仅涉及操作后的状态。
  • 更新(Update) :涉及操作前后的状态变化,需要精确处理以确保数据一致性。
  • 删除(Delete) :只关注操作前的状态,因为数据在操作后不再存在。
高效的数据流管理

为了提高效率,CDC在数据流管理方面做了大量优化:

  • 表级数据拆分 :保证同一表内的数据处理的有序性。
  • 键级数据排序 :同一键的数据操作按顺序处理,保证数据状态的正确性。
  • 并行数据写入 :同一表内的数据可以并行写入,提高了数据处理的速度。
更新优化

file

对于不支持更新操作的目标存储,CDC采取了一种优化策略:将更新操作转换为先删除后插入操作,从而绕过存储的限制。

共享挖掘与多目标写入

file

为了减少对原始数据源的负担,CDC采用共享挖掘机制。这意味着数据被一次读取,然后共享给多个写入插件,允许数据被写入到多个目标存储。这种方法有效地整合了原本分散的数据读写流程,提升了整体效率。

自动建表

目的
  • 自动转换 :将原库的表结构自动转换到目标库,适用于不熟悉业务库表结构或表数量庞大的场景。
实现过程

file

  1. 表结构推送 :将配置的所有表转换为通用的数据类型和表结构。
  2. 与写入插件的交互 :启动时,插件接收表结构,检查并在目标库创建或更新表。
  3. 类型提升 :处理异构数据库中的类型不匹配问题,如将小类型提升到大类型。

社区发展与参与

file

当前发展

  • 多表读写 :推进多表和多引擎支持。
  • API推广 :将自动建表等API推广到社区,实现在各插件中。
  • 连接器升级 :升级连接器以支持新的多表读写功能。
  • DDL解析 :开发支持目标端表结构的DDL解析功能。

Web界面

  • 发布与完善 :发布并持续完善,支持不同数据库的数据查询和同步任务配置。

社区参与

  • 加入社区 :通过官方微信公众号或加入中文用户群获取更多支持。
  • 在线资源 :通过项目的issue系统、Slack频道或官网获取资源和支持。
  • 贡献与沟通 :下载试用、报告bug、查看新手任务,或通过邮件列表和Slack进行沟通。

file

本文由 白鲸开源科技 提供发布支持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Apache SeaTunnel构建CDC数据同步管道 的相关文章

  • 客户数量众多,CRM管理系统如何帮助高效客户管理

    随着中型企业客户关系的不断扩大和发展 高效管理日益庞大的客户群体变得至关重要 CRM管理系统就是管理大量客户 维护客户关系的重要工具 然而 市面上CRM系统太多了 想要快速 准确找到一款适合您业务的CRM系统是一项艰巨的任务 多客户中型企业
  • 实实在在万事达!实在智能助力山东万事达集团加速数智化转型

    近日 杭州实在智能科技有限公司 以下简称 实在智能 与山东建筑钢市场 领头羊 山东万事达控股有限公司 以下简称 万事达集团 召开 RPA 机器人流程自动化 项目启动会 实在智能携手万事达集团 联合共建财务RPA一体化研发管理项目 以下简称
  • 易点易动固定资产管理系统:集成飞书,助力企业全生命周期固定资产管理

    易点易动固定资产管理系统 集成飞书 助力企业全生命周期固定资产管理 在现代商业环境中 固定资产管理对企业的运营和发展至关重要 为了提高管理效率和降低成本 我们引入了易点易动固定资产管理系统 该系统集成了飞书 为企业提供全生命周期的固定资产管
  • 美军杀伤网概念研究及对我防空作战装备体系的启示

    源自 现代防御技术 作者 王玉茜 曹亚杰 佘晓琼 廖咏一 人工智能技术与咨询 发布 摘 要 DARPA寻求从杀伤链转向杀伤网 意图利用信息网络构建高度分散的杀伤网 形成难以预测的杀伤链 美空军在试验旗体系下开展 橙旗 翠旗 和 黑旗 试验
  • 扬帆证券:申购新股怎样才能中签?要注意什么?

    申购新股是一种很受欢迎的理财方式 如果能够中签就有或许获得不错的收益 那么申购新股怎样才能中签 要注意什么 扬帆配资 也为大家准备了相关内容 以供参考 申购新股怎样才能中签 要想申购新股首要要有申购资历 也便是要有足够的市值配售额度 市值配
  • CRM管理系统能提供哪些应用价值?CRM的功能

    牢固的客户关系是推动持续收入增长和盈利能力的关键 CRM管理系统则是完成这一目标的钥匙 预计到2024年 CRM在国内SaaS平台中的占比达到50 CRM解决方案存储了所有与客户相关的信息 并通过自动化工作流 全渠道沟通 销售流程管理等功能
  • 易点易动固定资产管理系统:集成飞书,助力企业全生命周期固定资产管理

    易点易动固定资产管理系统 集成飞书 助力企业全生命周期固定资产管理 在现代商业环境中 固定资产管理对企业的运营和发展至关重要 为了提高管理效率和降低成本 我们引入了易点易动固定资产管理系统 该系统集成了飞书 为企业提供全生命周期的固定资产管
  • 期权怎么开户:期权开户免费吗,需要什么样的门槛?

    期权开户是免费的 只有交易才会产生费用 开通期权账户需要满足50万的资金 以及融资融券交易经验或者金融期货交易经验 当然也有免50万门槛的开户方式 下文为大家科普期权怎么开户啊 期权开户免费么 一般情况下 期权是可以通过在营业部网点进行开户
  • 机器智能与人类智能的合作:认知能力的提升

    1 背景介绍 在过去的几十年里 人工智能 AI 技术的发展取得了显著的进展 从早期的规则引擎和专家系统到现代的深度学习和神经网络 AI已经成功地解决了许多复杂的问题 然而 尽管如此 人工智能仍然远远低于人类智能 人类智能的强大之处在于其认知
  • 慢思维大脑:SOP流程的心理学背景

    1 背景介绍 慢思维大脑 SOP流程的心理学背景 慢思维是指人类大脑在处理复杂问题 做出重要决策时所采用的思考方式 它与快速 自动的快思维相对 主要通过以下几种方式表现 深入思考 慢思维会让人类大脑深入思考问题的本质 从而找出更深层次的解决
  • AI大模型应用入门实战与进阶:如何训练自己的AI模型

    1 背景介绍 人工智能 Artificial Intelligence AI 是计算机科学的一个分支 旨在模拟人类智能的能力 包括学习 理解自然语言 识别图像和视频 进行决策等 随着数据量的增加和计算能力的提升 人工智能技术的发展得到了巨大
  • 线性代数在深度学习中的角色

    1 背景介绍 深度学习是一种人工智能技术 它主要通过神经网络来学习和模拟人类大脑的思维过程 线性代数是一门数学分支 它研究的是向量和矩阵的运算 在深度学习中 线性代数起着非常重要的作用 因为它为神经网络提供了数学模型和计算方法 在这篇文章中
  • AI大模型应用入门实战与进阶:Part 7 Transformer模型解析

    1 背景介绍 自从2020年的大模型如GPT 3等开始引起广泛关注 人工智能领域的研究和应用得到了重大推动 在这一波技术创新中 Transformer模型发挥着关键作用 这篇文章将深入探讨Transformer模型的核心概念 算法原理和实例
  • 机器智能与人类智能的竞争:技术创新的驱动力

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是最近几年最热门的技术领域之一 随着数据量的增加和计算能力的提高 机器学习技术的发展得到了极大的推动 机器学习
  • 技术管理者的核心能力在哪?

    作为管理者我曾经被下属当面问过 你为什么不写代码 诚然 我最近两年 代码越写越少 会越开越多 但 存在真的合理吗 我的核心能力应该是什么 看了一篇文章 它提出一个观点 技术管理者的核心能力在于技术判断力 通过在技术领域和非技术领域的长期积累
  • 扬帆证券:产业化破题在即 人形机器人超预期演进

    大模型助力下的拐点 特斯拉A股产业链上 两笔重磅出资几乎一起现身 总规划超百亿元 1月4日 拓普集团公告 与宁波经济技能开发区办理委员会签署了 机器人电驱系统研发生产基地项目出资协议书 公司拟出资50亿元 建设机器人核心部件生产基地 此次出
  • 问CHAT很繁琐的问题会不会有答案呢?

    问CHAT 什么已有的基于极值理论的极端温度重现期主要针对极端高温事件 对极端低温事件研究较少 CHAT 回复 为这主要可能是由于以下几个原因 1 气候变化与全球变暖 当前 全球变暖和气候变化的问题备受关注 这导致科研者更加关注极端高温事件
  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 扬帆证券:突发利好!外资重大转变,A股收到多份喜报

    A股财报季 利好音讯密集传来 1月16日晚间 A股多家上市公司披露了成绩预告 其间成绩预增 扭亏等利好公告数量占比超80 其间 普瑞眼科公告 估计2023年净赢利同比添加高达1163 98 1285 51 别的 多家上市公司公告称 估计20
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐