历史版本14 :实时管道任务示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文以 MySQL 数据同步为例,将 demo1 数据库中的「S订单「S产品实时同步至 demotest 数据库中。

icon提示:
本章内容适用于 4.2.11.3 及之后版本;4.2.11.3 之前版本,请参见:历史文档

2. 操作步骤编辑

2.1 准备工作

需准备一个独立部署的 FDL 工程,该工程已注册 数据管道相关功能点 

注:对外 Demo 平台上已准备好环境,可到 对外 Demo 平台 上从本文 2.2 节步骤开始创建管道任务。

步骤
步骤一:数据源配置

根据实际情况选择源端和目标端数据库,数据管道支持的数据库请参见:数据管道支持的数据源类型

在数据连接管理中配置源端和目标端的数据连接,便于在管道任务配置过程中,通过选择数据源名称来控制同步任务的读取和写入数据库。详情请参见:配置数据连接

步骤二:准备数据库环境

基于需要设置数据管道任务的数据源,授予数据源配置的账号在数据库进行相应操作的权限。详情请参见:数据库环境准备概述

步骤三:管道任务环境准备

部署 Kafka 开源流处理平台作为中间件。详情请参见:部署Kafka配置传输队列

注:Kafka 建议部署在 Linux 系统中(Kafka 也支持安装在 Windows 中,但性能会受到限制,仅做演示使用,不建议用于生产环境);Kafka 与 FDL 可以不在一个服务器上

步骤四:分配管道任务权限

若需要使用数据管道的用户不是超级管理员,则需要为对应用户分配数据管道的使用权限。详情请参见:管道任务管理权限

注:管道任务的来源端若为 MySQL、SQLServer、Oracle,若同一个库中的多张表都需要实时同步,建议在一个管道任务中实现;若同一个库中的多张表,每张表单独配置一个管道任务,数据库将承受较大压力。

2.2 新建管道任务

进入 FDL 工程,点击「数据管道>实时管道」,新建一个实时管道任务。如下图所示:

92.png

2.3 配置管道任务

2.3.1 选择数据来源和数据去向

选择待同步表所在的数据连接、目标表所在的数据连接和数据库。

数据来源处的「数据源权限检测」按钮,点击后,可以查看数据源是否有日志读取权限,建议点击检查下。

93.png

2.3.2 高级设置

步骤如下图所示:

94.png

设置项详细说明请参见:配置管道任务-高级设置

步骤
含义
源端删除数据,选择「目标端执行逻辑删除」来源表删除数据,目标端不实际删除数据;目标表将新增一个名称为_fdl_marked_deleted的布尔型字段(字段默认为false),用于记录数据删除状态。来源数据表删除了一条数据,此时同步至目标表,目标表不进行物理删除,而是将_fdl_marked_deleted字段更新为 true 
开启「同步时标记时间戳」按钮所有目标表将新增一个名称为_fdl_update_timestamp的长整型字段,以毫秒级时间戳的形式记录数据在数据库中实际新增和更新的时间(数据库所在时间
开启「同步源表结构变化」按钮数据管道任务支持同步源库DDL功能,开启该按钮后,在源库发生DDL(删除表、新增字段、删除字段、修改字段名称、修改字段类型(长度修改 & 兼容类型修改))时,管道任务可以自动同步这些来源端变化至目标端,不需人为介入修改目标表结构

2.3.3 同步配置

添加来源表:

点击「添加表按钮,从 demo1 数据库中选择「S订单「S产品」表。

同步类型默认即可,为存量+增量同步,逻辑是先对所有存量数据同步,然后持续同步新增变化。

最后点击「添加表按钮。如下图所示:

注:该界面设置项详细说明请参见:配置实时管道任务-同步配置

1761294198520251.png

设置目标表:

1)依次为待同步的两张表:修改目标表名称,为目标表设置物理主键(设置的物理主键显示在写入方式的「主键映射处)。如下图所示:

「S产品」对应的目标表为「S产品_2」,「S订单」表对应的目标表为「S订单_2」。

由于同步类型我们选择的是「存量+增量同步」,所以写入方式处有两个阶段;主键冲突策略无法修改,默认即可。

96.png

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

97.png


本步骤中,目标表可以选择已存在表、可批量修改表名、主键相关说明等,详情请参见:配置实时管道任务-同步配置

保存配置

点击左下角的「保存按钮即可。

2.3.4 任务控制

点击「任务控制按钮,进行设置:

98.png

详情请参见:配置实时管道任务-任务控制

设置项
含义

99.png

脏数据阈值为 1000 行

管道任务中单表脏数据达到表脏数据阈值后,任务会异常中止

注1:限制最多10w行,且处理脏数据后,会重置阈值统计。

注2:若需要对产生的脏数据进行处理,详情参见:管道任务处理脏数据

99.png

失败重试:重跑 3 次,每次间隔 2 分钟

管道任务失败后,重试 3 次,每次间隔 2 分钟

101.png

当管道任务异常中止、任务异常重试、表同步异常重试、源表结构变化时,通知给指定负责人
102.png用户若想看到详细的日志信息,日志等级可以设置为INFO

2.3.5 启动所有表

点击「启动所有表按钮,开启来源表的实时同步。如下图所示:

注:启动管道任务前,请确保有充足的内存和并发运行实时管道任务。详情请参见:负载分配

103.png

2.4 效果查看

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

3.png

可看到「S订单_2」表中产生了一条脏数据,可参考 文档 对脏数据进行处理。

支持暂停单张表、暂停所有表的同步。

2)demotest 数据库中可看到已同步的 2 张表。

「S产品」对应的目标表「S产品_2」表信息如下图所示:

6.png

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

1761530933466895.png

2.5 管道任务运维

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

详情请参见:管道任务运维

8.png

2.6 修改管道任务配置

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

9.png