DataWorks 功能实践速览 04—参数透传

通过往期的介绍,您已经了解到在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:赋值节点与参数节点的对比

对比项赋值节点参数节点
透传场景节点运行结果透传节点参数透传
透传限制仅能透传至一层子节点,不支持跨节点透传可跨节点透传
节点属性一种任务节点,节点中运行赋值任务,支持ODPS SQL、SHELL和Python三种赋值语言本质上是一种虚拟节点,不会运行任务产生数据

原文链接

本文为阿里云原创内容,未经允许不得转载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值