当您需要将上游节点任务的结果提供给下游节点使用时,您可使用赋值节点,实现任务结果在节点间传递。赋值节点支持ODPS SQL、SHELL和Python2三种赋值语言,且根据赋值规则,自动为您添加赋值参数(outputs参数),便于其他节点引用。您可以结合节点上下文配置,参考本文使用赋值节点。
前提条件
您已购买标准版及以上版本的DataWorks。标准版及以上版本的DataWorks才支持使用赋值节点。
背景信息
使用赋值节点进行透传参数时,需关注以下三个要点:- 业务流程中,赋值节点与上下游节点间的依赖关系。
如上图所示,使用赋值节点透传参数时:
- 赋值节点(fuzhi_python、fuzhi_sql、fuzhi_shell)需作为引用赋值节点参数节点(down_compare)的上游节点,下游节点需要与赋值节点设置直接依赖关系(赋值节点为下游节点的一层父节点)。
- 赋值节点作为上游与其它节点配合使用时,请务必先提交赋值节点,以便下游节点在配置时可以解析出参数。
- 参数传递时,赋值节点与下游节点的上下文参数透传关系。
如上图所示,通过赋值节点与引用节点的上下文参数的配置,形成参数透传引用关系:
- 赋值节点(fuzhi_python、fuzhi_sql、fuzhi_shell)需将待赋值给下游的参数添加为节点上下文中的本节点输出参数。
- 下游引用赋值参数的节点需将待引用的赋值参数添加为节点上下文中的本节点输入参数。
说明- 部分数据开发节点,可直接在节点的上下游参数中手动添加赋值参数(outputs参数),无需通过赋值节点即可将参数透传给下游节点引用。例如,EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL和MySql节点,此类节点支持手动添加赋值节点,赋值参数的使用与赋值节点一致,添加赋值参数的操作详情请参见配置节点上下文。
- 其他节点无法直接在本节点中直接添加赋值参数,需要使用赋值节点进行参数透传。
- 赋值节点参数传递只支持传递给一层子节点,不支持跨节点传递。
- 如果下游需要取赋值节点传递结果,下游节点连同赋值节点一块执行,您可以业务流程面板运行或者在运维中心执行验证上下游参数传递情况。
- 参数引用时,赋值节点的参数输出格式与下游节点引用参数方式的关系。不同语言的赋值参数(outputs参数)赋值说明如下。
赋值语言 outputs参数取值 outputs参数格式 outputs参数大小限制 ODPS SQL 最后一行SELECT语句的输出作为赋值参数,添加为赋值节点的本节点输出参数,供其他节点引用。 将输出结果作为一个二维数组传递至下游。 传递值最大为2 MB。如果赋值语句的输出结果超过该限制,赋值节点会运行失败。 SHELL 最后一行ECHO语句的数据,添加为赋值节点的本节点输出参数,供其他节点引用。 将输出结果基于逗号(,)分割为一维数组。 Python2 最后一行PRINT语句的输出,添加为赋值节点的本节点输出参数,供其他节点引用。 将输出结果基于逗号(,)分割为一维数组。
使用限制
- 标准版及以上版本的DataWorks才支持使用赋值节点。
- 若下游节点依赖赋值节点传递的结果集,请在执行时,同时执行赋值节点与下游节点以便赋值节点的输出的结果集可传递给下游。
操作流程
本文以在down_compare节点中,分别输出赋值节点使用Python2、ODPS SQL和SHELL语言编辑的最后一行代码输出结果为例,为您介绍赋值节点如何结合节点上下文实现上下游参数传递,操作流程如下。
不同语言的赋值参数(outputs参数)使用案例如下。
赋值语言 | outputs取值示例 | 赋值节点调度配置 | 下游节点调度配置 | 下游节点取值方式 | 下游节点返回结果 |
---|---|---|---|---|---|
ODPS SQL | 示例查看fuzhi_tb表。
|
| 以上游赋值节点使用的赋值语言为ODPS SQL示例。 | 不同类型的下游节点取值如下:
| Hello |
SHELL | 示例语句为:echo 'Data','我是赋值节点2赋值语言shell'; 。 | Data | |||
Python2 | 示例语句为:print "Works!,我是赋值节点3赋值语言是python"; 。 | Works! |
创建赋值节点及其他节点
根据本文的示例场景,需使用3个赋值节点,分别示例3种赋值语言场景的使用,因此您首先需要创建3个赋值节点。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 鼠标悬停至
图标,单击 。
您也可以找到相应的业务流程,右键单击通用,选择 。 - 在新建节点对话框中,输入节点名称,并选择目标文件夹。本示例中新建3个不同语言的赋值节点(Python2、ODPS SQL和SHELL),节点名称分别为fuzhi_python、fuzhi_sql、fuzhi_shell。重要 节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
- 单击提交。
配置上下游依赖
创建完成赋值节点(Python、ODPS SQL和SHELL)和其他节点后,您需要根据实际的业务关系,设置节点的上下游依赖关系。
本示例中,您可以直接通过拉线,将start节点作为所有赋值节点的上游节点,down_compare节点作为所有赋值节点的下游节点,操作详情可参见配置同周期调度依赖。

此外,您可根据实际需要配置各节点调度配置中的基础属性、时间属性、资源属性,详情可参见配置基础属性、时间属性配置说明、配置资源属性。
配置上下文参数并引用赋值参数(ODPS SQL)
以下以配置赋值语言为ODPS_SQL的赋值节点,并在down_compare节点中引用赋值参数为例,为您示意如何操作。
- 配置赋值节点。
- 配置引用节点。
- 执行引用,查看引用结果。
- 单击工具栏中的
图标。
- 在警告对话框中,单击继续运行。
- 查看引用结果。
- 单击工具栏中的
配置上下文参数并引用赋值参数(Python)
以下以配置赋值语言为Python2的赋值节点,并在down_compare节点中引用赋值参数为例,为您示意如何操作。
- 配置赋值节点。
- 配置引用节点。
- 执行引用,查看引用结果。
- 单击工具栏中的
图标。
- 在警告对话框中,单击继续运行。
- 查看引用结果。
- 单击工具栏中的
配置上下文参数并引用赋值参数(SHELL)
以下以配置赋值语言为SHELL的赋值节点,并在down_compare节点中引用赋值参数为例,为您示意如何操作。
- 配置赋值节点。
- 配置引用节点。
- 执行引用,查看引用结果。
- 单击工具栏中的
图标。
- 在警告对话框中,单击继续运行。
- 查看引用结果。
- 单击工具栏中的