节点上下文用于支持参数在上游节点和下游节点之间传递,本文为您介绍如何定义、使用节点上下文中的输入参数和输出参数。
背景信息
在上游节点定义输出参数及其取值后,在下游节点定义输入参数(取值引用上游节点的输出参数),即可在下游节点中使用此参数获取上游节点传递过来的取值。
注意事项
参数传递与查询结果传递说明:
参数传递:如需将上游节点的配置的参数信息传递到下游节点,您可设置上游节点的节点上下文参数里面的输出参数作为下游节点的节点上下文参数的输入参数。
查询结果传递:如需将上游节点的查询结果传递到下游节点,您可设置上游节点的节点上下文参数里面的使用赋值参数作为下游节点的节点上下文参数的输入参数。也可使用赋值节点进行查询结果传递。
说明查询结果传递仅支持部分节点(例如,EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL、Click House SQL和MySQL节点)使用,其使用方式与赋值节点的行为基本一致,可参考赋值节点完成配置。
使用限制
仅DataWorks标准版及以上版本支持使用赋值参数功能。
进入参数配置区域
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发面板,双击打开相应节点的编辑页面。
单击右侧的调度配置,在节点上下文参数区域单击右侧的
图标。即可进入节点上下文参数配置区域。
说明调度参数配置可参见SQL类型节点及离线同步节点。
配置输出参数
在节点上下文参数区域配置本节点输出参数时,您可根据实例业务进行相关配置。
配置普通输出参数
如需将上游节点的配置的参数信息传递到下游节点,可参见以下内容。
参数 | 配置说明 |
编号 | 编号为系统控制,自动增加。 |
参数名 | 您需自定义输出参数名称。 |
类型 | 支持常量和变量,您可根据实际业务进行选择配置。 |
取值 | 输出参数的取值。取值类型包括常量和变量:
|
描述 | 参数的简要描述。 |
来源 | 当前参数的来源。 包括系统默认添加、自动解析和手动添加。 |
操作 | 提供保存、编辑和删除操作。 说明 存在下游节点依赖时,不支持编辑和删除。在下游节点添加对上游节点引用之前,请谨慎检查,确保上游输出定义正确。 |
配置完相关参数后,单击后面操作栏中的保存即可。
配置赋值输出参数
如需将当前任务的查询结果作为参数传递给下游任务进行使用,可参见以下内容。
找到该节点的
区域。单击添加赋值参数,一键添加输出的赋值参数。
您单击添加赋值参数后,赋值参数会传递本节点查询结果到引用该赋值参数的下游节点。如果产生结果为空,不会阻塞本节点运行,但下游引用的节点可能会失败。
下游节点需要在输入参数中添加上游节点的赋值参数,其使用方式和赋值语言为ODPS SQL的赋值节点一致,详情请参见赋值节点。
配置完本节点输出参数,您可在当前配置页找到
里面添加方式为系统默认添加的输出名,下游节点可通过该输出名绑定与本节点的依赖关系。配置输入参数
在节点上下文参数区域配置本节点输入参数,您可通过该操作获取上游节点输出参数给本节点使用。
节点的输入参数可用于获取其上游节点的输出参数,添加成功后可以在当前节点代码中使用,使用方式与调度参数在代码中的定义变量的方式一致。
当前节点设置依赖某个上游节点后,当前节点才能在本节点输入参数处将该上游节点的输出添加为当前节点的输入参数。
已为上游节点配置输出参数。
设置上下游依赖关系。
单击下游节点编辑页面右侧的调度配置。
在配置输出参数时的输出名。
的节点输出后面的对话框中,输入并选择您在上游节点单击添加即可。
下游节点配置输入参数。
在节点上下文参数中,单击添加本节点输入参数,配置参数可参考下表:
参数
配置说明
编号
编号为系统控制,自动增加。
参数名
您需自定义输出参数名称。后续可在节点编辑页通过该参数名引用上游传递的参数信息。
取值来源
参数的取值来源于上游节点的输出参数,具体取值为上游节点的实际输出结果。
描述
您可自定义参数的简要描述。
父节点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}
节点名称。
其它参数设置请参见调度参数支持的格式。