背景信息及特性支持
支持 MySQL、TDSQL-C MySQL、Kafka、PostgreSQL 内整个实例或库表数据实时同步至 Doris 中:
MySQL、TDSQL-C MySQL 支持 DDL 变更监控,MySQL 数据源支持实例、库、表级数据变更监控。
Kafka 支持拆分消息内容动态匹配目标表。
条件与限制
全量同步阶段,Doris 仅支持同步至已有库表,任务运行前需保证目标库表已存在。
增量同步阶段,Doris 对于源端新建表、新建字段操作支持自动响应写入。具体数据源已支持 DDL 变更类型详情参见 支持的 DML 及 DDL 操作。
操作步骤
步骤一:创建整库同步任务
进入配置中心 > 实时同步任务页面后,单击新建整库迁移任务。
步骤二:链路选择
在首页卡片中选择同步至 Doris 目标端的链路。
步骤三:数据来源设置
Kafka 来源
步骤四:数据目标设置
参数 | 说明 |
数据源 | 选择需要同步的目标数据源。 |
库/表匹配策略 | 设置任务运行时 Doris 中数据库以及数据表对象的名称匹配规则: 与来源库/表同名:任务运行时系统将默认在目标数据源内匹配与来源库/表同名对象。 自定义:自定义规则支持设置来源与目标之间特殊关系,例如统一将源端库名或表名加上统一固定前缀或者后缀在写入目标库或表任务运行时。此策略下,任务运行时系统将默认根据命名规则匹配目标对象。 说明: 同步至 Doris 的整库任务全量同步阶段暂不支持自动建库/表,请提前在 Doris 端构建存量库、表对象以保证任务正常运行 。 增量数据同步阶段,任务支持自动创建表对象。 |
高级设置 - 参数 |
步骤五:配置运行资源和策略
集成资源配置
为当前任务关联对应的集成资源组,同时设定运行时 JM、TM 规格以及任务运行并行度。其中,当前任务实际运行时实际占用 CU 数 = JobManager 规格 + TaskManager 规格 × 并行度。
消息处理策略
注意:
参数 | 策略名 | 策略说明 |
DDL 消息处理 | 新建表 | 1. 自动建表:当来源端被监控的库中出现新建表时,Doris 端将自动创建同结构的表及字段。针对 Doris 的不同数据模型: 若来源端表包含主键,任务默认创建 Unique key 模型表。 若来源端表包含主键,任务默认创建 Duplicate 模型表。 2. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 3. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容,不触发新建表操作。 4. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 |
新增列 | 1. 自动建表:当来源端被监控的库中出现表增加字段时,Doris 端将自动同步新增同名字段。 2. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 3. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容。此策略并不触发新增列操作。 4. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 | |
删除表 | 除新建表、新增字段外其他 DDL 变更消息不支持自动响应,目前提供了 忽略变更、日志告警、任务出错三种策略选择: 1. 忽略变更:目标端忽略来源端的产生的 DDL 变更消息,Doris 端及日志不做任何响应或消息提醒。 2. 日志告警:目标端仅接收 DDL 变更消息,并在日志内打印消息内容。此策略并不触发新建表操作。 3. 任务出错:目标端接收 DDL 变更消息并持续重启任务,重启过程中任务日志报错并出现数据写入异常。 | |
重命名表 | | |
删除列 | | |
重命名列 | | |
修改列 | | |
清空表 | | |
写入异常 | 部分停止 | 数据无法写入目标表时丢弃数据,后续该异常表对应的数据自动丢弃不再同步。 说明: 示例:若任务中总共包含50张表,其中表 A 由于字段类型与目标端对应字段类型无法匹配导致无法写入,部分停止策略 下任务将在后续同步过程中自动停止读取表 A 中的数据,其余49张表将继续读写不受影响。 |
异常重启 | 任意表数据写入异常后任务将异常退出并自动重启。重启后任务将持续尝试写入,直到所有表均可正常同步。重启期间可能导致部分表数据重复写入。 说明: 示例:若任务中总共包含50张表,其中表 A 由于字段类型与目标端对应字段类型无法匹配导致无法写入,异常重启 策略下任务将持续处于异常重启状态,重启过程中、异常被更正前所有表写入均将受到影响。 | |
忽略异常 | 忽略表内无法写入的异常数据并标记为脏数据,任务继续读取并写入剩下的数据。 说明: 示例:若任务中总共包含50张表,其中表 A 由于字段类型与目标端对应字段类型无法匹配导致无法写入,忽略异常 策略下该异常将被忽略,同时未写入数据将被标记统计为脏数据,所有50张表后续读写均不受影响。 | |
脏数据 | COS 归档 | 写入异常策略配置为忽略异常时,将未写入至目标端的数据同步写入到指定的 COS 桶及文件内。 |
不归档 | 不归档保存未写入的异常的数据。 |
步骤六:配置预览及任务提交
序号 | 参数 | 说明 |
1 | 提交 | 将当前任务提交至生产环境,提交时根据当前任务是否有生产态任务可选择不同运行策略: 若当前任务无生效的线上任务,即首次提交或线上任务处于“失败”状态,可直接提交。 若当前任务存在“运行中”或“暂停”状态的线上任务需选择不同策略。停止线上作业将抛弃之前任务运行位点,从头开始消费数据,保留作业状态将在重启后从之前最后消费位点继续运行。 说明: 单击立即启动任务将在提交后立即开始运行,否则需要手动触发才会正式运行。 |
2 | 锁定/解锁 | 默认创建者为首个持锁者,仅允许持锁者编辑任务配置及运行任务。若锁定者5分钟内没有编辑操作,其他人可单击图标抢锁,抢锁成功可进行编辑操作。 |
3 | 前往运维 | 根据当前任务名称快捷跳转至任务运维页面。 |
4 | 保存 | 预览完成后,可单击保存按钮保存整库任务配置。仅保存的情况下,任务将不会提交至运维中心。 |
任务提交检测
参数 | 说明 |
检测存在异常 | 支持跳过异常直接提交,或者终止提交。 |
检测仅存在警告及以下 | 可直接提交。 |
提交结果
任务提交中:
展示提交进度百分比。
提示用户勿刷新/关闭页面,文案:当前任务已提交成功,可前往运维进行任务状态及数据管理。
任务提交结果-成功:
展示任务提交成功结果。
提示成功及后续跳转:文案 “提交成功,10秒后将跳转至当前任务运维详情页面” “当前任务已提交成功,可前往运维进行任务状态及数据管理”。
展示任务提交失败原因:
失败原因返回。
后续步骤