简介: DataWorks 性能实际系列,帮忙您解析业务实现过程中的痛点,进步业务性能应用效率!
往期回顾:
- DataWorks 性能实际速览 01 期——数据同步解决方案:为您介绍不同场景下可选的数据同步计划。
- DataWorks 性能实际速览 02 期——独享数据集成资源组:为您介绍进行数据同步时,可应用的资源组与网络连通计划、注意事项。
- DataWorks 性能实际速览 03 期——生产开发环境隔离:为您介绍 DataWorks 通过规范模式提供开发环境与生产环境隔离及不同环境的权限要求。
通过往期的介绍,您曾经理解到在 DataWorks 上进行工作运行的最要害的几个知识点,接下来为您逐渐介绍如何通过 DataWorks 的工作节点实现最常见的数据开发场景。本期为您介绍如何在 DataWorks 上实现参数透传,即把上游工作的参数透传到上游工作。
性能举荐:赋值节点与参数节点
在阿里云 DataWorks 中,一个数据开发工作最终是拆解为多个节点工作,并通过设置节点间上下游关系最终造成一个残缺的数据开发业务流程,如下图所示。
以上为一个简略的示例,在理论利用时,咱们通常会碰到这样的状况,拆解进去的上游节点工作会生成一些参数,或上游节点的运行后果,须要在上游节点工作中利用到,这就须要数据开发工作可能实现参数 / 节点运行后果在各个节点间的透传,依据不同的透传需要,DataWorks 提供了两种非凡节点能够实现:赋值节点 与参数节点。
Part1:赋值节点 – 实现工作后果透传
当您须要 将上游节点工作的后果提供给上游节点应用 时,您可应用赋值节点,实现工作后果在节点间传递。赋值节点反对 ODPS SQL、SHELL 和 Python 三种赋值语言,且依据赋值规定,主动为您增加赋值参数(outputs 参数),便于其余节点援用。
应用赋值节点进行透传参数时,需关注以下三个要点。
1.1 赋值节点与上下游节点间的依赖关系
如上图所示,应用赋值节点透传参数时:
- 赋值节点(fuzhi\_python、fuzhi\_sql、fuzhi\_shell)需作为援用赋值节点参数节点(down\_compare)的上游节点,上游节点须要与赋值节点设置间接依赖关系(赋值节点为上游节点的一层父节点)。
- 赋值节点作为上游与其它节点配合应用时,请务必先提交赋值节点,以便上游节点在配置时能够解析出参数。
1.2 赋值节点与上游节点的上下文参数透传关系
如下图所示,通过赋值节点与援用节点的调度配置中的 上下文参数配置,造成参数透传援用关系:
- 赋值节点(fuzhi\_python、fuzhi\_sql、fuzhi\_shell)需将待赋值给上游的参数增加为 节点上下文 中的 本节点输入参数。
- 上游援用赋值参数的节点需将待援用的赋值参数增加为 节点上下文 中的 本节点输出参数。
阐明:
- 赋值节点参数传递 只反对传递给一层子节点,不反对跨节点传递。
1.3 赋值语言与赋值后果
援用赋值节点后果时,赋值节点的参数输入格局与上游节点援用参数形式有关系,不同语言的赋值参数(outputs 参数)赋值阐明如下。
赋值语言 | outputs 参数取值 | outputs 参数格局 | outputs 参数大小限度 |
ODPS SQL | 最初一行 SELECT 语句的输入作为赋值参数,增加为赋值节点的本节点输入参数,供其余节点援用。 | 将输入后果作为一个二维数组传递至上游。 | 传递值最大为 2 MB。如果赋值语句的输入后果超过该限度,赋值节点会运行失败。 |
SHELL | 最初一行 ECHO 语句的数据,增加为赋值节点的本节点输入参数,供其余节点援用。 | 将输入后果基于逗号(,)宰割为一维数组。 | |
Python | 最初一行 PRINT 语句的输入,增加为赋值节点的本节点输入参数,供其余节点援用。 | 将输入后果基于逗号(,)宰割为一维数组。 |
更多赋值节点的介绍可进入帮忙核心查看文档配置赋值节点。
## Part2:参数节点 – 实现参数透传
参数节点是一种非凡的虚构节点,用于治理业务流程中的参数和实现参数在工作节点中传递,反对常量参数、变量参数和透传上游节点的参数,须要援用参数的节点间接依赖参数节点即可。
参数节点实质上是一种虚构节点,不会运行数据计算工作产生数据,次要用于跨节点传参、参数治理的场景。
### 2.1 跨节点传参
当数据开发的业务流程中,某个上游节点的工作须要获取多个、多级上游节点的输入参数时,您能够应用参数节点,将上游节点须要获取的所有参数对立增加至参数节点中,后续上游节点可间接挂在参数节点之下,即可获取到所有所需参数。
以上图为例,sql\_7 节点须要获取 sql\_1、sql\_3、sql\_4 节点的输入参数,此时您能够新增一个参数节点,作为 sql\_1、sql\_3、sql\_4 的上游节点,并将所有 sql\_7 所需参数增加至参数节点中,将 sql\_7 的挂在此参数节点上游,则 sql\_7 可间接通过参数节点获取到所有所需参数。
### 2.2 参数治理
当数据开发的业务流程中,上游节点的工作须要应用某些常量参数、变量参数时,您能够应用参数节点,将上游节点须要应用的参数均增加至参数节点中,需应用参数的上游节点间接挂在参数节点之下,即可获取应用所需参数,便于整个业务流程中对所有应用的参数进行对立治理。
以上图为例,sql\_3、sql\_4、sql\_5、sql\_7 节点均需应用参数,此时您能够新增一个参数节点,将各个上游节点应用的参数都增加至参数节点中,将须要应用参数的节点挂在此参数节点上游。
更多参数节点的介绍可进入帮忙核心查看文档创立参数节点。
## Part3:赋值节点与参数节点的比照
比照项 | 赋值节点 | 参数节点 |
透传场景 | 节点 运行后果透传 | 节点 参数透传 |
透传限度 | 仅能透传至 一层子节点,不反对跨节点透传 | 可 跨节点 透传 |
节点属性 | 一种工作节点,节点中 运行赋值工作,反对 <span>ODPS SQL、SHELL 和 Python 三种赋值语言 </span> | 实质上是一种 虚构节点,不会运行工作 产生数据 |
> 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。