DataWorks:For-Each遍历节点并发执行解决方案

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 为你介绍如何突破For-Each遍历节点128次上限,并实现并发取数执行。

DataWorks提供的for-each遍历节点可获取对赋值节点或者赋值参数的最后一条查询结果或输出语句,并内置部分变量可在每次遍历中获取到指定数据。输出结果的行数或者长度,将决定遍历节点遍历次数,DataWorks目前存在128次上限,并且不支持指定并发执行,你可以通过以下方案突破128次执行次数,并实现并发执行。

实现原理

由于DataWorks通过二维数组行数和一维数组按照逗号“,”切分后的数据个数来决定遍历节点的遍历次数,所以,我们可以在产品该交互基础上,通过改造赋值节点输出的结果,结合赋值节点通过一维数组与二维数组结果集的输出方式,以及遍历节点内置变量间接实现并发取数执行。

需求分析

假设上游输出的结果集为一维数组,数据为:1,2,3,4;

改造前:每次遍历通过变量${dag.foreach.current}获取读取一个数据,将默认遍历4次。

预期:遍历2次,每次遍历定义两个任务并发读取当前遍历值中的部分数据。

设计业务流程

以下仅关键配置说明,请先阅读DataWorks官方文档关于for-each遍历节点的介绍后,再操作。

  1. 1. 改造原始数据。

赋值节点原输出结果1,2,3,4按逗号切分为2组:1#2,3#4。逗号将决定分组数,每组通过#号拼接的数据个数将决定遍历节点内部节点个数。

本输出语句按照逗号“,”拆分为2组,即遍历节点的遍历次数为2;“#”将每组数据进一步拆分。

  1. 2. 定义节点获取目标值。

每次遍历通过变量${dag.foreach.current}获取每一组数据(第一组:1#2;第二组:3#4),并通过函数对每组数据进行切分,每个任务分别读取函数切分后的数据。

image.png

遍历次数\取值

当前遍历数据

函数切分当前遍历数据

第一次遍历

${dag.foreach.current}:1#2

取1:split_part('${dag.foreach.current}', '#', 1)

取2:split_part('${dag.foreach.current}', '#', 2)

第二次遍历

${dag.foreach.current}:3#4

取3:split_part('${dag.foreach.current}', '#', 1)

取4:split_part('${dag.foreach.current}', '#', 2)

验证并确认结果

前往运维中心通过补数据>补当前节点及下游节点功能,同时运行赋值节点与遍历节点,通过查看遍历节点内部节点来查看每次遍历运行情况。

image.png

遍历次数\节点名

sql01

sql02

第一次遍历

image.png

image.png

第二次遍历

image.png

image.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
13天前
|
分布式计算 DataWorks 数据处理
"DataWorks高级技巧揭秘:手把手教你如何在PyODPS节点中将模型一键写入OSS,实现数据处理的完美闭环!"
【10月更文挑战第23天】DataWorks是企业级的云数据开发管理平台,支持强大的数据处理和分析功能。通过PyODPS节点,用户可以编写Python代码执行ODPS任务。本文介绍了如何在DataWorks中训练模型并将其保存到OSS的详细步骤和示例代码,包括初始化ODPS和OSS服务、读取数据、训练模型、保存模型到OSS等关键步骤。
33 3
|
2月前
|
SQL 机器学习/深度学习 分布式计算
dataworks节点任务
在DataWorks中,你可以通过拖拽节点以及连线来构建复杂的工作流,这样可以方便地管理多个任务之间的依赖关系。此外,DataWorks还提供了调度功能,使得这些任务可以在设定的时间自动执行。这对于构建自动化、定时的数据处理管道非常有用。
56 5
|
3月前
|
DataWorks 监控 安全
DataWorks产品使用合集之怎么设置实时同步任务的速率和并发
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之mysql节点如何插入数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么设置在归并节点传递参数
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理在DI节点同步到OceanBase数据库时,出现SQLException: Not supported feature or function
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
DataWorks Kubernetes 大数据
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现分钟级调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
运维 DataWorks 监控
DataWorks产品使用合集之如何自定义UDTF
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks API
DataWorks产品使用合集之如何设置把结果传入变量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks
  • 下一篇
    无影云桌面