Skip to content

3.3.2.11 参数使用说明 ​

工作流中的参数用于把「会变的量」从脚本里拿出来。平台提供三类参数:自定义参数、全局参数、启动参数。三者的作用范围与配置位置不同,混用会导致「脚本里写了变量,运行时却取不到值」。本节按类型分别说明,最后给出对比表与引用规则。

引用方式统一为 ${参数名}

脚本中引用参数时写成 ${参数名},平台在节点执行前会把占位符替换为实际值。参数名区分大小写,且不带花括号时不会被替换。

自定义参数 ​

作用:定义在单个节点上的参数,只对该节点的脚本生效。适合把节点内的常量外置,例如输出路径、业务日期偏移量、过滤阈值。

配置位置:工作流画布 → 双击节点 → 「当前节点设置」面板 → 滚动到底部「自定义参数」→ 点击「添加」。

每行参数包含四个元素:

表14 自定义参数的字段
元素是否必填说明
参数名(prop)是脚本中引用的名称,填写后以 ${名称} 使用,例如 c1
方向(IN / OUT)是IN 表示由外部传入;OUT 表示由本节点向下游输出
类型是取值类型,可选 VARCHAR、INTEGER、LONG、FLOAT、DOUBLE、DATE、TIME、BOOLEAN
参数值(value)否参数的默认值;留空时需要在启动参数中赋值

左右滑动查看完整表格

填写完成后点击面板底部的「确定」,节点回到画布,参数随工作流一起保存。运行时,平台把该节点实际生效的参数值替换进脚本,在任务实例日志的「Initialize shell task params」中可以看到localParams 的完整内容,包含 prop、direct、type、value 四项。

使用示例:在节点中配置一条参数,参数名为 c1、方向 IN、类型 VARCHAR、参数值 node_val;脚本写为 `echo P4=${c1}`。运行后,日志中「Final Script Content」显示该行已被替换为 `echo P4=node_val`,脚本输出即 `P4=node_val`。

适用场景:同一段脚本被多个节点复用但常量不同;需要把环境相关的值(路径、阈值)与脚本分离;需要在任务实例日志中直接看出本次运行用了什么参数值。

OUT 参数向下游传递

把方向设为 OUT 时,该参数由本节点产生并写入工作流的参数池,下游节点可以引用同名参数。上游节点的 OUT 参数需要在本节点脚本中实际输出,下游节点才能取到值。配置下游节点时,请先确认上游节点已输出该参数,再在脚本中以 ${参数名} 引用。

全局参数 ​

作用:定义在工作流级别的参数,工作流内所有节点都可以引用。适合多个节点共用的常量,例如业务日期基准、数据仓库库名、公共过滤条件。

配置位置:工作流画布 → 右上角「保存」→「基本信息」窗口 → 「全局参数」→ 点击「添加」,逐行填写键与值。

全局参数只有两个元素:键与值,没有方向与类型的选择。键名即脚本中的引用名。

使用示例:在「全局参数」中添加一条,键为 g1、值为 global_val;节点脚本写为 `echo P3=${g1}`。运行后日志中该行被替换为 `echo P3=global_val`,脚本输出 `P3=global_val`。

与自定义参数的区别:全局参数定义一次、工作流内处处可用,修改时只需改一处;自定义参数依附于具体节点,适合节点私有的配置。两者同名时,以节点级设置为准。

启动参数 ​

作用:在每次运行前指定本次运行使用的参数值,用于同一工作流在不同批次、不同日期下传入不同取值,而不必修改工作流本身。

配置位置:工作流定义列表 → 「运行」→「启动前请先设置参数」窗口 → 「启动参数」→ 点击「添加」。

启动参数每行包含四个元素:键、方向(IN / OUT)、类型、值,与自定义参数的字段结构一致。

启动参数只作用于本次运行,不改变工作流本身的配置。下次运行若不填写,则回到工作流中定义的值。

启动参数需要与已定义的参数名对应

启动参数填入的键,必须与工作流中已存在的参数名一致(全局参数的键,或节点自定义参数的参数名),该值才会替换进脚本。若工作流中没有定义同名参数,脚本里的 ${键名} 不会被替换,运行时该变量为空。基于这一点:脚本中出现的新变量,先在节点「自定义参数」或工作流「全局参数」中定义,再在运行窗口的「启动参数」中按需覆盖取值。

使用示例:工作流中已定义全局参数 g1,日常取值为 global_val。某次运行需要临时改为指定值,在「启动参数」中添加键 g1、方向 IN、类型 VARCHAR、值 run_once_val,本次运行即以 run_once_val 执行,工作流中的全局参数保持不变。

三类参数对比与内置时间变量 ​

表15 三类参数的对比
对比项自定义参数全局参数启动参数
作用范围单个节点整个工作流本次运行
配置位置节点设置 → 自定义参数保存 → 基本信息 → 全局参数运行 → 启动前请先设置参数
字段结构参数名 / 方向 / 类型 / 值键 / 值键 / 方向 / 类型 / 值
是否影响后续运行是,随工作流保存是,随工作流保存否,仅本次运行生效
典型用途节点私有常量、向下游输出参数多节点共用常量临时覆盖某次运行的取值
脚本引用写法${参数名}${键名}${键名}

左右滑动查看完整表格

除自定义参数外,脚本中还可以直接使用平台内置的时间变量,写法为 `$[格式]`,平台在运行前按当前运行日期替换。常用的格式如下:

表16 常用内置时间变量
写法替换结果示例说明
$[yyyyMMdd]20261109运行日期,常用于按天分区的路径与分区字段
$[yyyy-MM-dd]2026-11-09带分隔符的日期,适合作为查询条件
$[yyyyMMddHHmmss]20261109153000精确到秒的时间戳,适合作为文件名的唯一后缀

左右滑动查看完整表格

区分 ${} 与 $[]

${参数名} 取的是参数值(自定义、全局或启动参数),$[格式] 取的是运行时间。两者都只在节点执行前替换一次,脚本运行过程中不会随时间变化。

大数据平台用户操作手册