整库任务配置概览

最近更新时间:2024-04-02 16:17:11

我的收藏

背景信息

整库迁移支持来源端的数据及结构监控,可将源端所有库表下的全量或增量数据实时同步至目标端,同时支持目标端自动建表、字段变更同步等特性。支持 MySQL、Doris、DLC、Kafka 等数据源。

前提条件

1. 已配置好来源及目标端的数据源以备后续任务使用。详情请参见 数据源管理与配置方式
2. 已购买数据集成资源组。详情请参见 配置集成资源组
3. 已完成数据集成资源组与数据源的网络连通。详情请参见 集成连通性与使用规划
4. 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情参见 数据源配置与数据库环境准备

操作步骤

步骤一:创建整库同步任务

进入配置中心 > 实时同步任务页面后,单击新建整库迁移任务。



筛选:实时任务配置列表优化增加多种搜索及筛选条件。




步骤二:链路选择

您可以根据实际业务选择需要同步的来源与去向数据类型。选择后,后续步骤将基于此步选择的类型展示对应来源及目标端配置参数。请保证所选择数据源类型与实际配置数据源类型保持一致。




步骤三:数据来源设置

在此步骤中,您可以选择源端数据源中需要同步的库和表,配置来源端读取方式、时区等。
说明:
此处的配置项根据来源端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。




步骤四:数据目标设置

在此步骤中,您可以定义写入目标端数据源及库表等相关属性。例如,写入模式,库、表名称匹配规则等,以及设定目标对象与来源对象之间的名称映射规则。目前整库目标对象匹配策略支持与来源同名、以及自定义两类:
与来源库/来源表同名
默认情况下,整库同步任务中源端数据库、数据表将写入目标端同名schema或同名表中。此策略下,任务运行时系统将默认在目标数据源内匹配与来源库/表同名对象。



说明:任务计划同步将源端数据库 DB1下的 TableA 和 TableB 同步至 Doris 数据源,配置与来源库同名以及与来源表同名策略以后,任务运行时候将默认在数据源连接内分别匹配 “DB1.TableA” 和 “DB1.TableB”。
自定义
自定义规则支持设置来源与目标之间特殊关系,例如统一将源端库名或表名加上统一固定前缀或者后缀在写入目标库或表任务运行时。此策略下,任务运行时系统将默认根据命名规则匹配目标对象。



自定义方式下,系统针对整库场景提供了内置系统参数。内置参数主要覆盖源端数据源名称、源端库名、源端表名等。其中 Kafka 类型,支持动态匹配消息内数据字段 value 值。自定义方式下内置参数说明如下:
参数名称
参数说明
来源数据源名
${datasource_name_di_src}
来源库名
${db_name_di_src}
来源表名
${table_name_di_src}
来源 schema 名
${schema_name_di_src}
说明:
适用于 pg 等。
来源 Topic 名
${topic_di_src}
说明:
仅适用于 kafka 类型。
数据字段
${key}
说明:
仅适用于 kafka 类型,请替换 key 为具体字段名称。
说明:
示例1:如来源表名称为 table1,映射规则为 ${table_name_di_src}_inlong,则 table1的数据将被最终映射写入至 table1_inlong 中。
示例2:如果来源 kafka 消息格式为 {“name”:“inlong”;“age”:12},映射规则为 ${name}_di,则此条消息将被最终映射写入至 inlong_di 表中。
支持的配置项根据目标端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。

步骤五(可选):批量手动创建目标表

针对来源表与目标表之间名称匹配策略,系统将自动转换异构数据源之间DDL结构,为您提供手动批量快速修改、及创建目标表的能力。
说明:
1. 批量建表是已经配置完目标库、表的名称匹配策略,操作步骤可参考本文档 步骤四
2. 批量建表仅支持部分目标数据源及同步链路。
1. 检查库表名称匹配策略,并单击批量建表



2. 确定建表规则
本步骤中,系统将根据库及表匹配策略扫描目标对象,并自动生成目标表 DDL 语句。您可以在此步骤中检查目标表是否匹配正确、配置目标表创建方式、及编辑建表语句等。重点功能及对应说明如下:



重点功能点
功能说明
功能示例
1
目标库/表名称
系统将默认根据匹配规则预设生成目标库/表名称,同时扫描确认该库/表在目标数据源中是否存在:
匹配失败的库/表:未在目标数据源中发现符合匹配规则的库/表对象。列表默认高亮展示匹配失败的库表。
匹配成功的库/表:目标数据源中存在符合匹配规则的库/表对象。



2
目标表建立方式
针对目标数据源中库/表对象,系统提供多种建表策略:
匹配失败的库/表:支持新建表暂不新建两种方式
新建表:此次批量创建中,根据转换生成的目标表DDL 自动创建。
暂不新建:本次操作暂时忽略此表。
匹配成功的库/表:支持使用已有表删除已有表并新建两种方式
使用已有表:本次操作暂时忽略此表。
删除已有表并新建:本次操作中删除已有表,并根据转换生成的目标表 DDL 重新创建同名表。
1. 匹配失败的库/表策略配置:



2. 匹配成功的库/表策略配置:



3
预览/编辑表语句
针对指定的目标表创建方式,系统将自动生成 DDL 样例。您可查看、编辑建表语句:
1. 目标表名称默认根据来源表名、目标表匹配策略自动生成。
2. 目标表字段默认与来源表名称保持一致。
3. 部分具有多个数据模型的目标数据源(如 doris),系统将根据默认策略指定相应的模型。您可手动修改 DDL 语句以符合业务特性。
1. 新建表 DDL 语句:


2. 删除已有表并新建DDL语句:



3. 批量创建目标表
完成确认目标表创建规则后,可在本步骤中一次性创建目标表。
创建成功后,您可单击完成关闭弹窗,并继续配置后续任务。
若存在创建失败的表,您可查看创建失败的原因或单击重试重新创建。



步骤六:配置运行资源和策略

当前步骤主要是为任务配置资源、DDL 和异常数据处理策略、以及高级运行参数等。
1. 集成资源配置
为当前任务关联对应的集成资源组,同时设定运行时 JM、TM 规格以及任务运行并行度。其中,当前任务实际运行时实际占用 CU数 = JobManager 规格 + TaskManager 规格 × 并行度。

2. 消息处理策略:
为当前任务配置包括写入 DDL 消息响应策略、数据异常写入策略、脏数据归档策略等。
说明:
此处的配置项根据目标端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。

参数说明:
参数
说明
DDL 消息
该参数主要用于设置任务同步过程中,当来源端将捕获得 DDL 变更消息捕获后传递至下游,下游如何响应对应消息。目标端针对 DDL 消息提供了以下响应策略:
1. 自动响应:此策略下针对来源端捕获的消息,目标端将自动跟随响应源端的结构变化,包括自动建表、自动新增列等。
2. 忽略变更:此策略下,目标端将忽略 DDL 变更消息不做任何响应、以及消息通知等。
3. 日志告警:此策略下,目标端忽略 DDL 变更消息,但是日志中将提醒 DDL 变更消息详情。
4. 任务出错:此策略下,一旦源端出现 DDL 变更,整个任务将出现异常持续重启并报异常。
说明:
不同来源及目标端支持 DDL 类型及消息处理存在差异,请参考不同链路支持配置策略为准。数据源支持 DDL 类型详情请参见 支持的 DML 及 DDL 操作
写入异常
该参数用于设置在同步过程中由于表段结构不匹配、字段类型不匹配等各种原因导致数据写入失败时,任务如何处理该异常写入数据、以及是否中断数据流。整体写入异常策略包含:
1. 部分停止:部分表写入异常时,仅停止该表数据写入,其他表正常同步。已停止的表不可在本次任务运行期间恢复写入。
2. 异常重启:部分表写入异常时,所有表均暂停写入。此策略下任务将持续重启直到所有表正常同步,重启期间可能导致部分表数据重复写入。
3. 忽略异常:忽略表内无法写入的异常数据并标记为脏数据。该表的其他数据、以及任务内的其他表正常同步。脏数据提供COS 归档和不归档两种方案。
脏数据
当写入异常配置为忽略异常时,可选择针对忽略的数据是否进行归档:
1. COS 归档:统一将写入异常的数据归档至 COS 文件中保存,此方式下可避免异常写入数据丢失,可在后续场景中进行异常写入原因分析、数据补录等。
2. 不归档:任务完全忽略并丢弃写入异常的数据。
3. 任务运行策略:
为当前任务设置提交间隔、最大重启次数以及任务级运行参数等。

参数说明:
参数
说明
checkpoint 间隔
当前任务提交的最大 checkpoint 间隔。
最大重启次数
设置在执行过程中发生故障时任务最大的重启阈值,若运行中重启次数超过此阈值,任务状态将置为失败,设置范围为[-1,100]。其中
阈值为0表示不重启;
-1 表示不限制最大重启次数。
参数
设置任务级别运行参数。不同来源及目标端支持的任务级参数存在差异,详情请参见 实时节点高级参数

步骤七:配置预览及任务提交

1. 单击提交



序号
参数
说明
1
提交
将当前任务提交至生产环境,提交时可选择不同提交策略及版本描述。
2
锁定/解锁
默认创建者为首个持锁者,仅允许持锁者编辑任务配置及运行任务。若锁定者5分钟内没有编辑操作,其他人可单击图标抢锁,抢锁成功可进行编辑操作。
3
前往运维
根据当前任务名称快捷跳转至任务运维页面。
4
保存
预览完成后,可单击保存保存整库任务配置。仅保存的情况下,任务将不会提交至运维中心。
2. 任务配置检测及提交。
步骤
步骤说明

任务配置检测
本步骤将针对任务内读端、写端以及资源进行检测:
检测通过:配置无误。
检测失败:配置存在问题,需修复以进行后续配置。
检测告警:此检测为系统建议修改项,修改完成后可单击重试重新检测;或者,您可以单击忽略异常进入下一步骤不阻塞后续配置。




提交策略选择
本步骤中可选择本次任务提交策略:
首次提交:首次提交任务支持从默认或指定点位同步数据
立即启动,从默认点位开始同步:若源端配置为“全量 + 增量”读取方式,则默认先同步存量数据(全量阶段),完成后消费binlog获取变更数据(增量阶段);若源端配置为 “仅增量”读取,则默认使用binlog最新位点开始读取。
立即启动,从指定时间点开始同步:任务将根据配置的时间及时区同步数据。若未找到指定的时间位点,任务将默认从binlog最早位点开始同步;若源端读取方式为“全量 + 增量”,任务将默认跳过全量阶段从增量的指定时间位点开始同步。
暂不启动:提交后暂不启动运行任务,后续可在运维列表内手动启动任务。
非首次提交:支持带运行状态启动或继续运行任务
继续运行:此策略下新版本任务提交后,将从上次同步最后位点继续运行。
重新启动,从指定位点开始:此策略下您可指定重新启动读取的位点,任务将忽略老版本从指定位点重新开始读取。若未找到指定的时间位点任务将默认从binlog最早位点开始同步。
重新启动,从默认位点开始运行:此策略下将根据源端配置从默认位点开始读取。若源端配置为“全量+增量”读取方式,则默认先同步存量数据(全量阶段),完成后即可消费binlog获取变更数据(增量阶段);若源端配置为 “仅增量”读取,则默认使用binlog最新位点开始读取。
同时,每次提交都将新生成一个实时任务版本,您可在对话框内配置版本描述。
1. 首次提交



2. 非首次提交



任务提交
提交成功后,您可单击前往运维查看任务运行情况。




后续步骤

完成任务配置后,您可以对已创建的任务进行运维及监控告警,如对任务配置监控报警,并查看任务运行的关键指标等。详情请参见 实时运维