做农业需关注什么网站,网络工程师什么时候考,网站建设与维护参考文献,电子商务网站建设与管理习题答案摘要#xff1a;本文整理自阿里云 DataWorks 数据集成团队的高级技术专家 王明亚#xff08;云时#xff09;老师在 Flink Forward Asia 2023 中数据集成专场的分享。内容主要为以下四部分#xff1a; 阿里云 DataWorks 数据集成介绍基于 Flink CDC 数据集成新版引擎架构和… 摘要本文整理自阿里云 DataWorks 数据集成团队的高级技术专家 王明亚云时老师在 Flink Forward Asia 2023 中数据集成专场的分享。内容主要为以下四部分 阿里云 DataWorks 数据集成介绍基于 Flink CDC 数据集成新版引擎架构和原理新版引擎在 DataWorks 数据集成产品化案例分享未来规划 一、阿里云DataWorks数据集成介绍
1. 下图是阿里云DataWorks数据集成发展历史 阿里云 DataWorks 数据集成发展已经超过 10 年起步于 2011 年的阿里巴巴内部数据平台事业部同步中心。2014 年正式对外提供云服务功能2019年完成公共云商业化发布了独享资源组功能。2020年发布了实时同步支持整库全增量以及资源连通性自助诊断等功能。2023 年初基于 Flink CDC 重构后的新版引擎功能正式发布上线具备流批一体、弹性扩缩容等功能特性。
2. 业务规模
目前业务规模离线和实时每天同步的数据量在10PB量级、10万亿量级。服务阿里巴巴内部淘宝、天猫、Lazada、菜鸟等130多个BU同时支持国内、海外Region金融云、政务云等21个 Region。 3. 数据上云核心枢纽
阿里云 DataWorks 数据集成是数据上云的核心枢纽异构数据存储、可靠、安全、低成本、可弹性扩展的数据同步平台支持几十种丰富的异构数据源并且支持这些异构数据源之间任意组合包含关系型数据库、MMP、NoSQL、文件储存、消息流等各大类型系统。同时也支持复杂的网络全联通无论用户的数据源在公网、IDC 机房、VPC 内还是跨云等场景数据集成都具备成熟可以提供连接到各数据源的网络解决方案支持用户进行数据迁移。同时针对云上各种丰富的数据集成场景支持包括整库迁移、周期性离线同步、全增量同步等多种同步能力。同时背靠 DataWorks数据集成具备成熟的安全控制机制以及完善的运维报警监控能力。 4. 离线数据同步原理
下面介绍基于 Flink CDC 引擎重构之前的技术架构。
首先离线同步底层基于数据库 JDBC 协议或者数据源 SDK 来进行读写。
例如用户购买 1,000万 的数据要周期性离线同步到阿里云大数据存储系统上做离线数仓分析我们会在源端对其进行数据分片切分针对不同的数据字段类型有多种不同的切分算法最常见的就是按照主键进行数据分片切分每一个切分后的分片就是一个 Task若干个 Task 分为一个 Task Group被调度系统调度到资源层 Worker 上进行同步Worker 是进行数据实际读写的基本物理执行单元这样就能够完成离线同步的能力。 5. 实时数据同步原理
区别于离线同步实时同步主要是基于数据库变更日志增量解析或者消息订阅等方式来进行的。
例以 MySQL 为例基于 Socket MySQL Dump 协议实时订阅 Binlog 二进制流, 将订阅到的二进制流进行事件解析, Connector 进行转换处理, 最后在目标端进行数据重放。 6. 阿里云数据集成解决方案系统
除了离线同步与实时同步外云上很多业务场景是需要客户把历史的数据比如关系型数据库里的数据先全量同步到云上然后再启动实时增量同步。2020年我们发布了整库全增量解决方案的产品功能具备自动批量进行用户表结构从源端迁移到目标端系统迁移完成后自动启动全量离线同步任务将历史数据一次性搬迁到云上全量同步完成后系统会进行自动的位点衔接启动实时增量任务将增量数据实时同步到目标端系统完成自动的全增量流程。不需要用户手工每张表配置单独的离线和实时任务大幅简化了配置流程提升任务配置运维效率。 7. 期望的数据集成引擎
上述介绍了在基于 Flink CDC 引擎重构之前的技术架构同时随着技术的迭代演进我们期望的数据引擎应该具备四大特性
1流批一体希望维护一套统一的框架和技术栈具有既能够支持流同步也能够支持批同步的能力可以极大提高团队研发效能。
2开源生态需要有一个丰富的开源生态和活跃社区能够复用和集成社区丰富的 Connector。
3全事件流同步支持 DML、DDL、HeartBeat 等全事件流的解析及同步。
4良好的性能和成本同步资源能够弹性扩缩容支持分布式的海量数据同步具备高吞吐高性能特性。
Flink CDC 以及 Flink 引擎本身就具备上述特性因此我们基于 Flink CDC 进行了 DataWorks 数据集成新版引擎的重构升级。 二、基于Flink CDC数据集成新版引擎架构和原理
1. 数据集成平台架构
重构以后的数据集成平台架构从系统分层角度看主要分为4层。
第一层是接入层接入层直接面向用户用户可以通过 OPEN API 的方式来集成创建同步任务, 也可以通过 Web UI 的方式, 进行界面向导化的一键简单配置。接入层主要支持流控、权限检查、任务创建、数据源的更新删除等功能。
第二层是管控层管控层主要负责任务的全生命周期的管理包括开发态作业配置、作业检查运行态任务渲染、任务启停运维态告警监控、Metric 查询展示等。
第三层是引擎层主要分为两个部分Catalog Server 和新的流批一体同步引擎。Catalog Server 主要用于和用户的数据源进行连接例如进行用户数据源的连通性检查、表结构获取、结构迁移等功能。接下来重点介绍基于 Flink CDC 框架 DataX多种数据格式 Reader Writer重构后的新版流批一体同步引擎。
第四层是资源层支持任务资源调度部署、ECS 物理机等多种资源部署形态。 2. 基于Flink CDC新版引擎架构特点
基于 Flink CDC 新版引擎架构特点首先在功能特性方面得益于 Flink 流批一体架构因此新版引擎天然具备了流批一体架构特点同时支持整库多表、分库分表全增量同步、全事件流解析和同步、分布式动态限流等能力特性。在性能成本方面支持按照 Primary key 进行 Shuffle 可以避免数据热点提高同步性能新版引擎对 Sink 进行了增强支持实时写多表、支持连接复用等特性可以极大节省同步资源和成本。最后基于 Flink 底层资源调度层具备了分布式云原生架构特点。 3. 基于Flink CDC新版引擎架构设计
下面是重构以后基于 Flink CDC 新版引擎架构设计针对数据集成的业务场景新版引擎基于 Flink CDC 进行功能上的扩展和增强。源端大量的数据库例如 MySQL、PostgreSQL、MongoDB 等 基于 Flink CDC Source 自动完成全量数据初始化、增量数据同步以及全增量自动切换同时 CDC Source 具备加表不断流等能力特性。CDC Source 将源端数据读取转换以后数据在执行拓扑中会经过事件流解析器、 数据分发器支持多种分发模式primary keytableshard key, random 等Table Mapping为支持整库多表、分库分表场景服务以及大量内置的 Transformer 算子字符串替换 、动态列配置、数据脱敏、JSON 解析、数据过滤、逻辑删除等。最后基于Flink FLIP-191 Sink V2和 Coordinator 机制对现有的 Sink connector 进行增强支持并发写多表、schema evolution 等能力。 4. 架构详解-全事件流解析与同步
首先针对 DML 事件会将其解析为 INSERT、UPDATE 或 DELETE 数据如果是全量初始化数据 DML 事件会全部解析为 INSERT 数据。HeartBeat 事件主要用于更新延迟指标、及同步给下游系统起到保活作用等。DDL事件将原始的 DDL SQL 变更基于 Druid 解析为标准的 AST 抽象语法树所有的目标端 Sink Connector 对接标准的 AST 抽象语法树将其转换为目标端可执行的 DDL 事件进行重放无需关心源端的数据库类型。 5. 架构详解-Table Mapping
Table Mapping 支持源端表到目标表表名及列名映射例如在分库分表场景下要支持用户的表名正则匹配需要将满足用户自定义的正则条件下的表数据都同步写到目标端某一个表里就需要依赖于 Table mapping 映射的能力。在离线同步场景下需要兼容现有的离线同步能力用户除表名映射以外用户的源端字段列名和目标端字段列名也不一定相同则还需要进行列名映射。 6. 架构详解-Power CDC Sink
Power CDC Sink 是基于 Flink FLIP-191 Sink V2 以及 Coordinator 机制进行了增强支持单 SubTask 实时写多表支持链接复用以节省资源同时支持实时的 Schema Evolution。
基于 Coordinator 机制开发了 Schema Evolution Coordinator在 schema evolution 场景下能够实现分布式协调保证 DML 和 DDL 的执行有序性。具体工作流程是当某个 Subtask 收到 DDL 事件后Coordinator 可以分布式协调其他的 Subtask驱动其它 Subtask 先将数据全部 Flush 到目标端并暂停写数据Flush 完成后 Coordinator 驱动收到 DDL 事件的 Subtask 进行 schema evolution 执行执行完成后由 Coordinator 通知其它 Subtask 继续同步数据基于上述协调过程可以保证在 Schema Evolution 时DML 和 DDL 执行的有序性、保证数据一致。同时结合 Primary key Shuffle 等数据分发策略能够避免数据热点问题提升同步性能。 7. 架构详解-事件通知及异常诊断
实时同步任务因为是 7 * 24 小时运行用户需要能够对其有比较强的可观测性为了提升任务的可观测性新版引擎扩展新增了大量可观测指标当任务出现故障或收到预期外的事件时任务会将 Metric 实时推送到我们自研的报警系统 Mario Mario 在收到 Metric 后根据用户设定的告警规则自动触发告警用户介入处理。例如用户在 DataWorks 数据集成平台上配置了任务心跳告警、任务延迟告警、 DDL 事件通知报警当出现任务延迟、任务异常失败或者出现其它预期外的事件能够及时以短信、电话、钉钉、Webhook 等多种方式告警到用户用户能够及时到数据集成运维平台上做任务运维处理。数据集成运维平台支持 Logview 可视化异常诊断帮助客户分析任务延迟、异常等原因并提供相应的解决建议提升客户运维效率。 三、新版引擎在DataWorks数据集成产品化案例分享
1. 新版引擎数据集成产品化演示和案例分享
这里分享新版引擎 MySQL 到阿里云实时数仓 Hologres 全增量实时同步产品 Demo。
首先在数据集成数据源列表里建两个数据源 MySQL 和 Hologres ,用户的 MySQL 在用户自己云上的 VPC 里与 DataWorks 网络环境不一样由于网络环境不同默认网络不可达测试连通性会报错数据集成提供了自动的连通性诊断级网络打通工具可以帮助用户进行自动的网络打通和连通性检查。这样就不需要用户的数据源与 DataWorks 网络环境在一个网络环境下 可以轻松实现跨网络环境的数据集成能力。
数据源建好测试连通性通过以后在数据集成页面进行任务配置在此次演示中建三个库每个库里有三张表演示分库分表写入场景。数据集成支持表名替换, 附加逻辑列等能力任务配置完成后点击启动执行会进行自动的结构迁移全量数据初始化全增量自动切换。 2. 案例分享 阿里云某出海客户使用 DataWorks 数据集成基于 Flink CDC 的新版引擎将海外云厂商 1 和海外云厂商 2 的跨云、跨时区 MySQL 实例全增量实时同步汇总到阿里云实时数仓 Hologres做实时数仓分析。基于任务执行调度可以弹性扩缩容以及新版引擎 Power CDC Sink 支持连接复用写多表等能力特性可以为客户带来较大的资源成本优化, 用户成本下降近 60%。
四、未来规划 未来 DataWorks 与 Flink CDC 会更加紧密深度的合作在数据集成引擎的通用能力上期望和社区共同演进在任务智能弹性扩容方面进行更多维的探索进一步帮助客户降本增效。 同时能够基于 AI 对任务进行问题的智能诊断帮助用户更加高效便捷的排查降低用户的问题排查门槛。最后在数据离线实时质量校验方面进一步推进使其产品落地。