ETL:源、转换、目标与增量

适用版本:1.0.0。任务 → 新增/编辑 → 插件 ETL。

入口与准备

使用 ADMIN 创建、配置和保存任务;ADMIN 或 OPERATOR 可以执行已发布定义,详细日志和输入输出变量由 ADMIN 查看。资源必须启用并可被执行节点访问。任务公共超时、重试和版本规则见任务,角色动作见权限矩阵。

按配置目标定位

来源 / 类型与资源 · 来源 / 数据库 · 来源 / 文件与格式 · 来源 / 消息队列 · 目标 / 数据库写入 · 目标 / 文件输出 · 数据库增量 · 文件增量 · 消息摄入 · 执行限制 · 映射 · 重试

字段说明

“默认值”指 1.0.0 新建表单的初始值;空表示尚未填写,不表示必填项可以省略。显示条件决定当前分支中是否出现字段。“条件必填”只在对应分支启用时要求填写。转换/校验规则的示例值用于解释填写方式,不能当作运行时缺省值。

来源 / 类型与资源

字段 是否必填 默认值 显示条件 作用范围
来源类型 选择 DATABASE 始终 来源配置
资源 条件必填 空 始终 来源配置
  • 来源类型:选择 DATABASE、FILE、KAFKA 或 RABBITMQ,并决定后续来源字段。
  • 资源:引用与来源类型匹配的已配置资源,连接和认证来自该资源。

来源 / 数据库

字段 是否必填 默认值 显示条件 作用范围
查询 SQL 条件必填 空 数据库源,或文件 SQL 读取 来源配置
查询提取批量 有默认值 2000 数据库源 来源配置
查询参数(JSON) 有默认值 {} 数据库源,或文件 SQL 读取 来源配置
前置 SQL 数组(JSON) 有默认值 [] 数据库源 来源配置
  • 查询 SQL:定义数据库查询或文件暂存后的 SQL 查询;值参数使用命名绑定。
  • 查询提取批量:范围 1–100000
  • 查询参数(JSON):提供命名 SQL 参数的 JSON 值;单一变量占位符可保留值类型。
  • 前置 SQL 数组(JSON):在来源数据库读取前依次执行准备 SQL。

来源 / 文件与格式

字段 是否必填 默认值 显示条件 作用范围
文件路径 条件必填 空 文件源 来源配置
文件格式 选择 CSV 文件源 来源配置
读取方式 选择 DIRECT 文件源 来源配置
字符编码 条件必填 UTF-8 文件源 来源配置
分隔符 有默认值 , CSV/TXT 来源配置
引号 有默认值 " CSV/TXT 来源配置
转义符 有默认值 " CSV/TXT 来源配置
首行为表头 有默认值 true CSV/TXT/EXCEL 来源配置
跳过行数 有默认值 0 CSV/TXT 来源配置
表头行号 有默认值 0 EXCEL 来源配置
起始行号 可选 空 EXCEL 来源配置
工作表名称 可选 空 EXCEL 单工作表 来源配置
工作表序号 可选 空 EXCEL 单工作表 来源配置
正则读取模式 选择 SINGLE_LINE REGEX 来源配置
内容正则 条件必填 空 REGEX 来源配置
块起始正则 可选 空 REGEX + BLOCK 来源配置
块结束正则 可选 空 REGEX + BLOCK 来源配置
每块最大行数 有默认值 10000 REGEX 来源配置
每块最大字符数 有默认值 4194304 REGEX 来源配置
正则字段映射(JSON) REGEX 条件必填,至少一项 [] REGEX 来源配置
暂存表名 有默认值 SOURCE_DATA 文件 SQL 读取 来源配置
暂存列名 可选 空 文件 SQL 读取 来源配置
多工作表配置(JSON) 有默认值 [] EXCEL + SQL 读取,多工作表 来源配置
  • 文件路径:在文件资源范围内指定读取路径。
  • 文件格式:选择文件解析格式,并决定可用读取方式。
  • 读取方式:直接读取文件记录,或先暂存后执行 SQL。
  • 字符编码:指定文本文件解码字符集。
  • 分隔符:指定 CSV/TXT 字段分隔符。
  • 引号:指定带分隔符等特殊内容的字段引号。
  • 转义符:指定引号内特殊字符的转义字符。
  • 首行为表头:控制是否从表头取得字段名称。
  • 跳过行数:范围 0–2147483647
  • 表头行号:范围 0–2147483647
  • 起始行号:范围 0–2147483647
  • 工作表名称:按名称选择单个 Excel 工作表。
  • 工作表序号:范围 0–2147483647
  • 正则读取模式:选择逐行匹配或按块读取后匹配。
  • 内容正则:从文本行或文本块中提取匹配组。
  • 块起始正则:标识一个待解析文本块的起始位置。
  • 块结束正则:标识一个待解析文本块的结束位置。
  • 每块最大行数:范围 1–1000000
  • 每块最大字符数:范围 1–67108864
  • 正则字段映射(JSON):将正则匹配组映射为记录字段,可设置未匹配默认值。
  • 暂存表名:指定文件 SQL 读取使用的暂存表名称。
  • 暂存列名:显式指定暂存列名称;未填写时按文件解析结果取得。
  • 多工作表配置(JSON):为多个 Excel 工作表分别指定工作表选择、表头与暂存表。

来源 / 消息队列

字段 是否必填 默认值 显示条件 作用范围
Topic(主题) 条件必填 空 Kafka 源 来源配置
消费组 条件必填 空 Kafka 源 来源配置
队列名称 条件必填 空 RabbitMQ 源 来源配置
首次消费位置 选择 EARLIEST Kafka 源 来源配置
预取数量(条) 有默认值 100 RabbitMQ 源 来源配置
  • Topic(主题):读取消息的 Kafka 主题。
  • 消费组:用于保存 Kafka 消费进度的消费组。
  • 队列名称:读取消息的 RabbitMQ 队列。
  • 首次消费位置:仅在消费组没有已提交位置时选择起始位置。
  • 预取数量(条):范围 1–1000

目标 / 数据库写入

字段 是否必填 默认值 显示条件 作用范围
目标类型 选择 DATABASE 始终;消息源仅 DATABASE 目标配置
资源 条件必填 空 始终 目标配置
Schema(可选) 可选 空 DATABASE 目标配置
目标表 条件必填 空 DATABASE 目标配置
写入方式 选择 UPSERT DATABASE;消息源仅 UPSERT/INSERT_ONLY 目标配置
逻辑键 UPSERT/INSERT_ONLY/UPDATE_ONLY 条件必填 空 DATABASE 目标配置
字段映射方式 选择 AUTO 始终 目标配置
排除来源字段(可选) 可选 空 AUTO 映射 目标配置
事务范围 选择 RUN 非消息源 + DATABASE;消息源固定 BATCH 目标配置
空值策略 选择 KEEP_TARGET DATABASE 目标配置
按列空值策略(JSON) 有默认值 {} DATABASE 目标配置
记录保护(JSON) 有默认值 null DATABASE 目标配置
SCD2 配置(JSON) 有默认值 null DATABASE + SCD2 目标配置
前置 SQL 数组(JSON) 有默认值 [] 非消息源 + DATABASE 目标配置
后置 SQL 数组(JSON) 有默认值 [] 非消息源 + DATABASE 目标配置
  • 目标类型:选择写入数据库或文件;消息来源仅允许数据库目标。
  • 资源:引用目标数据库或文件资源。
  • Schema(可选):指定目标表所在的 Schema。
  • 目标表:指定写入的目标表。
  • 写入方式:选择追加、插入、更新、合并或 SCD2 写入语义。
  • 逻辑键:填写用于识别目标记录的目标列名。
  • 字段映射方式:选择自动同名映射或手工字段映射。
  • 排除来源字段(可选):在自动映射中排除指定来源字段。
  • 事务范围:控制按整次运行或按写入批次提交事务。
  • 空值策略:设置来源空值保留或覆盖目标值的默认策略。
  • 按列空值策略(JSON):按目标列覆盖默认空值策略。
  • 记录保护(JSON):按目标记录中的字段和值配置写入保护。
  • SCD2 配置(JSON):配置业务键、变化比较和历史有效期字段。
  • 前置 SQL 数组(JSON):在目标写入前执行准备 SQL;消息和文件增量有额外限制。
  • 后置 SQL 数组(JSON):在目标写入后执行收尾 SQL;消息和文件增量有额外限制。

目标 / 文件输出

字段 是否必填 默认值 显示条件 作用范围
文件路径 条件必填 空 FILE 目标配置
字符编码 条件必填 UTF-8 FILE 目标配置
分隔符 有默认值 , FILE 目标配置
引号 有默认值 " FILE 目标配置
首行为表头 有默认值 true FILE 目标配置
文件已存在时 选择 FAIL FILE 目标配置
空数据输出 选择 CREATE_WITH_HEADER FILE 目标配置
  • 文件路径:在目标文件资源范围内指定输出路径。
  • 字符编码:指定输出文本文件的字符集。
  • 分隔符:指定输出文件的字段分隔符。
  • 引号:指定输出字段的引号字符。
  • 首行为表头:控制输出文件是否包含表头。
  • 文件已存在时:目标文件已存在时选择失败、覆盖或跳过。
  • 空数据输出:无数据时选择带表头文件、空文件或不创建文件。

数据库增量

字段 是否必填 默认值 显示条件 作用范围
启用增量 有默认值 false 非消息源 增量检查点
检查点键 条件必填 etl-v1 启用增量 增量检查点
标记类型 选择 LONG 启用增量 增量检查点
初始标记 条件必填 0 启用增量 增量检查点
标记字段 条件必填 空 数据库增量 增量检查点
上界查询 SQL 条件必填 空 数据库增量 增量检查点
同值排序字段 可选 空 数据库增量 增量检查点
排序初始值(JSON 数组) 有默认值 [] 数据库增量 增量检查点
允许越过无效记录推进 有默认值 false 数据库增量 增量检查点
  • 启用增量:开启基于数据库水位或文件标记的增量处理;不用于消息源。
  • 检查点键:标识需要持续复用的增量检查点。
  • 标记类型:选择比较数据库水位或文件标记的类型。
  • 初始标记:尚无检查点时使用的起始水位。
  • 标记字段:来源结果中用于推进数据库检查点的字段。
  • 上界查询 SQL:在本次读取前查询稳定的水位上界。
  • 同值排序字段:按顺序指定相同水位值下的稳定排序字段。
  • 排序初始值(JSON 数组):提供与同值排序字段一一对应的初始值。
  • 允许越过无效记录推进:允许检查点越过被过滤的无效记录,可能使其不再自动重读。

文件增量

字段 是否必填 默认值 显示条件 作用范围
标记位置 选择 NAME 文件增量 文件增量
匹配方式 选择 TEMPLATE 文件增量 文件增量
匹配表达式 条件必填 orders_{mark}_*.csv 文件增量 文件增量
源标记格式(可选) 可选 空 文件增量 + DATE/TIMESTAMP 文件增量
解析时区 有默认值 UTC 文件增量 + DATE/TIMESTAMP 文件增量
选择方式 选择 STRICT 文件增量 文件增量
回看范围 条件必填 2 文件增量 + LOOKBACK 文件增量
指定下界 条件必填 空 文件增量 + LOWER_BOUND 文件增量
上界(可选) 可选 空 文件增量 文件增量
已完成文件内容变更时 选择 FAIL 文件增量 文件增量
递归扫描目录 有默认值 false 文件增量 文件增量
最大扫描深度 有默认值 8 文件增量 文件增量
最大扫描条目数 有默认值 10000 文件增量 文件增量
单次最大文件数 有默认值 1000 文件增量 文件增量
文件总量上限(字节) 有默认值 1073741824 文件增量 文件增量
稳定时间(秒) 有默认值 60 文件增量 文件增量
完成标识后缀(可选) 可选 空 文件增量 文件增量
  • 标记位置:从文件名或相对路径中提取增量标记。
  • 匹配方式:选择模板或正则表达式匹配标记。
  • 匹配表达式:匹配文件并提取标记;模板使用 {mark}。
  • 源标记格式(可选):指定日期或时间戳标记在源文件中的格式。
  • 解析时区:解析日期时间标记时使用的时区。
  • 选择方式:选择严格推进、回看窗口或指定下界。
  • 回看范围:配置需要重新考虑的标记回看范围。
  • 指定下界:显式设置文件标记选择下界。
  • 上界(可选):可选限制本次处理的文件标记上界。
  • 已完成文件内容变更时:已完成文件内容变化时选择失败或重新处理。
  • 递归扫描目录:开启后在限制范围内递归查找文件。
  • 最大扫描深度:范围 0–32
  • 最大扫描条目数:范围 1–100000
  • 单次最大文件数:范围 1–10000
  • 文件总量上限(字节):范围 1–107374182400
  • 稳定时间(秒):范围 0–604800
  • 完成标识后缀(可选):仅处理具有对应完成标识文件的源文件。

消息摄入

字段 是否必填 默认值 显示条件 作用范围
单次消息数(条) 有默认值 10000 Kafka/RabbitMQ 源 消息读取
接收窗口(秒) 有默认值 60 Kafka/RabbitMQ 源 消息读取
连续空闲等待(秒) 有默认值 5 Kafka/RabbitMQ 源 消息读取
处理批量(条) 有默认值 100 Kafka/RabbitMQ 源 消息读取
不满批提交间隔(毫秒) 有默认值 1000 Kafka/RabbitMQ 源 消息读取
单条消息上限(字节) 有默认值 1048576 Kafka/RabbitMQ 源 消息读取
解压后上限(字节) 有默认值 8388608 Kafka/RabbitMQ 源 消息读取
累计载荷上限(字节) 有默认值 1073741824 Kafka/RabbitMQ 源 消息读取
接收缓冲上限(字节) 有默认值 33554432 Kafka/RabbitMQ 源 消息读取
JSON 嵌套深度上限 有默认值 32 Kafka/RabbitMQ 源 消息读取
  • 单次消息数(条):范围 1–10000000
  • 接收窗口(秒):范围 1–3600
  • 连续空闲等待(秒):范围 1–300
  • 处理批量(条):范围 1–1000
  • 不满批提交间隔(毫秒):范围 100–10000
  • 单条消息上限(字节):范围 1024–16777216
  • 解压后上限(字节):范围 1024–67108864
  • 累计载荷上限(字节):范围 1024–107374182400
  • 接收缓冲上限(字节):范围 1024–268435456
  • JSON 嵌套深度上限:范围 1–100

执行限制

字段 是否必填 默认值 显示条件 作用范围
读取批量 有默认值 2000 高级执行限制 执行限制
写入批量 有默认值 1000 高级执行限制 执行限制
查询超时(秒) 有默认值 300 高级执行限制 执行限制
最大记录数 有默认值 10000000 高级执行限制 执行限制
单文件上限(字节) 有默认值 1073741824 高级执行限制 执行限制
展开文本字符上限 有默认值 268435456 高级执行限制 执行限制
Excel 单元格上限 有默认值 50000000 高级执行限制 执行限制
暂存单元格上限 有默认值 50000000 高级执行限制 执行限制
每条记录字段上限 有默认值 1000 高级执行限制 执行限制
单字段字符上限 有默认值 1048576 高级执行限制 执行限制
Excel 工作表上限 有默认值 100 高级执行限制 执行限制
  • 读取批量:范围 1–100000
  • 写入批量:范围 1–100000
  • 查询超时(秒):范围 1–86400
  • 最大记录数:范围 1–9223372036854775807
  • 单文件上限(字节):范围 1–9223372036854775807
  • 展开文本字符上限:范围 1–9223372036854775807
  • Excel 单元格上限:范围 1–9223372036854775807
  • 暂存单元格上限:范围 1–9223372036854775807
  • 每条记录字段上限:范围 1–10000
  • 单字段字符上限:范围 1–16777216
  • Excel 工作表上限:范围 1–10000

映射

字段 是否必填 默认值 显示条件 作用范围
字段映射 MANUAL 至少一项;AUTO 可选 空映射 始终 当前任务版本
  • 字段映射:技术配置为目标列→来源字段;逻辑键填写目标列。

重试

字段 是否必填 默认值 显示条件 作用范围
允许非幂等写入重试 APPEND 且配置任务重试时须显式允许 false 非消息源 当前任务版本
  • 允许非幂等写入重试:显式允许追加写入等非幂等操作重试。

转换 / 字段映射

字段 是否必填 默认值 显示条件 作用范围
规则参数 按规则填写 见下方规则示例 规则类型 FIELD_MAPPING 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
规则参数 {"order_id":"id"}

示例是新增规则时的预填内容,不是运行时缺省;请替换为实际业务字段。

转换 / 默认值

字段 是否必填 默认值 显示条件 作用范围
规则参数 按规则填写 见下方规则示例 规则类型 DEFAULT_VALUE 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
规则参数 {"status":"NEW"}

示例是新增规则时的预填内容;按字段需要配置实际默认值。

转换 / 去除首尾空白

字段 是否必填 默认值 显示条件 作用范围
字段列表 必填 见下方规则示例 规则类型 TRIM 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
字段列表 ["name"]

转换 / 值替换

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 REPLACE 当前任务版本
替换对照 可选 见下方规则示例 规则类型 REPLACE 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 status
替换对照 {"old":"new"}

转换 / 日期格式转换

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 DATE_FORMAT 当前任务版本
原日期格式 必填 见下方规则示例 规则类型 DATE_FORMAT 当前任务版本
目标日期格式 必填 见下方规则示例 规则类型 DATE_FORMAT 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 created_at
原日期格式 yyyyMMdd
目标日期格式 yyyy-MM-dd

转换 / 类型转换

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 TYPE_CONVERT 当前任务版本
目标数据类型 必填 见下方规则示例 规则类型 TYPE_CONVERT 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 amount
目标数据类型 DECIMAL

转换 / 数值计算与精度

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本
乘数 可选 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本
除数 可选 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本
加数 可选 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本
小数位数 可选 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本
舍入方式 可选 见下方规则示例 规则类型 NUMBER_SCALE 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 amount
乘数 留空(不配置此项)
除数 100
加数 留空(不配置此项)
小数位数 2
舍入方式 HALF_UP

可选数值留空表示不配置,不填写null。除数不能为0;scale须为-1至1000的整数。

转换 / 表达式

字段 是否必填 默认值 显示条件 作用范围
目标列 必填 见下方规则示例 规则类型 EXPRESSION 当前任务版本
计算或判定表达式 必填 见下方规则示例 规则类型 EXPRESSION 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
目标列 total
计算或判定表达式 price * quantity

转换 / 数据库查找

字段 是否必填 默认值 显示条件 作用范围
资源 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本
查询 SQL 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本
查询超时(秒) 可选 见下方规则示例 规则类型 LOOKUP 当前任务版本
消息提交批量 可选 见下方规则示例 规则类型 LOOKUP 当前任务版本
关联来源字段 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本
回填目标字段 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本
查询键列 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本
查询值列 必填 见下方规则示例 规则类型 LOOKUP 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
资源 选择本环境已启用的查询数据库资源
查询 SQL SELECT code, name FROM lookup_table WHERE code IN (:keys)
查询超时(秒) 留空(不配置此项)
消息提交批量 留空(不配置此项)
关联来源字段 code
回填目标字段 name
查询键列 code
查询值列 name

选择自己的已启用查询资源并准备lookup_table的code/name列。查询使用:keys。这里的“消息提交批量”实际控制查询键批量(1–2000);查询超时1–86400秒,二者可留空。

转换 / 去重

字段 是否必填 默认值 显示条件 作用范围
字段列表 必填 见下方规则示例 规则类型 DEDUPLICATE 当前任务版本
最大去重键数 可选 见下方规则示例 规则类型 DEDUPLICATE 当前任务版本
保留策略 可选 见下方规则示例 规则类型 DEDUPLICATE 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
字段列表 ["id"]
最大去重键数 1000000
保留策略 FIRST

校验 / 必填校验

字段 是否必填 默认值 显示条件 作用范围
字段列表 必填 见下方规则示例 规则类型 REQUIRED 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
字段列表 ["id"]

校验 / 正则校验

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 REGEX 当前任务版本
内容正则 必填 见下方规则示例 规则类型 REGEX 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 code
内容正则 ^[A-Z]+$

校验 / 范围校验

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 RANGE 当前任务版本
最小值(含) 可选 见下方规则示例 规则类型 RANGE 当前任务版本
最大值(含) 可选 见下方规则示例 规则类型 RANGE 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 amount
最小值(含) 0
最大值(含) 留空(不配置此项)

min/max至少填写一项;没有上界或下界时省略对应项,不填null。

校验 / 枚举校验

字段 是否必填 默认值 显示条件 作用范围
处理字段 必填 见下方规则示例 规则类型 ENUM 当前任务版本
允许值列表 必填 见下方规则示例 规则类型 ENUM 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
处理字段 status
允许值列表 ["NEW","DONE"]

校验 / 条件校验

字段 是否必填 默认值 显示条件 作用范围
计算或判定表达式 必填 见下方规则示例 规则类型 CONDITION 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
计算或判定表达式 amount >= 0

校验 / SQL 校验

字段 是否必填 默认值 显示条件 作用范围
资源 必填 见下方规则示例 规则类型 SQL 当前任务版本
查询 SQL 必填 见下方规则示例 规则类型 SQL 当前任务版本
查询超时(秒) 可选 见下方规则示例 规则类型 SQL 当前任务版本
消息提交批量 可选 见下方规则示例 规则类型 SQL 当前任务版本
校验范围 必填 见下方规则示例 规则类型 SQL 当前任务版本
处理字段 FIELD 时必填 见下方规则示例 规则类型 SQL,mode=FIELD 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
资源 选择本环境已启用的查询数据库资源
查询 SQL SELECT id FROM orders WHERE id IN (:keys)
查询超时(秒) 留空(不配置此项)
消息提交批量 留空(不配置此项)
校验范围 FIELD
处理字段 id

选择自己的已启用查询资源,并准备orders.id。FIELD模式必须填写处理字段,查询必须含:keys;GLOBAL模式不填处理字段。查询批量1–2000、超时1–86400秒;可留空,不填null。

校验 / 外键存在校验

字段 是否必填 默认值 显示条件 作用范围
资源 必填 见下方规则示例 规则类型 FOREIGN_KEY 当前任务版本
查询 SQL 必填 见下方规则示例 规则类型 FOREIGN_KEY 当前任务版本
查询超时(秒) 可选 见下方规则示例 规则类型 FOREIGN_KEY 当前任务版本
消息提交批量 可选 见下方规则示例 规则类型 FOREIGN_KEY 当前任务版本
处理字段 必填 见下方规则示例 规则类型 FOREIGN_KEY 当前任务版本

规则填写示例(请按业务数据修改):

字段 示例值
资源 选择本环境已启用的查询数据库资源
查询 SQL SELECT id FROM customers WHERE id IN (:keys)
查询超时(秒) 留空(不配置此项)
消息提交批量 留空(不配置此项)
处理字段 customer_id

选择自己的已启用查询资源,准备customers.id,并让来源记录包含customer_id。查询必须含:keys。查询批量1–2000、超时1–86400秒;可留空,不填null。

目标高级 / 记录保护

字段 是否必填 默认值 显示条件 作用范围
保护字段 启用后必填 未预填;按所选配置填写 启用 protection 当前任务版本
受保护值列表 启用后必填 未预填;按所选配置填写 启用 protection 当前任务版本
遇到保护记录时 可选 未预填;按所选配置填写 启用 protection 当前任务版本
  • 保护字段:目标表中用于判定记录是否受保护的列。
  • 受保护值列表:该列命中任一列表值时将记录判定为受保护。
  • 遇到保护记录时:遇到受保护记录时跳过或使任务失败。

目标高级 / SCD2 历史版本

字段 是否必填 默认值 显示条件 作用范围
业务键(目标列) 启用后必填 未预填;按所选配置填写 SCD2 当前任务版本
比较字段(目标列) 启用后必填 未预填;按所选配置填写 SCD2 当前任务版本
生效时间来源字段 启用后必填 未预填;按所选配置填写 SCD2 当前任务版本
有效期起始列 启用后必填 未预填;按所选配置填写 SCD2 当前任务版本
有效期结束列 启用后必填 未预填;按所选配置填写 SCD2 当前任务版本
当前版本标记列 可选 未预填;按所选配置填写 SCD2 当前任务版本
当前版本值 可选 未预填;按所选配置填写 SCD2 当前任务版本
历史版本值 可选 未预填;按所选配置填写 SCD2 当前任务版本
时间粒度 可选 未预填;按所选配置填写 SCD2 当前任务版本
  • 业务键(目标列):用于识别同一业务实体的目标列。
  • 比较字段(目标列):用于判断业务内容是否变化的目标列;界面要求至少一项。
  • 生效时间来源字段:提供新历史版本生效时间的来源记录字段。
  • 有效期起始列:存储历史版本生效时间的目标列。
  • 有效期结束列:存储历史版本失效时间的目标列。
  • 当前版本标记列:可选目标列,用于标记当前和历史版本。
  • 当前版本值:写入当前版本标记列的值。
  • 历史版本值:写入历史版本标记列的值。
  • 时间粒度:选择按天或时间戳比较和保存有效期。

使用边界

  • 文件源 SQLITE/MDB 只能 SQL 读取;REGEX 只能 DIRECT;EXCEL 多工作表配置不能与单工作表名称/序号同时配置。
  • 数据库增量 SQL 必须有 :etlLastWatermark、:etlUpperWatermark;启用排序字段后绑定 :etlLastTie1 等。必须保持查询排序与水位/同值排序一致。
  • 消息源使用 broker 进度,不使用普通增量;只允许 DATABASE 目标,UPSERT/INSERT_ONLY,BATCH 事务;禁止前后 SQL、DEDUPLICATE 和 FILTER 校验策略。
  • 文件增量不支持 DEDUPLICATE 和目标前后 SQL;检查点提交与目标副作用存在边界。
  • 目标手工映射至少一项,逻辑键为目标列;AUTO 排除字段不能同时出现在自定义映射。
  • SCD2 需业务键、比较字段、生效值来源、有效期始末列;当前标记列可选。
  • ETL 的消息配置内部格式版本为 2,不等于产品发布版本,产品仍为 1.0.0。
  • 在界面中配置SCD2时,比较字段至少填写一项。

表单初始值与兼容补值

下面的后端值仅用于解释导入或旧配置缺少该键时的补值。按教程新建任务时,请明确选择表单值,不能把兼容补值当作推荐配置。

字段 新建表单 缺键时后端补值
写入方式 UPSERT APPEND
字段映射方式 AUTO MANUAL
事务范围 RUN BATCH
标记类型 LONG STRING
允许越过无效记录推进 false true

典型配置:三行订单 UPSERT 到独立目标

按下表填写界面,资源名称需替换为自己的已启用资源。这是配置说明,不是可直接导入的 JSON。完整数据准备与执行步骤见本节末尾教程。

先按教程创建两个数据库连接;来源orders为三行、金额600,目标已建同结构空表并保留id主键。

配置项 填写内容
来源类型 DATABASE
来源资源 本教程源数据库资源
查询 SQL 见下方代码
目标类型 DATABASE
目标资源 本教程目标数据库资源
目标表 orders
写入方式 UPSERT
逻辑键 ["id"]
字段映射方式 MANUAL
字段映射 {"id":"id","amount":"amount","updated_at":"updated_at"}
启用增量 false

查询 SQL:

SELECT id,amount,updated_at FROM orders ORDER BY id

预期结果: 目标表 3 行、金额总和 600,重复执行不增加行数。

跟做完整教程。保存定义后再手动执行;实例状态与业务结果分别核对。

真实界面

数据库源和只读提取 SQL。

目标表、UPSERT、逻辑键与同名字段映射。

技术字段对照

以下键名用于导入配置、接口或排障。规则中的 [] 表示集合元素;不需要把这些键名填入界面标签。

类别 / 字段 技术键名
来源 / Topic(主题) source.topic
来源 / 消费组 source.groupId
来源 / 队列名称 source.queue
来源 / 首次消费位置 source.initialPosition
来源 / 预取数量(条) source.prefetch
来源 / 来源类型 source.type
来源 / 资源 source.resourceId
来源 / 查询 SQL source.sql
来源 / 文件路径 source.path
来源 / 文件格式 source.format
来源 / 读取方式 source.readMode
来源 / 字符编码 source.charset
来源 / 分隔符 source.delimiter
来源 / 引号 source.quote
来源 / 转义符 source.escape
来源 / 首行为表头 source.header
来源 / 跳过行数 source.skipLines
来源 / 表头行号 source.headerRow
来源 / 起始行号 source.startRow
来源 / 工作表名称 source.sheetName
来源 / 工作表序号 source.sheetIndex
来源 / 正则读取模式 source.regexMode
来源 / 内容正则 source.pattern
来源 / 块起始正则 source.blockStart
来源 / 块结束正则 source.blockEnd
来源 / 每块最大行数 source.maxBlockLines
来源 / 每块最大字符数 source.maxBlockChars
来源 / 正则字段映射(JSON) source.regexFields
来源 / 暂存表名 source.stagingTable
来源 / 暂存列名 source.stagingColumns
来源 / 多工作表配置(JSON) source.sheets
来源 / 查询提取批量 source.fetchSize
来源 / 查询参数(JSON) source.parameters
来源 / 前置 SQL 数组(JSON) source.beforeSql
目标 / 目标类型 target.type
目标 / 资源 target.resourceId
目标 / Schema(可选) target.schema
目标 / 目标表 target.table
目标 / 写入方式 target.mode
目标 / 逻辑键 target.logicalKeys
目标 / 字段映射方式 target.mappingMode
目标 / 排除来源字段(可选) target.excludedFields
目标 / 事务范围 target.transactionScope
目标 / 空值策略 target.nullPolicy
目标 / 按列空值策略(JSON) target.columnNullPolicies
目标 / 记录保护(JSON) target.protection
目标 / SCD2 配置(JSON) target.scd2
目标 / 前置 SQL 数组(JSON) target.beforeSql
目标 / 后置 SQL 数组(JSON) target.afterSql
目标 / 文件路径 target.path
目标 / 字符编码 target.charset
目标 / 分隔符 target.delimiter
目标 / 引号 target.quote
目标 / 首行为表头 target.header
目标 / 文件已存在时 target.existingFilePolicy
目标 / 空数据输出 target.emptyFilePolicy
数据库增量 / 启用增量 incremental.enabled
数据库增量 / 检查点键 incremental.checkpointKey
数据库增量 / 标记类型 incremental.watermarkType
数据库增量 / 初始标记 incremental.initialWatermark
数据库增量 / 标记字段 incremental.watermarkField
数据库增量 / 上界查询 SQL incremental.upperBoundSql
数据库增量 / 同值排序字段 incremental.tieBreakerFields
数据库增量 / 排序初始值(JSON 数组) incremental.initialTieBreakerValues
数据库增量 / 允许越过无效记录推进 incremental.allowCheckpointPastInvalidRecords
文件增量 / 标记位置 incremental.file.markerLocation
文件增量 / 匹配方式 incremental.file.matchMode
文件增量 / 匹配表达式 incremental.file.expression
文件增量 / 源标记格式(可选) incremental.file.markerFormat
文件增量 / 解析时区 incremental.file.zoneId
文件增量 / 选择方式 incremental.file.selectionMode
文件增量 / 回看范围 incremental.file.lookback
文件增量 / 指定下界 incremental.file.lowerBound
文件增量 / 上界(可选) incremental.file.upperBound
文件增量 / 已完成文件内容变更时 incremental.file.changedFilePolicy
文件增量 / 递归扫描目录 incremental.file.recursive
文件增量 / 最大扫描深度 incremental.file.maxDepth
文件增量 / 最大扫描条目数 incremental.file.maxScanEntries
文件增量 / 单次最大文件数 incremental.file.maxFiles
文件增量 / 文件总量上限(字节) incremental.file.maxTotalBytes
文件增量 / 稳定时间(秒) incremental.file.stableAgeSeconds
文件增量 / 完成标识后缀(可选) incremental.file.readySuffix
消息摄入 / 单次消息数(条) message.maxMessages
消息摄入 / 接收窗口(秒) message.intakeSeconds
消息摄入 / 连续空闲等待(秒) message.idleSeconds
消息摄入 / 处理批量(条) message.batchSize
消息摄入 / 不满批提交间隔(毫秒) message.flushIntervalMillis
消息摄入 / 单条消息上限(字节) message.maxMessageBytes
消息摄入 / 解压后上限(字节) message.maxExpandedBytes
消息摄入 / 累计载荷上限(字节) message.maxTotalBytes
消息摄入 / 接收缓冲上限(字节) message.maxBufferBytes
消息摄入 / JSON 嵌套深度上限 message.maxJsonDepth
执行限制 / 读取批量 execution.readBatchSize
执行限制 / 写入批量 execution.writeBatchSize
执行限制 / 查询超时(秒) execution.queryTimeoutSeconds
执行限制 / 最大记录数 execution.maxRecords
执行限制 / 单文件上限(字节) execution.maxFileBytes
执行限制 / 展开文本字符上限 execution.maxExpandedTextChars
执行限制 / Excel 单元格上限 execution.maxExcelCells
执行限制 / 暂存单元格上限 execution.maxStagingCells
执行限制 / 每条记录字段上限 execution.maxRecordFields
执行限制 / 单字段字符上限 execution.maxTextFieldChars
执行限制 / Excel 工作表上限 execution.maxExcelSheets
映射 / 字段映射 target.columns
重试 / 允许非幂等写入重试 allowNonIdempotentRetry
转换 / 字段映射 / 规则参数 transforms[].properties
转换 / 默认值 / 规则参数 transforms[].properties
转换 / 去除首尾空白 / 字段列表 transforms[].properties.fields
转换 / 值替换 / 处理字段 transforms[].properties.field
转换 / 值替换 / 替换对照 transforms[].properties.replace
转换 / 日期格式转换 / 处理字段 transforms[].properties.field
转换 / 日期格式转换 / 原日期格式 transforms[].properties.source
转换 / 日期格式转换 / 目标日期格式 transforms[].properties.target
转换 / 类型转换 / 处理字段 transforms[].properties.field
转换 / 类型转换 / 目标数据类型 transforms[].properties.target
转换 / 数值计算与精度 / 处理字段 transforms[].properties.field
转换 / 数值计算与精度 / 乘数 transforms[].properties.multiply
转换 / 数值计算与精度 / 除数 transforms[].properties.divide
转换 / 数值计算与精度 / 加数 transforms[].properties.add
转换 / 数值计算与精度 / 小数位数 transforms[].properties.scale
转换 / 数值计算与精度 / 舍入方式 transforms[].properties.roundingMode
转换 / 表达式 / 目标列 transforms[].properties.target
转换 / 表达式 / 计算或判定表达式 transforms[].properties.expression
转换 / 数据库查找 / 资源 transforms[].properties.resourceId
转换 / 数据库查找 / 查询 SQL transforms[].properties.sql
转换 / 数据库查找 / 查询超时(秒) transforms[].properties.queryTimeoutSeconds
转换 / 数据库查找 / 消息提交批量 transforms[].properties.batchSize
转换 / 数据库查找 / 关联来源字段 transforms[].properties.sourceField
转换 / 数据库查找 / 回填目标字段 transforms[].properties.targetField
转换 / 数据库查找 / 查询键列 transforms[].properties.keyColumn
转换 / 数据库查找 / 查询值列 transforms[].properties.valueColumn
转换 / 去重 / 字段列表 transforms[].properties.fields
转换 / 去重 / 最大去重键数 transforms[].properties.maxKeys
转换 / 去重 / 保留策略 transforms[].properties.keep
校验 / 必填校验 / 字段列表 validations[].properties.fields
校验 / 正则校验 / 处理字段 validations[].properties.field
校验 / 正则校验 / 内容正则 validations[].properties.pattern
校验 / 范围校验 / 处理字段 validations[].properties.field
校验 / 范围校验 / 最小值(含) validations[].properties.min
校验 / 范围校验 / 最大值(含) validations[].properties.max
校验 / 枚举校验 / 处理字段 validations[].properties.field
校验 / 枚举校验 / 允许值列表 validations[].properties.values
校验 / 条件校验 / 计算或判定表达式 validations[].properties.expression
校验 / SQL 校验 / 资源 validations[].properties.resourceId
校验 / SQL 校验 / 查询 SQL validations[].properties.sql
校验 / SQL 校验 / 查询超时(秒) validations[].properties.queryTimeoutSeconds
校验 / SQL 校验 / 消息提交批量 validations[].properties.batchSize
校验 / SQL 校验 / 校验范围 validations[].properties.mode
校验 / SQL 校验 / 处理字段 validations[].properties.field
校验 / 外键存在校验 / 资源 validations[].properties.resourceId
校验 / 外键存在校验 / 查询 SQL validations[].properties.sql
校验 / 外键存在校验 / 查询超时(秒) validations[].properties.queryTimeoutSeconds
校验 / 外键存在校验 / 消息提交批量 validations[].properties.batchSize
校验 / 外键存在校验 / 处理字段 validations[].properties.field
目标高级 / protection / 保护字段 target.protection.column
目标高级 / protection / 受保护值列表 target.protection.protectedValues
目标高级 / protection / 遇到保护记录时 target.protection.onProtected
目标高级 / scd2 / 业务键(目标列) target.scd2.businessKeys
目标高级 / scd2 / 比较字段(目标列) target.scd2.compareFields
目标高级 / scd2 / 生效时间来源字段 target.scd2.effectiveValueField
目标高级 / scd2 / 有效期起始列 target.scd2.validFromColumn
目标高级 / scd2 / 有效期结束列 target.scd2.validToColumn
目标高级 / scd2 / 当前版本标记列 target.scd2.currentFlagColumn
目标高级 / scd2 / 当前版本值 target.scd2.currentValue
目标高级 / scd2 / 历史版本值 target.scd2.historyValue
目标高级 / scd2 / 时间粒度 target.scd2.granularity

相关页面

任务与版本 · 参数与表达式 · 场景教程

文档版本 1.0.0。命令中的示例路径、资源和端口需替换为自己的环境。