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

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 为你介绍如何突破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数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
4天前
|
SQL 运维 DataWorks
DataWorks操作报错合集之DataWorks提交失败: 提交节点的源码内容到TSP(代码库)失败:"skynet_packageid is null,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
34 0
|
4天前
|
缓存 资源调度 DataWorks
DataWorks操作报错合集之DataWorks节点报错:OSError: [Errno 7] Argument list too long,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 1
|
4天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之DataWorks 实现节点依赖关系如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
35 5
|
4天前
|
SQL DataWorks 数据处理
DataWorks产品使用合集之DataWorks PyODPS节点调用第三方开源包如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
30 3
|
4天前
|
数据采集 运维 DataWorks
DataWorks产品使用合集之DataWorks提供了整库实时同步解决方案如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
24 0
|
4天前
|
Web App开发 DataWorks 监控
DataWorks产品使用合集之在 DataWorks 上,查看节点的配置信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
25 1
|
4天前
|
存储 数据采集 运维
DataWorks产品使用合集之DataWorks创建HTTP触发器节点背景信息的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
31 0
|
4天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之在DataWorks中,如何将某个节点添加到自己的“依赖的上游节点”列表中,但该节点在产出任务时显示不为无如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 1
|
4天前
|
分布式计算 DataWorks 监控
DataWorks产品使用合集之在DataWorks中创建FTP Check节点的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 1
|
4天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之DataWorks中,如果一个虚拟节点被设置为冻结状态,那么它的所有子节点也将被冻结如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
35 0

热门文章

最新文章

相关产品

  • 大数据开发治理平台 DataWorks