1. 概述编辑
本文以 MySQL 数据同步为例,将 demo1 数据库中的「S订单」、「S产品」实时同步至 demotest 数据库中。
提示:2. 操作步骤编辑
2.1 准备工作
需准备一个独立部署的 FDL 工程,该工程已注册 数据管道相关功能点
注:对外 Demo 平台上已准备好环境,可到 对外 Demo 平台 上从本文 2.2 节步骤开始创建管道任务。
| 步骤 |
|---|
| 步骤一:数据源配置 根据实际情况选择源端和目标端数据库,数据管道支持的数据库请参见:数据管道支持的数据源类型 在数据连接管理中配置源端和目标端的数据连接,便于在管道任务配置过程中,通过选择数据源名称来控制同步任务的读取和写入数据库。详情请参见:配置数据连接 |
| 步骤二:准备数据库环境 基于需要设置数据管道任务的数据源,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述 |
| 步骤三:管道任务环境准备 部署 Kafka 开源流处理平台作为中间件。详情请参见:部署Kafka、配置传输队列 注:Kafka 建议部署在 Linux 系统中(Kafka 也支持安装在 Windows 中,但性能会受到限制,仅做演示使用,不建议用于生产环境);Kafka 与 FDL 可以不在一个服务器上 |
| 步骤四:分配管道任务权限 若需要使用数据管道的用户不是超级管理员,则需要为对应用户分配数据管道的使用权限。详情请参见:管道任务管理权限 注:管道任务的来源端若为 MySQL、SQLServer、Oracle,若同一个库中的多张表都需要实时同步,建议在一个管道任务中实现;若同一个库中的多张表,每张表单独配置一个管道任务,数据库将承受较大压力。 |
2.2 新建管道任务
进入 FDL 工程,点击「数据管道>实时管道」,新建一个实时管道任务。如下图所示:

2.3 配置管道任务
2.3.1 选择数据来源和数据去向
选择待同步表所在的数据连接、目标表所在的数据连接和数据库。
数据来源处的「数据源权限检测」按钮,点击后,可以查看数据源是否有日志读取权限,建议点击检查下。

2.3.2 高级设置
步骤如下图所示:

设置项详细说明请参见:配置管道任务-高级设置
| 步骤 | 含义 |
|---|---|
| 源端删除数据,选择「目标端执行逻辑删除」 | 来源表删除数据,目标端不实际删除数据;目标表将新增一个名称为_fdl_marked_deleted的布尔型字段(字段默认为false),用于记录数据删除状态。来源数据表删除了一条数据,此时同步至目标表,目标表不进行物理删除,而是将_fdl_marked_deleted字段更新为 true 。 |
| 开启「同步时标记时间戳」按钮 | 所有目标表将新增一个名称为_fdl_update_timestamp的长整型字段,以毫秒级时间戳的形式记录数据在数据库中实际新增和更新的时间(数据库所在时间) |
| 开启「同步源表结构变化」按钮 | 数据管道任务支持同步源库DDL功能,开启该按钮后,在源库发生DDL(删除表、新增字段、删除字段、修改字段名称、修改字段类型(长度修改 & 兼容类型修改))时,管道任务可以自动同步这些来源端变化至目标端,不需人为介入修改目标表结构 |
2.3.3 同步配置
添加来源表:
点击「添加表」按钮,从 demo1 数据库中选择「S订单」、「S产品」表。
同步类型默认即可,为存量+增量同步,逻辑是先对所有存量数据同步,然后持续同步新增变化。
最后点击「添加表」按钮。如下图所示:
注:该界面设置项详细说明请参见:配置实时管道任务-同步配置

设置目标表:
1)依次为待同步的两张表:修改目标表名称,为目标表设置物理主键(设置的物理主键显示在写入方式的「主键映射」处)。如下图所示:
「S产品」对应的目标表为「S产品_2」,「S订单」表对应的目标表为「S订单_2」。
由于同步类型我们选择的是「存量+增量同步」,所以写入方式处有两个阶段;主键冲突策略无法修改,默认即可。

2.3.2 节我们开启了「同步时标记时间戳」按钮、「目标端执行逻辑删除」,目标表中新增_fdl_update_timestamp、_fdl_marked_deleted字段。如下图所示:

本步骤中,目标表可以选择已存在表、可批量修改表名、主键相关说明等,详情请参见:配置实时管道任务-同步配置
保存配置
点击左下角的「保存」按钮即可。
2.3.4 任务控制
点击「任务控制」按钮,进行设置:

详情请参见:配置实时管道任务-任务控制
| 设置项 | 含义 |
|---|---|
脏数据阈值为 1000 行 | 管道任务中单表脏数据达到表脏数据阈值后,任务会异常中止 注1:限制最多10w行,且处理脏数据后,会重置阈值统计。 注2:若需要对产生的脏数据进行处理,详情参见:管道任务处理脏数据 |
失败重试:重跑 3 次,每次间隔 2 分钟 | 管道任务失败后,重试 3 次,每次间隔 2 分钟 |
| 当管道任务异常中止、任务异常重试、表同步异常重试、源表结构变化时,通知给指定负责人 |
![]() | 用户若想看到详细的日志信息,日志等级可以设置为INFO |
2.3.5 启动所有表
点击「启动所有表」按钮,开启来源表的实时同步。如下图所示:
注:启动管道任务前,请确保有充足的内存和并发运行实时管道任务。详情请参见:负载分配

2.4 效果查看
1)可查看读取行数、写入行数。如下图所示:

可看到「S订单_2」表中产生了一条脏数据,可参考 文档 对脏数据进行处理。
支持暂停单张表、暂停所有表的同步。
2)demotest 数据库中可看到已同步的 2 张表。
「S产品」对应的目标表「S产品_2」表信息如下图所示:

3)由于 2.3.4 节,结果通知中我们设置源表结构变化进行通知。所以,demo1 数据库中的「S产品」中,我们新增一个字段 test,将收到通知:

「S产品_2」表中新增了一个 test 字段。如下图所示:

2.5 管道任务运维
点击「运维中心>实时管道」,可查看任务运行状态、数据同步性能、检查异常情况、以及对异常进行处理等。如下图所示:
详情请参见:管道任务运维

2.6 修改管道任务配置
实时管道任务运行一段时间后,想新增/删除表对象、修改任务控制(2.3.4节)、修改高级设置(2.3.2节)、修改同步方式等,可参考 管理实时管道任务 进行操作。






