工作空间全局参数

工作空间全局参数是在 Workspace 级别统一维护的参数。它适合保存多个任务组、组合任务或任务都会复用的配置值,例如数据库地址、环境标识、业务日期变量等。

如果你需要在多个任务组或组合任务 里重复维护同一个参数,但是后续每次变更都需要逐个修改,容易遗漏或产生不一致的场景时可推荐优先使用工作空间全局参数。

使用全局参数后,可以在工作空间中维护一份公共值,再让下游参数引用它,实现“改一处、全生效”。

全局参数的核心机制是逐层引用与覆盖:全局参数本身作为最上层参数,被任务组参数引用;组合任务参数、任务参数再继续引用上层参数。任务运行时,系统会按参数层级解析,遇到显式赋值时停止向上查找。

适用场景

全局参数适合用于跨任务组、跨任务复用的公共配置。

场景示例使用全局参数的价值
数据库连接配置
db_host = prod.clickzetta.com
db_host = prod.clickzetta.com
生产库地址变更时,只需修改一处
环境标识
env = prod
env = prod
多个任务组统一识别当前运行环境
公共日期变量
biz_date = $[yyyy-MM-dd, -1d]
biz_date = $[yyyy-MM-dd, -1d]
多条链路使用统一业务日期口径
公共 Schema 名称
target_schema = ads_prod
target_schema = ads_prod
避免各任务组维护不同的目标 Schema

不建议把只在单个任务中使用的临时值放到全局参数中。单任务独有的配置,继续使用 任务参数即可。

参数层级

参数优先级从高到低为:

任务参数 > 组合任务参数 > 任务组参数 > 全局参数

也就是说,越靠近具体任务的参数优先级越高。如果任务参数已经显式设置了自己的值,运行时会使用任务参数自身的值,不再继续向上查找任务组参数或全局参数。

全局参数类型

普通参数

普通参数用于保存固定值或表达式。引用普通参数后,下游参数运行时使用全局参数当前值。

示例:

全局普通参数 env = prod 全局普通参数 biz_date = $[yyyy-MM-dd, -1d] 全局普通参数 db_host = prod.clickzetta.com

普通参数适合:

  • 固定字符串、数字、布尔值、日期值。
  • 任务调度时可计算的日期表达式。
  • 多个任务组共同使用的配置项。

输入参数

输入参数用于接收上游任务输出值。它本身不只是一个固定默认值,而是一个“需要从上游输出取值”的参数定义。

输入参数通常用于上下游任务之间传递运行结果。例如:

上游 SQL 输出:SELECT 'ods.order_source' AS table_name; 下游输入参数:source_table下 游代码引用:SELECT * FROM ${source_table};

输入参数引用后,必须继续配置参数来源,包括上游任务和上游输出参数。否则系统只知道参数名,不知道运行时应该从哪里取值。

创建全局参数

  1. 进入 工作空间设置
  2. 打开 全局参数 Tab。
  3. 点击 新建
  4. 选择参数类型:普通参数输入参数
  5. 填写参数名称、数据类型、参数值或来源说明、描述。
  6. 保存参数。

全局参数包含以下基础字段:

字段是否必填说明
参数名参数的唯一标识。支持英文、数字、下划线,不超过 64 个字符
参数类型选择 普通参数输入参数
参数取值普通参数和输入参数对应的取值不同。 1)普通参数:直接输入参数取值,可以是系统内置也可以是常量。任务参数 2)输入参数:选择有输入参数的任务输出值。上下文参数
参数默认取值输入参数必填当全局参数为输入参数时,若开发链未配置需引用的上游任务时,会出现获取不到输出参数的值的情况,这个时候会以当前默认值作为当前全局参数的值进行传递。

引用全局参数

普通参数引用示例

普通参数的引用方式比较直接。任务组参数、组合任务参数或任务参数可以选择引用某个全局普通参数。

1)在工作空间->参数中,配置全局参数。参数名称:

workspacename
workspacename

2)在任务脚本中输入相同的自定义变量

${workspacename}
${workspacename}

在参数配置中,取值来源选择「工作空间」

运行时,任务拿到的实际值就是全局参数

 workspacename
workspacename
当前配置的值。

输入参数引用示例

1)创建一个标准的任务类型,SQL、Python或Shell类型 。同时在参数配置中,配置输出参数。

2)全局参数中配置参数为

city_name
city_name
,其取值为上游任务的输出值。同时配置参数默认取值,即若未在任务调度链路中关联步骤1的任务时,会从「参数默认取值」处进行取值。

3)配置调度链路

在调度链路中引用全局参数的取值,同时需要在跟节点处,将输入参数关联的任务主动添加到调度链路中。如图。

如果,未将00_输出值传递任务节点添加到任务链路中,即未将全局参数中输入参数的取值来源添加进来,则当前任务链的全局参数

city_name
city_name
均为固定值beijing

编辑和删除全局参数

编辑全局参数

你可以修改全局参数的参数值和描述。

参数名不可修改。如果需要变更参数名,请新建全局参数,再将下游引用切换到新参数。

对于输入参数,修改参数定义后,还需要检查下游引用处的上游来源配置是否仍然有效。

删除全局参数

删除全局参数前,系统会检查是否存在下游引用。

如果没有下游引用,可以直接删除。

如果存在下游引用,系统会展示影响范围,并要求二次确认。删除后,下游参数引用会失效,相关任务运行可能失败。

使用限制

限制说明
不支持循环引用全局参数不可引用其他参数,只能被下游参数引用
参数名不可重复参数名在工作空间内唯一
参数名不可修改防止已有引用断链
输入参数需要上游来源引用输入参数后,必须配置上游任务和输出参数
输入参数只支持一层传递上游输出只传递给直接依赖的下游
输入参数传值大小有限制上下文参数最大支持 2MB
删除需要确认影响范围被引用的全局参数删除前需要二次确认
权限与工作空间一致工作空间成员可读取,工作空间管理员可创建、编辑、删除
不影响未引用任务未引用全局参数的任务组或任务,运行行为保持不变

常见问题

普通参数和输入参数有什么区别

普通参数直接维护一个值或表达式,引用后运行时使用这个值。输入参数不只维护固定值,它需要从上游任务的输出参数中取值,引用时必须额外配置上游来源。

修改普通全局参数后,任务需要重新配置吗

不需要。只要下游参数已经建立引用关系,全局参数值变更后,下次运行会使用新值。

引用输入参数后为什么还要配置上游来源

因为输入参数的值来自上游任务输出。全局输入参数只定义参数名和复用关系,具体从哪个上游任务、哪个输出参数取值,需要在引用处配置。

任务参数和全局参数同名时使用哪个值

如果任务参数显式设置了自己的值,优先使用任务参数自身的值。显式赋值会截断向上查找链路。

全局参数可以直接写在 SQL 中吗

建议通过任务组参数、组合任务参数或任务参数承接后再在代码中引用。这样可以保持参数来源清晰,并让界面展示完整引用链。

删除全局参数会影响已经运行过的实例吗

不会影响已经完成的历史运行结果。但如果下游任务仍在引用该全局参数,后续运行可能因参数无法解析而失败。

相关文档

文档说明
任务参数在单个任务中使用动态参数
任务参数语法参考系统内置参数、时间表达式和时间函数语法
任务参数场景示例常见任务参数使用场景
任务组在任务组中统一管理任务和任务组参数
组合任务在组合任务中管理多节点工作流和组合任务参数
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询