背景信息
整库迁移支持来源端的数据及结构监控,可将源端所有库表下的全量或增量数据实时同步至目标端,同时支持目标端自动建表、字段变更同步等特性。支持 MySQL、Doris、DLC、Kafka 等数据源。
前提条件
1. 已配置好来源及目标端的数据源以备后续任务使用。详情请参见 数据源管理与配置方式。
2. 已购买数据集成资源组。详情请参见 配置集成资源组。
3. 已完成数据集成资源组与数据源的网络连通。详情请参见 集成连通性与使用规划。
4. 已完成数据源环境准备。您可以基于您需要进行的同步配置,在同步任务执行前,授予数据源配置的账号在数据库进行相应操作的权限。详情参见数据源配置与数据库环境准备。
操作步骤
步骤一:创建整库同步任务
进入配置中心 > 实时同步任务页面后,点击新建整库迁移任务。
步骤二:链路选择
您可以根据实际业务选择需要同步的来源与去向数据类型。选择后,后续步骤将基于此步选择的类型展示对应来源及目标端配置参数。请保证所选择数据源类型与实际配置数据源类型保持一致。
步骤三:数据来源设置
在此步骤中,您可以选择源端数据源中需要同步的库和表,配置来源端读取方式、时区等。
说明:
此处的配置项根据来源端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。
步骤四:数据目标设置
在此步骤中,您可以定义写入目标端数据源及库表等相关属性。例如,写入模式,库、表名称匹配规则等,以及设定目标对象与来源对象之间的名称映射规则。目前整库目标对象匹配策略支持“与来源同名”、以及“自定义”两类:
与来源库/来源表同名
默认情况下,整库同步任务中源端数据库、数据表将写入目标端同名schema或同名表中。此策略下,任务运行时系统将默认在目标数据源内匹配与来源库/表同名对象。
说明:任务计划同步将源端数据库DB1下的TableA和TableB同步至Doris数据源,配置【与来源库同名】以及【与来源表同名】策略以后,任务运行时候将默认在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. 集成资源配置
为当前任务关联对应的集成资源组,同时设定运行时 JM、TM 规格以及任务运行并行度。其中,当前任务实际运行时实际占用 CU数= JobManager 规格 + TaskManager 规格 × 并行度。
2. 消息处理策略:
为当前任务配置包括写入 DDL 消息响应策略、数据异常写入策略、脏数据归档策略等。
说明:
此处的配置项根据目标端数据源类型的不同而存在一定的差异,具体以各方案实际配置界面为准。
参数 | 说明 |
DDL 消息 | 该参数主要用于设置任务同步过程中,当来源端将捕获得 DDL 变更消息捕获后传递至下游,下游如何响应对应消息。目标端针对DDL 消息提供了以下响应策略: 1. 自动响应:此策略下针对来源端捕获的消息,目标端将自动跟随响应源端的结构变化,包括自动建表、自动新增列等。 2. 忽略变更:此策略下,目标端将忽略 DDL 变更消息不做任何响应、以及消息通知等。 3. 日志告警:此策略下,目标端忽略 DDL 变更消息,但是日志中将提醒 DDL 变更消息详情。 4. 任务出错:此策略下,一旦源端出现 DDL 变更,整个任务将出现异常持续重启并报异常。 说明: |
写入异常 | 该参数用于设置在同步过程中由于表段结构不匹配、字段类型不匹配等各种原因导致数据写入失败时,任务如何处理该异常写入数据、以及是否中断数据流。整体写入异常策略包含: 1. 部分停止:部分表写入异常时,仅停止该表数据写入,其他表正常同步。已停止的表不可在本次任务运行期间恢复写入。 2. 异常重启:部分表写入异常时,所有表均暂停写入。此策略下任务将持续重启直到所有表正常同步,重启期间可能导致部分表数据重复写入。 3. 忽略异常:忽略表内无法写入的异常数据并标记为脏数据。该表的其他数据、以及任务内的其他表正常同步。脏数据提供cos归档和不归档两种方案。 |
脏数据 | 当写入异常配置为 忽略异常 时,可选择针对忽略的数据是否进行归档: 1. cos 归档:统一将写入异常的数据归档至 cos 文件中保存,此方式下可避免异常写入数据丢失,可在后续场景中进行异常写入原因分析、数据补录等。 2. 不归档:任务完全忽略并丢弃写入异常的数据。 |
3. 任务运行策略:
为当前任务设置提交间隔、最大重启次数以及任务级运行参数等。
参数 | 说明 |
checkpoint 间隔 | 当前任务提交的最大 checkpoint 间隔。 |
最大重启次数 | 设置在执行过程中发生故障时任务最大的重启阈值,若运行中重启次数超过此阈值,任务状态将置为 失败,设置范围为[-1,100]。其中 阈值为0表示不重启; -1 表示不限制最大重启次数。 |
参数 |
步骤六:配置预览及任务提交
序号 | 参数 | 说明 |
1 | 提交 | 将当前任务提交至生产环境,提交时根据当前任务是否有生产态任务可选择不同运行策略: 若当前任务无生效的线上任务,即首次提交或线上任务处于“失败”状态,可直接提交。 若当前任务存在“运行中”或“暂停”状态的线上任务需选择不同策略。停止线上作业将抛弃之前任务运行位点,从头开始消费数据,保留作业状态将在重启后从之前最后消费位点继续运行。 说明: 单击立即启动任务将在提交后立即开始运行,否则需要手动触发才会正式运行。 |
2 | 锁定/解锁 | 默认创建者为首个持锁者,仅允许持锁者编辑任务配置及运行任务。若锁定者5分钟内没有编辑操作,其他人可点击图标抢锁,抢锁成功可进行编辑操作。 |
3 | 前往运维 | 根据当前任务名称快捷跳转至任务运维页面。 |
4 | 保存 | 预览完成后,可单击 保存 按钮保存整库任务配置。仅保存的情况下,任务将不会提交至 运维中心。 |
任务提交检测
参数 | 说明 |
检测存在异常 | 支持跳过异常直接提交,或者终止提交。 |
检测仅存在警告及以下 | 可直接提交。 |
提交结果
任务提交中:
展示提交进度百分比。
提示用户勿刷新/关闭页面,文案:当前任务已提交成功,可前往运维进行任务状态及数据管理。
任务提交结果-成功:
展示任务提交成功结果。
提示成功及后续跳转:文案 “提交成功,10秒后将跳转至当前任务运维详情页面” “当前任务已提交成功,可前往运维进行任务状态及数据管理”。
展示任务提交失败原因:
失败原因返回。
后续步骤