简介:DataWorks功能实践系列,帮您分析业务实现过程中的痛点,提升业务功能使用效率!往期回顾:DataWorks功能实践速览第01期-数据同步方案:为您介绍不同场景可选的数据同步方案。DataWorks功能实践速览第02期-独家数据集成资源组:介绍可用的资源组、网络连接方案和数据同步注意事项。DataWorks功能实践速览第03期-生产与开发环境隔离:介绍DataWorks通过标准模式为不同环境提供开发环境与生产环境隔离及权限需求。通过前面的介绍,您已经了解了在DataWorks上运行任务最关键的知识点。接下来,我会一步步为大家介绍如何通过DataWorks的任务节点来实现最常见的数据开发场景。本期介绍如何在DataWorks上实现参数透传,即将上游任务的参数透传给下游任务。功能推荐:赋值节点和参数节点在阿里云DataWorks中,最终将一个数据开发任务拆解为多个节点任务,通过设置节点间的上下游关系,最终形成一个完整的数据开发业务流程,如下图数字。上面是一个简单的例子。在实际应用中,我们通常会遇到这样的情况。拆解出来的上游节点任务会产生一些参数,或者说是上游节点的运行结果,需要应用到下游节点任务上。数据开发任务需要实现节点间参数/节点运行结果的透明传输。根据不同的透传需求,DataWorks提供了两种特殊的节点来实现:赋值节点和参数节点。Part1:赋值节点——实现任务结果透传当需要将上游节点任务结果提供给下游节点时,可以使用赋值节点实现节点间任务结果的传递。赋值节点支持三种赋值语言:ODPSSQL、SHELL、Python,并根据赋值规则自动为您添加赋值参数(输出参数),方便其他节点参考。使用赋值节点透传参数时,需要注意以下三点。1.1赋值节点与上下游节点的依赖关系如上图所示。使用赋值节点透传参数时:赋值节点(fuzhi_python、fuzhi_sql、fuzhi_shell)需要作为引用赋值节点参数节点(down_compare)的上游节点,下游节点需要设置直接依赖与赋值节点的关系(赋值节点是下游节点的父节点)。当赋值节点作为上游节点联合其他节点使用时,请先提交赋值节点,以便下游节点在配置时解析出参数。1.2赋值节点与下游节点的context参数透传关系如下图所示。通过赋值节点和引用节点的调度配置中的上下文参数配置,形成参数透传引用关系:赋值节点(fuzhi_python、fuzhi_sql、fuzhi_shell)需要将下游要赋值的参数添加为输出参数该节点在节点上下文中。下游引用赋值参数的节点需要在节点上下文中添加要引用的赋值参数作为节点的输入参数。注意:赋值节点参数传递只支持传递给一层子节点,不支持跨节点传递。1.3赋值语言和赋值结果在引用赋值节点结果时,赋值节点的参数输出格式与下游节点引用参数的方式有关。不同语言的赋值参数(outputsparameter)的赋值解释如下。更多赋值节点介绍,请进入帮助中心查看文档配置赋值节点。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节点都需要使用参数。这时候可以添加一个参数节点,将每个下游节点使用的参数添加到参数节点中,将需要使用参数的节点挂在Thisparameternodeisdownstream.更多关于参数节点的介绍,请进入帮助中心查看创建参数节点的文档。Part3:赋值节点和参数节点对比
