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