一、概述
| 层级 | 定义位置 | 作用范围 | 优先级 |
| 工作流参数 | 工作流配置抽屉 | 工作流内所有任务自动继承 | 低 |
| 任务参数 | 任务配置面板 | 仅当前任务 | 高 |
二、前提条件
已是工作流所有者或具备管理权限 。
四、入口
在数据开发页面,打开目标工作流 > 右侧配置抽屉中选择 参数 > 参数管理 。
五、步骤 1:进入参数配置
1. 打开工作流详情页。
2. 在右侧抽屉单击 参数 > 参数管理 。
六、步骤 2:UI 模式 – 添加参数
1. 默认弹窗为 UI 模式。
2. 单击 + 添加一行参数:
·参数名 :必填,支持所有语言、大小写、数字、_、-,最长 128 字符。
·参数值 :必填,字符串,最长 2048 字符。
3. 单击 确定 保存。
七、步骤 3:JSON 模式 – 批量编辑
1. 单击弹窗右上角 JSON 模式 ,切换到 JSON 编辑器。
2. 输入符合 JSON 规范的对象,例如:
{ "dp_data_dt": "{{workflow.start_time.iso_date}}", "env": "production", "batch_size": "1000"}
3. 编辑过程中实时校验语法;存在异常时下方显示错误提示,确定按钮置灰 。
4. 单击确定 保存。
注意:JSON 模式不支持嵌套结构(仅支持一级键值对);所有值必须是字符串。
八、步骤 4:删除参数
·UI 模式:单击参数行末的删除图标。
·JSON 模式:直接编辑 JSON 删除对应键值对。
九、步骤 5:保存与查看
保存后参数列表展示在工作流配置抽屉的 参数 区域,每行展示一个参数,最多展示 20 个,超出滚动。
十一、入口
在数据开发页面,打开目标工作流 > 点击任务编排 > 单击画布中的目标任务节点 > 下方任务配置中参数配置部分。
十二、步骤 1:查看继承工作流参数
任务面板「参数」区域顶部展示继承自工作流的参数,每行包含:
| 列 | 说明 |
| 参数名 | 工作流参数名,置灰不可编辑。 |
| 参数值 | 工作流参数值,不可编辑。 |
十三、步骤 2:添加任务参数
1. 单击 + 添加 添加一行任务参数。
2. 填写:
·参数名 :支持所有语言、大小写、数字、_、-,最长 128 字符。不能与已存在的继承工作流参数或其他任务参数重名。
·参数值 :字符串,最长 2048 字符。
3. 单击 保存任务 。
十四、步骤 3:参数与工作流参数同名时
如果任务参数名与继承工作流参数同名:
·系统会在该参数下方提示:「此任务参数与工作流参数同名。任务参数优先级更高,将覆盖工作流参数的值。」
·任务仍可保存运行;但运行时使用任务参数值。
如需保留两份独立参数,请避免同名。
十六、系统内置参数引用格式不正确
| 异常 | 示例 |
| 双引号不完整 | {{job.id |
| {{}} 内容为空 | {{}} |
提示文案:「系统参数引用格式错误,将会导致参数引用失效」
不阻塞保存 。运行时该部分按字符串处理,不进行参数替换。
十七、引用了不存在的系统内置参数
| 异常 | 示例 |
| 拼错参数名 | {{job.id1}} |
提示:「没有对应的系统内置参数。」
不阻塞保存 。运行时该部分按字符串处理,不进行参数替换。
十八、步骤 5:删除参数
单击参数行末的删除图标。继承工作流参数不能在任务面板删除,需要在右侧工作流配置面板的参数配置中删除。
十九、步骤 6:保存
单击 保存任务 。
20、参数取值支持的形式
| 形式 | 示例 | 适用层级 |
| 静态字符串 | production | 工作流参数 / 任务参数 |
| 系统内置参数 | {{workflow.start_time.iso_date}} | 工作流参数 / 任务参数 |
| 多个内置参数拼接 | {{workflow.start_time.year}}-{{workflow.start_time.month}}-{{workflow.start_time.day}} | 工作流参数 / 任务参数 |
| 上游 Notebook 输出 | {{tasks.<name>.values.<key>}} | 仅任务参数 |
| 上游 SQL 行输出 | {{tasks.<name>.output.first_row.<col>}} | 仅任务参数 |
完整内置参数列表参考 系统内置参数。上游输出引用规则参考 参数传递。
22、命名规范
| 项目 | 规范 |
| 字符集 | 所有语言、大小写、数字、_、- |
| 长度 | ≤ 128 字符 |
| 唯一性 | 同一工作流内参数名不可重复;同一任务内参数名不可重复 |
23、取值规范
| 项目 | 规范 |
| 长度 | ≤ 2048 字符 |
| 类型 | 字符串。SQL / Notebook 中按字符串拼接到位 |
| 系统内置参数 | 用 {{…}} 包围,详见 系统内置参数 |
24、引用文件时的参数行为
对于 Notebook / SQL 任务,在任务中引用文件时,文件中配置的参数名和参数值会自动填充到任务参数中。填充后:
·参数值可修改,修改后按任务参数保存。
·后续文件中的参数变更不会联动 到已引用的任务参数。
·如果切换了引用的文件,任务参数区域会被清空,并从新文件中重新填充参数。请在切换文件前确认参数配置已经迁移或备份。
25、任务版本与参数
任务参数变更会随任务版本一同保存。重跑或运行均使用最新版本的任务配置(包括参数)。详见 工作流与任务的运维操作。
26、使用限制
·工作流参数被所有任务自动继承,不能在任务级修改;如需任务级专属取值,请在任务参数中单独定义。
·在工作流运行场景下,任务参数与继承工作流参数同名时,任务参数优先。
·参数仅支持字符串类型;如需数值,请在代码中显式转换。
·参数值最长 2048 字符;超长部分被拒绝。
·工作流参数在启动时一次性解析,无法引用任务输出({{tasks.<name>…}})。
·引用上游任务参数时,要求上游任务必须已运行(详见 参数传递)。
·参数值变更后,本次正在运行的实例不受影响;下一次运行使用新值。
27、常见问题
Q1:在工作流参数和任务参数中都定义了 dp_data_dt,运行时会用哪个?
任务参数。DataBuddy 中任务参数优先级高于工作流参数。
Q2:可以在工作流参数中引用任务输出吗?
不可以。工作流参数在工作流启动时一次性解析;任务输出参数({{tasks.<name>.values.<key>}})只能在任务参数中使用。详见 参数传递。
Q3:JSON 模式下出现「语法错误」无法保存,怎么排查?
·确保 JSON 整体被 {} 包围。
·确保所有键和值都是字符串(用双引号)。
·确保不存在尾部多余的逗号。
·单引号、回车在 JSON 中不允许;如需多行,请保持单行字符串或用 \\n 转义。
Q4:工作流和任务都没有定义某个参数,但 SQL 中引用了 ${unknown_param} 会怎样?
·调试运行:弹窗提示填写参数值。
·调度运行:参数值替换为空字符串,可能导致 SQL 语法错误。建议至少在工作流参数中定义。
28、相关文档
·参数使用
·参数传递
·系统内置参数
·工作流与任务的运维操作