1. 概述
1.1 应用场景
企业在构建数仓和中间库时,由于业务数据量级较大,如果使用 数据同步 批量定时同步数据很难做到高性能的增量同步,若使用清空目标表再写入数据的方式时,还会面临目标表一段时间不可用、抽取耗时长等问题。
因此希望能在数据库数据量大或表结构规范的情况下,实现高性能的实时数据同步。
1.2 实现原理
FDL 监听实时管道来源端的数据库日志变化,利用 Kafka 作为数据同步中间件,暂存来源数据库的增量部分,进而实现向目标端实时写入数据的效果。
1.3 功能简介
实时管道任务可将源端数据库的单张表、多张表(最多5000张表)实时同步到目标端(原表原样同步,不能对数据进行处理)。
实时管道任务运行后,一般情况下无需再次启动,当源端数据发生增删改或者源端表结构发生变化时(源表新增字段、删除字段、修改字段名称等),目标端可自动实时同步变化。
当实时管道任务意外中止后,支持断点续传:若全量同步未完成,会从头全量同步;若全量同步已完成,会从断点开始。
断点续传示例:实时管道任务在 03-21 日读取了数据,03-23 日停掉,03-27 日启动,03-23 到 03-27 日的数据会同步过去。
1.4 效果查看
若源端数据发生增删改,目标端数据实时变化。如下图所示:
注:源表的增删改能实时同步到目标表中;若源表删除数据,可在管道任务中设置删除方式(物理删除、逻辑删除)来控制目标表的删除效果。
2. 使用限制&注意事项
2.1 使用限制
管道任务不支持同步视图和索引。
新建实时管道任务需要有某文件夹 OR 所有实时管道任务的管理权限。详情请参见:管道任务管理权限
同一个管道任务只能配置一个数据源的多对一(使用 分组表 功能)和多对多,如果是不同数据源,需要配置多个数据管道任务。
单个任务限制最多选取 5000 张表,达到限制时不允许新增选择
2.2 注意事项
不建议用户使用数据管道同步 longtext 类型的字段,否则 Kafka 会有问题,运行效率也会有问题。
不建议来源表字段名称中包含空格,否则任务启动将会报错。
3. 能力说明
能力 | 说明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
支持的数据源 | 实时同步支持多种数据源,可以将多种来源端及目标端数据源搭配组成同步链路进行数据实时同步。数据管道支持的数据源请参见:数据管道支持的数据源类型 | ||||||||||
同步场景 | 同步对象说明:
同步类型说明: 详情请参见:同步类型
| ||||||||||
任务配置 | 1)任务配置前,需要先准备数据库环境、管道任务环境。详情请参见:数据管道使用说明 文档的第二章、第三章内容 2)在 FDL 中配置管道任务时,步骤简单,无需编写代码;功能丰富。详细说明如下:
| ||||||||||
任务运维 | 1)详情请参见:管道任务运维
2)资源控制 管道任务需要占用内存和并发资源等,因此用户可能需要根据实际的使用情况进行任务调整 3)4.2.4.3 及之后版本,管道任务新建并启动后,在「管理系统>数据连接>实时采集任务」中自动新增 实时采集任务,对数据库日志解析进行管理 | ||||||||||
数据中心 | 4.1.6.1 及之后版本,可在 FDL 的 库表管理 功能中,查看、修改表数据(快速检查实时同步效果) 4.1.11.1 及之后版本,可查看管道任务中所使用数据表的血缘关系,详情请参见:血缘分析 | ||||||||||
其他 | 4.1.9.3 及之后的版本支持使用「回收站」进删除任务的还原、管理,详情请参见:回收站 4.1.6.3 及之后版本,管道任务禁止被多人同时编辑,详情请参见:任务禁止被多人同时编辑 |
4. 使用流程
数据管道功能使用说明请参见:数据管道使用说明
5. 知识扩展
1)用户想了解某个管道任务是谁编辑的、编辑时间、断点相关信息等,FDL 工程内的管道任务运维无法满足需求,可参见解决方案:BI仪表板展示管道任务编辑信息
2)用户的管道任务实现上百张表的实时同步,且存在部分来源表和目标表的表名不同、多张来源表同步到一张目标表等情况,导致用户在管理来源表和目标表的对应关系时(例如重构任务)较为困难。可参见解决方案:导出管道任务中来源表及对应的目标表信息