DataWorks数据集成支持在MySQL、MaxCompute、Hologres、Kafka等多种数据源之间同步数据。数据集成提供离线批处理同步、实时数据同步和整库迁移方案,可用于T+1离线数据ETL、秒级实时数据复制和整库迁移等场景。
同步方案说明
同步类型 | 源粒度 | 目标粒度 | 时效性 | 同步场景 |
单表离线 | 单张表 | 单张表/分区 | T+1 或周期性 | 周期性全量、周期性增量 |
分库分表离线 | 多张结构一致的表 | 单张表/分区 | T+1 或周期性 | 周期性全量、周期性增量 |
单表实时 | 单张表 | 单张表/分区 | 秒级~分钟级 | 实时增量 (CDC) |
分库分表实时 | 多个逻辑表(多个物理表的逻辑聚合) | 对应多个目标表,或合并至单个目标表 | 秒级~分钟级 | 全量+实时增量 (CDC) |
整库离线 | 整库或多张表 | 对应多张表及其分区 | 一次性或周期性 | 一次性/周期性全量、一次性/周期性增量、一次性全量+周期性增量 |
整库实时 | 整库或多张表 | 对应多张表及其分区 | 秒级~分钟级 | 全量+实时增量 (CDC) |
整库全增量 (准实时) | 整库或多张表 | 对应多张表及其分区 | 首次全量:批处理 后续增量:T+1 | 全量+实时增量 (CDC) |
同步方案推荐
在选择数据同步方案时,主要需要思考两个核心问题:
时效性要求:业务需要数据多久同步一次,是每天一次(离线),还是需要秒级/分钟级的实时更新(实时)。
同步规模与复杂度:需要同步多少张表,这些表的处理逻辑是否统一(单表 vs 整库)。
基于此,我们将同步方案分为两大类进行推荐:离线同步方案和实时同步方案。
一、 选择离线同步方案 (T+1/周期性)
离线方案适用于对数据时效性要求不高(例如T+1)、需要进行周期性批量处理的场景。
核心前提:实现离线增量同步,源表必须包含可用于界定数据增量的字段(如gmt_modified
等时间戳或自增ID)。若缺少此类字段,只能退而求其次选择周期性全量同步。
1. 选择「单表离线」
当需要对少量、核心、异构的数据进行精细化处理时。
核心优势:处理逻辑灵活。
精细化转换:支持复杂的字段映射、数据过滤、常量赋值及函数转换甚至AI辅助处理。
异构源集成:是处理API、日志文件等非标数据源的最佳选择。
核心限制:规模化成本高。
配置开销大:同步大量表时,逐一配置和维护任务的工作量巨大。
资源消耗高:每个任务独立调度,100个单表任务的资源消耗远超1个整库任务。
单表离线方案推荐:单表离线同步任务
2. 选择「整库离线」
当需要将大量、同构的数据表从一个地方高效“搬迁”到另一个地方时。
核心优势:运维效率高、成本低。
高效率:一次性配置上百张表,自动匹配对象,极大提升开发效率。
成本效益:资源整体调度优化,成本极低(例如,1个整库任务 vs 100个单表任务,资源消耗可能为2CU vs 100CU)。
典型场景:数据仓库ODS层构建、数据库周期性备份、数据上云。
核心限制:处理逻辑单一。
主要为“复制”设计,不支持针对单表的复杂转换逻辑。
整库离线方案推荐:整库离线同步任务。
二、 选择实时同步方案 (秒级~分钟级)
实时方案适用于需要捕获源端实时数据变更(增、删、改),以支撑实时分析和业务响应的场景。
核心前提:源端必须支持变更数据捕获 (CDC) 或本身就是消息队列。例如,MySQL需开启Binlog,或源端为Kafka实例。
选择「单表实时」 or 「整库实时」
选择逻辑与离线方案类似:
单表实时:适用于对单张核心表的实时变更流进行复杂处理的场景。
整库实时:是构建实时数仓、实现数据库实时灾备、打通实时数据湖的主流选择,同样具备高效率和成本效益的巨大优势。
实时方案推荐:单表实时同步任务、数据集成侧同步任务
三、 特殊场景:实时CDC数据写入仅追加 (Append-Only) 目标表
问题背景:实时同步捕获的CDC数据包含 Insert
(插入)、Update
(更新)和 Delete
(删除)三类操作。对于MaxCompute的非Delta Table类型表等原生不支持在物理层面执行Update
/Delete
的Append-Only(仅追加)存储系统,直接写入CDC流会导致数据状态不一致(例如,删除操作无法体现)。
DataWorks解决方案:Base + Log模式
此方案即整库全增量(准实时)任务,通过在目标端创建
Base表
(全量快照)和Log表
(增量日志)来解决此问题。写入方式:CDC数据流被实时写入
Log表
,然后在T+1日,系统自动调度任务将Log表
中的变更合并(Merge)到Base表
,生成最新的全量快照。此方案的时效性是“数据分钟级写入增量表,最终状态T+1合并可见”。它兼顾了数据的实时捕获和离线数仓的最终一致性。
同步方案推荐:整库全增量(准实时)任务。
数据源读写能力
数据源 | 单表离线 | 单表实时 | 整库离线 | 整库实时 | 整库全增量(准实时) |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | 写 | 读 | 写 | - | |
读/写 | - | 读 | - | - | |
读/写 | - | - | 读 | 读 | |
读 | - | - | - | - | |
读 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | 读/写 | - | 写 | - | |
写 | 写 | - | 写 | - | |
读/写 | - | 读 | - | - | |
读/写 | 写 | - | - | - | |
读/写 | - | 读 | - | - | |
读/写 | - | 读 | - | - | |
读/写 | 写 | 写 | 写 | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | ||
hbase读/写 HBase 20xsql 读 HBase 11xsql 写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | 写 | - | - | |
读/写 | 读/写 | 读/写 | 写 | - | |
读 | - | - | - | - | |
读/写 | 读/写 | - | 写 | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | 读 | - | - | - | |
读/写 | 写 | 写 | - | 写 | |
读/写 | - | - | - | - | |
写 | - | - | - | - | |
写 | - | - | - | - | |
读 | - | - | - | - | |
写 | - | - | - | - | |
读/写 | - | - | 读 | - | |
读/写 | 读 | 读 | 读 | 读 | |
写 | - | - | - | - | |
读/写 | 读 | 读 | 读 | 读 | |
读/写 | 写 | 写 | - | - | |
读/写 | 写 | - | - | - | |
读/写 | 读 | 读 | 读 | 读 | |
读/写 | - | 读 | 读 | - | |
读/写 | - | 读 | 读 | - | |
写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
写 | - | - | - | - | |
读/写 | 写 | 写 | - | - | |
读/写 | - | 读 | - | - | |
读/写 | 写 | - | - | - | |
读/写 | - | - | - | - | |
读/写 | - | - | - | - | |
写 | - | - | - | - | |
读/写 | - | - | - | - | |
读 | - | - | - | - |
常见业务场景
相关文档
下面精选了数据集成核心文档,旨在帮助用户快速入门。