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

简介: 为你介绍如何突破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

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
目录
相关文章
|
SQL 分布式计算 DataWorks
使用DataWorks PyODPS节点调用XGBoost算法
本文介绍如何在DataWorks中通过PyODPS3节点调用XGBoost算法完成模型训练与测试,并实现周期离线调度。主要内容包括:1) 使用ODPS SQL构建数据集;2) 创建PyODPS3节点进行数据处理与模型训练;3) 构建支持XGBoost的自定义镜像;4) 测试运行并选择对应镜像。适用于需要集成机器学习算法到大数据工作流的用户。
639 24
|
分布式计算 DataWorks 数据处理
"DataWorks高级技巧揭秘:手把手教你如何在PyODPS节点中将模型一键写入OSS,实现数据处理的完美闭环!"
【10月更文挑战第23天】DataWorks是企业级的云数据开发管理平台,支持强大的数据处理和分析功能。通过PyODPS节点,用户可以编写Python代码执行ODPS任务。本文介绍了如何在DataWorks中训练模型并将其保存到OSS的详细步骤和示例代码,包括初始化ODPS和OSS服务、读取数据、训练模型、保存模型到OSS等关键步骤。
1013 3
|
SQL 机器学习/深度学习 分布式计算
dataworks节点任务
在DataWorks中,你可以通过拖拽节点以及连线来构建复杂的工作流,这样可以方便地管理多个任务之间的依赖关系。此外,DataWorks还提供了调度功能,使得这些任务可以在设定的时间自动执行。这对于构建自动化、定时的数据处理管道非常有用。
438 5
|
DataWorks 监控 安全
DataWorks产品使用合集之怎么设置实时同步任务的速率和并发
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之mysql节点如何插入数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
362 1
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么设置在归并节点传递参数
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
DataWorks 监控 数据建模
DataWorks产品体验评测
DataWorks产品体验评测
|
数据采集 人工智能 DataWorks
DataWorks产品最佳实践测评
DataWorks产品最佳实践测评
|
SQL DataWorks 搜索推荐
DataWorks产品评测与最佳实践体验报告
DataWorks是阿里巴巴云推出的一款高效数据处理平台,通过内置的数据集成工具和ETL功能,实现了多源数据的自动化处理与分析。本文介绍了DataWorks在用户画像分析中的应用实践,展示了其如何帮助企业高效管理数据资源,支持决策制定及营销优化。同时,文章还评测了DataWorks的产品体验,包括开通流程、功能满足度等方面,并与其它数据开发平台进行了比较,突出了DataWorks在易用性、性能和生态完整性上的优势。最后,对Data Studio新版本中的Notebook环境进行了初步探索,强调了其在提升开发效率方面的价值。
611 16
|
机器学习/深度学习 数据采集 DataWorks
DataWorks产品评测:数据处理与分析的最佳实践
DataWorks是阿里巴巴推出的大数据开发治理平台,支持从数据采集、预处理、存储到分析的全流程操作。本文评测了其在用户画像分析中的应用,包括数据收集、清洗、特征工程、模型训练、结果评估及应用部署等步骤,展示了其在提高数据资产管理效率、支持多种编程语言和技术栈、集成丰富可视化工具等方面的优势。同时,文章也指出了DataWorks在使用过程中的一些不便与问题,并提出了改进建议。
549 17

相关产品

  • 大数据开发治理平台 DataWorks