批量 ETL
适用版本:1.0.0。任务 → 新增/编辑 → 插件 BATCH_ETL。
入口与准备
使用 ADMIN 创建、配置和保存任务;ADMIN 或 OPERATOR 可以执行已发布定义,详细日志和输入输出变量由 ADMIN 查看。资源必须启用并可被执行节点访问。任务公共超时、重试和版本规则见任务,角色动作见权限矩阵。
字段说明
“默认值”指 1.0.0 新建表单的初始值;空表示尚未填写,不表示必填项可以省略。显示条件决定当前分支中是否出现字段。“条件必填”只在对应分支启用时要求填写。
表与写入配置
| 字段 | 是否必填 | 默认值 | 显示条件 | 作用范围 |
|---|---|---|---|---|
| 来源数据库 | 必填 | 无 | 始终 | 当前任务版本 |
| 目标数据库 | 必填 | 无 | 始终 | 当前任务版本 |
| 来源 Schema(可选) | 可选 | 空 | 始终 | 当前任务版本 |
| 目标 Schema(可选) | 可选 | 空 | 始终 | 当前任务版本 |
| 同步表 | 必填 | 空列表 | 始终 | 当前任务版本 |
| 逻辑键 | 条件必填 | 空列表 | 写入方式非 APPEND 或增量提取 | 当前任务版本 |
| 提取方式 | 选择 | FULL | 始终 | 当前任务版本 |
| 写入方式 | 选择 | UPSERT | 始终 | 当前任务版本 |
| 空值策略 | 选择 | OVERWRITE | 始终 | 当前任务版本 |
| 目标表前缀(可选) | 可选 | 空 | 始终 | 当前任务版本 |
| 目标表后缀(可选) | 可选 | 空 | 始终 | 当前任务版本 |
| 增量字段 | 条件必填 | 空 | INCREMENTAL | 当前任务版本 |
| 标记类型 | 选择 | TIMESTAMP | INCREMENTAL | 当前任务版本 |
| 初始增量值 | 条件必填 | 空 | INCREMENTAL | 当前任务版本 |
| 初始逻辑键值 | 条件必填 | 空列表 | INCREMENTAL | 当前任务版本 |
| 导入前清空 | 可选 | false | FULL | 当前任务版本 |
| 清空方式 | 选择 | DELETE | FULL 且导入前清空 | 当前任务版本 |
| 我已了解:删除后按批提交,失败可能保留部分结果 | 条件必选 | false | 清空方式 DELETE | 当前任务版本 |
| 我已了解:TRUNCATE 可能隐式提交,无法整体回滚 | 条件必选 | false | 清空方式 TRUNCATE | 当前任务版本 |
| 我已了解:追加写入自动重试可能产生重复数据 | 条件必选 | false | APPEND 且任务重试大于 0 | 当前任务版本 |
- 来源数据库:提供批量读取的来源数据库连接。
- 目标数据库:提供批量写入的目标数据库连接。
- 来源 Schema(可选):限定来源表所在的 Schema。
- 目标 Schema(可选):限定目标表所在的 Schema。
- 同步表:逐项列出需要同步的表,不允许重复。
- 逻辑键:用于匹配目标记录和增量同值排序,各表需具备这些列。
- 提取方式:选择全量或增量读取。
- 写入方式:选择目标表追加、插入、更新或合并写入方式。
- 空值策略:控制来源空值覆盖或保留目标已有值。
- 目标表前缀(可选):生成目标表名时添加的前缀。
- 目标表后缀(可选):生成目标表名时添加的后缀。
- 增量字段:各表用于跟踪增量进度的列。
- 标记类型:解释和比较增量标记值的类型。
- 初始增量值:尚无检查点时使用的起始标记。
- 初始逻辑键值:与逻辑键顺序对应的初始同值排序位置。
- 导入前清空:全量导入前先清空目标表。
- 清空方式:选择 DELETE 或 TRUNCATE 清空方式。
- 我已了解:删除后按批提交,失败可能保留部分结果:确认删除后分批提交可能在失败时留下部分结果。
- 我已了解:TRUNCATE 可能隐式提交,无法整体回滚:确认 TRUNCATE 可能隐式提交且无法整体回滚。
- 我已了解:追加写入自动重试可能产生重复数据:明确接受追加写入重试可能重复写入的风险。
执行限制
| 字段 | 是否必填 | 默认值 | 显示条件 | 作用范围 |
|---|---|---|---|---|
| 读取批次行数 | 有默认值 | 2000 | 高级配置 | 当前任务版本 |
| 写入批次行数 | 有默认值 | 1000 | 高级配置 | 当前任务版本 |
| 查询超时(秒) | 有默认值 | 300 | 高级配置 | 当前任务版本 |
| 最大表数 | 有默认值 | 500 | 高级配置 | 当前任务版本 |
| 单表最大行数 | 有默认值 | 10000000 | 高级配置 | 当前任务版本 |
| 总最大行数 | 有默认值 | 50000000 | 高级配置 | 当前任务版本 |
- 读取批次行数:1–100000。
- 写入批次行数:1–100000。
- 查询超时(秒):1–86400。
- 最大表数:1–500。
- 单表最大行数:1–9223372036854775807。
- 总最大行数:1–9223372036854775807。
使用边界
- 最多 500 张表;同步表和逻辑键不重复。
- 增量模式禁止 APPEND;每张表必须具备相同配置的水位列和逻辑键。
- 各表提交存在独立边界,失败不能推断已成功表回滚。
典型配置:同步 orders 和 order_items
按下表填写界面,资源名称需替换为自己的已启用资源。这是配置说明,不是可直接导入的 JSON。完整数据准备与执行步骤见本节末尾教程。
来源orders和order_items各三行;目标提前创建copy_orders和copy_order_items,并保留id主键。
| 配置项 | 填写内容 |
|---|---|
| 来源数据库 | 独立源库 |
| 目标数据库 | 独立目标库 |
| 同步表 | ["orders","order_items"] |
| 逻辑键 | ["id"] |
| 提取方式 | FULL |
| 写入方式 | UPSERT |
| 导入前清空 | false |
| 目标表前缀(可选) | copy_ |
预期结果: copy_orders为3行、金额600;copy_order_items为3行、qty合计6;重复执行后主键和汇总保持不变。
跟做完整教程。保存定义后再手动执行;实例状态与业务结果分别核对。
技术字段对照
以下键名用于导入配置、接口或排障。规则中的 [] 表示集合元素;不需要把这些键名填入界面标签。
| 类别 / 字段 | 技术键名 |
|---|---|
| 表与写入配置 / 来源数据库 | sourceResourceId |
| 表与写入配置 / 目标数据库 | targetResourceId |
| 表与写入配置 / 来源 Schema(可选) | sourceSchema |
| 表与写入配置 / 目标 Schema(可选) | targetSchema |
| 表与写入配置 / 同步表 | tables |
| 表与写入配置 / 逻辑键 | logicalKeys |
| 表与写入配置 / 提取方式 | extractMode |
| 表与写入配置 / 写入方式 | loadMode |
| 表与写入配置 / 空值策略 | nullPolicy |
| 表与写入配置 / 目标表前缀(可选) | targetNaming.prefix |
| 表与写入配置 / 目标表后缀(可选) | targetNaming.suffix |
| 表与写入配置 / 增量字段 | incremental.watermarkColumn |
| 表与写入配置 / 标记类型 | incremental.watermarkType |
| 表与写入配置 / 初始增量值 | incremental.initialWatermark |
| 表与写入配置 / 初始逻辑键值 | incremental.initialLogicalKeyValues |
| 表与写入配置 / 导入前清空 | clearBeforeImport |
| 表与写入配置 / 清空方式 | clearMode |
| 表与写入配置 / 我已了解:删除后按批提交,失败可能保留部分结果 | acknowledgePartialCommit |
| 表与写入配置 / 我已了解:TRUNCATE 可能隐式提交,无法整体回滚 | acknowledgeNonTransactionalTruncate |
| 表与写入配置 / 我已了解:追加写入自动重试可能产生重复数据 | allowNonIdempotentRetry |
| 执行限制 / 读取批次行数 | execution.fetchSize |
| 执行限制 / 写入批次行数 | execution.writeBatchSize |
| 执行限制 / 查询超时(秒) | execution.queryTimeoutSeconds |
| 执行限制 / 最大表数 | execution.maxTables |
| 执行限制 / 单表最大行数 | execution.maxRowsPerTable |
| 执行限制 / 总最大行数 | execution.maxTotalRows |