DataWorks功能实践速览 — 参数透传
简介: 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:赋值节点与参数节点的对比
|
对比项 |
赋值节点 |
参数节点 |
|
透传场景 |
节点运行结果透传 |
节点参数透传 |
|
透传限制 |
仅能透传至一层子节点,不支持跨节点透传 |
可跨节点透传 |
|
节点属性 |
一种任务节点,节点中运行赋值任务,支持ODPS SQL、SHELL和Python三种赋值语言 |
本质上是一种虚拟节点,不会运行任务产生数据 |
原文链接
本文为阿里云原创内容,未经允许不得转载。
DataWorks功能实践速览 — 参数透传的更多相关文章
- .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍
Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...
- 互联网巨头们的 SRE 运维实践「GitHub 热点速览 v.21.27」
作者:HelloGitHub-小鱼干 本周大热点无疑是前几天 GitHub 发布的 Copilot,帮你补全代码,给你的注释提出建议,预测你即将使用的代码组件-如此神奇的 AI 技术,恰巧本周微软也开 ...
- 4G DTU为什么要具有透传的功能
4G DTU为什么要透传 透传的目的就是为了在数据传输的过程中不对数据做任何出来,实现发送方和接收方的数据完全一样,长度和内容完全没有变化.它主要是使用在智能设备之间的远程串口数据传输,是一种和传输方 ...
- 蓝牙mesh组网实践(厂商透传模型介绍)
目录 CH582的官方EVT中,除了代理节点例程和天猫精灵例程外都提供了厂商定义的透传模型. 模型位于蓝牙mesh网络协议中的最上层,负责标准化用户应用场景的实例,比如说开关模型.亮度模型.风速模型. ...
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...
- Dubbo透传traceId/logid的一种思路
前言: 随着dubbo的开源, 以及成为apache顶级项目. dubbo越来越受到国内java developer欢迎, 甚至成为服务化自治的首选方案. 随着微服务的流行, 如何跟踪整个调用链, 成 ...
- 手把手教你开发BLE数据透传应用程序
如何开发BLE数据透传应用程序?什么是BLE service和characteristic?如何开发自己的service和characteristic?如何区分ATT和GATT?有没有什么工具可以对B ...
- 原生js实现图片预览并上传
最近主导的PC客户端网站重构工程告一段落,下一阶段开始给公司APP开发H5页面,技术栈是react.最近碰到一个需求:需要在H5页面上添加身份证照片,预览并上传.因为要兼容安卓4.4以下版本的手机,所 ...
- 制作 PPT 的新方式出现了——GitHub 热点速览 v.21.19
作者:HelloGitHub-小鱼干 想当初 Markdown 的出现,拯救了多少死在 Word 样式调整上的人,现在,slidev 出现了,它让你 Focus 在本该专注的 PPT 内容制作上而不需 ...
- 5 秒克隆声音「GitHub 热点速览 v.21.34」
作者:HelloGitHub-小鱼干 本周特推的 2 个项目都很好用,Realtime-Voice-Clone-Chinese 能让你无需开启变声音,即可获得一个特定声音的语音.这个声音可以是你朋友的 ...
随机推荐
- 记录--react native 封装人脸 检测、美颜组件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本组件目前只能用在React Native 的iOS端 本组件来之实际中的开发需求:可以检测并且标记人脸,实现基本的美颜,可进行拍照.换行 ...
- Python 变换单词顺序组成新的一句话
需求描述: 现在给出几个单词需要不断变换单词的顺序组成新的一句话 import itertools import pandas as pd # 定义项目列表 items = ['dog', 'appl ...
- 《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南 - 第9章
本章勘误: 暂无,等待细心的你告诉我哦. 本章注解: 暂无 本章释疑: 暂无,等待你的提问 致谢: MVP 林德熙 MVP 吕毅 sPhinX 相关链接 试读记录
- [Java]细节与使用经验
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18032072 出自[进步*于辰的博客] 纯文字阐述,内 ...
- Linux修改账户密码
打开终端并登录到要修改密码的账户 输入 passwd 命令,然后 Enter 系统会提示你输入 Current password. 如果是第一次登录或者忘记密码,使用 passwd -d userna ...
- KingbaseES V8R6 fillfactor 对于表的影响
前言 fillfactor 表的填充因子是一个介于 10 和 100 之间的百分数.100是默认值.如果指定了较小的填充因子,INSERT操作仅按照填充因子指定的百分率填充表页.每个页上的剩余空间将用 ...
- KingbaseES错误unsupported for database link处理
KingbaseES使用dblink查询报错:unsupported for database link 适用于: KingbaseES所有版本. 问题现象: KingbaseES创建kingbase ...
- 第十三届蓝桥杯大赛软件赛省赛【Java 大学B 组】试题D: 最少刷题数
1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 public class Main { 5 public static vo ...
- python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集、分析、展示
使用爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集.分析.展示 [获取完整源码关注公众号:靠谱杨阅读人生 回复kafka获取 ...
- LLM面面观之MoE
1. 背景 根据本qiang~最新的趋势观察,基于MoE架构的开源大模型越来越多,比如马斯克的Grok-1(314B), Qwen1.5-MoE-A2.7B等,因此想探究一下MoE里面的部分细节. 此 ...