节点上下文用于支持参数在上游节点和下游节点之间传递,本文为您介绍如何定义、使用节点上下文中的输入参数和输出参数。
背景信息
在上游节点定义输出参数及其取值后,在下游节点定义输入参数(取值引用上游节点的输出参数),即可在下游节点中使用此参数获取上游节点传递过来的取值。
注意事项
节点上下文参数仅用于上游节点的节点上下文输出参数作为下游节点的节点上下文输入参数,无法直接将上游节点的查询结果传递到下游,如果您需要将上游节点的查询结果传递到下游节点,可以使用赋值节点,详情可参见文档:赋值节点。部分节点支持赋值参数的功能,赋值参数使用与赋值节点行为大体一致,您可以参考赋值节点使用文档来进行赋值参数的配置,关于赋值参数的配置可参考下文。
配置节点上下文
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发,面板双击打开相应节点的编辑页面。
单击右侧的调度配置,在节点上下文区域配置本节点输入参数和本节点输出参数。
各类型节点的调度参数配置,详情请参见SQL类型节点及离线同步节点。
配置输出参数
通用场景
您可以在节点上下文中定义本节点输出参数,输出参数的取值分为常量和变量两种类型。
完成输出参数的定义并提交当前节点后,即可在下游节点中引用,作为下游节点的输入参数的取值。
不支持在当前节点编写代码的方式,对定义的输出参数进行赋值。
字段 | 含义 | 描述 |
编号 | 编号为系统控制,自动增加。 | 无 |
参数名 | 定义的输出参数名称。 | 无 |
类型 | 参数类型。 | 包括常量和变量。 |
取值 | 输出参数的取值。 | 取值类型包括常量和变量:
|
描述 | 参数的简要描述。 | 无 |
来源 | 当前参数的来源。 | 包括系统默认添加、自动解析和手动添加。 |
操作 | 提供编辑和删除两种操作。 | 当存在下游节点依赖时,不支持编辑和删除。在下游节点添加对上游节点引用之前,请谨慎检查,确保上游输出定义正确。 |
特殊场景:赋值参数
如果您需要将一个任务的查询结果作为参数传递给下游任务进行引用,请在上游节点(该节点需支持使用赋值参数功能)的编辑页面,单击右侧的调度配置。在该节点的
区域,单击添加赋值参数,一键添加输出的赋值参数。目前支持使用赋值参数的节点包括:EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL和MySQL等。
您需要购买DataWorks标准版及以上版本,才可以在上述支持赋值参数的节点中使用赋值参数功能。
您单击添加赋值参数后,赋值参数会传递上游节点生产的查询结果。如果产生结果为空,不会阻塞本节点运行,但下游引用的节点可能会失败。
下游节点需要在输入参数中添加上游节点的赋值参数,在代码中通过二维数组的方式引用。其使用方式和赋值语言为ODPS SQL的赋值节点一致,详情请参见赋值节点。
配置输入参数
节点的输入参数可用于获取其上游节点的输出参数,添加成功后可以在当前节点代码中使用,使用方式与调度参数在代码中的定义变量的方式一致。 当前节点设置依赖某个上游节点后,当前节点才能在本节点输入参数处将该上游节点的输出添加为当前节点的输入参数。
设置上下游依赖关系。
在调度依赖中添加依赖的上游节点。
上游节点配置输出参数。
在节点上下文中,添加输出参数定义。配置详情请参见配置输出参数。
下游节点配置输入参数。
在节点上下文中,添加输入参数定义,取值选择引用上游节点的输出参数。
字段
含义
说明
编号
编号为系统控制,自动增加。
无
参数名
定义的输入参数名称。
无
取值来源
参数的取值来源,引用上游节点取值。
取值是上游节点输出参数的具体取值。
描述
参数的简要描述。
无
父节点ID
父节点ID。
自动从上游节点解析得到。
来源
当前参数的来源。
包括系统默认添加、自动解析和手动添加。
操作
提供编辑和删除两种操作。
无
下游节点使用输入参数
在节点中使用定义的输入参数的方法和其它系统变量一致,引用方式为${输入参数名}
。下图为在Shell节点中进行引用。
执行任务时,您需运行上下游节点所在的业务流程,保证上下游节点按顺序执行。否则下游节点使用的输入参数无效。
系统支持的全局变量
系统变量
系统变量
说明
${projectId}
项目ID。
${projectName}
MaxCompute项目名。
${nodeId}
节点ID。
${gmtdate}
实例定时时间所在天的00:00:00,格式为yyyy-MM-dd 00:00:00。
${taskId}
任务实例ID。
${seq}
任务实例序号,代表该实例在当天同节点实例中的序号。
${cyctime}
实例定时时间。
${status}
实例的状态:成功(SUCCESS)、失败(FAILURE)。
${bizdate}
业务日期。
${finishTime}
实例结束时间。
${taskType}
实例运行类型:正常(NORMAL)、手动(MANUAL)、暂停(PAUSE)、空跑(SKIP)、未选择(UNCHOOSE)、周月空跑(SKIP_CYCLE)。
${nodeName}
节点名称。
其它参数设置请参见调度参数支持的格式。