DataWorks百问百答27:for-each节点sql样例如何使用?

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: for-each节点sql样例使用

for-each节点作用:可实现将业务逻辑循环执行数次,并且将相关重要参数根须业务需求进行替换的功能。
限制:

  • DataWorks标准版及以上版本,才可以使用for-each节点功能。
  • for-each节点最多可以循环128次,一旦超过便会报错。

详细介绍参见链接:https://help.aliyun.com/document_detail/137529.html?spm=a2c4g.11174283.6.779.5d822b65wrPtVr


下面讲下for-each节点使用sql业务替换执行的案例情况:(不仅局限于sql、shell,其他类型节点亦支持替换,请根据业务场景进行评选替换、延伸等{sql->shell->分支节点等等})


业务场景:因业务需要,重新整合2020年1月1号、2号、3号的业务数据,重新归纳到一张新报表的三个天分区中。分区已经确定为 2020-01-01,2020-01-02,2020-01-03三个分区。(顺序执行循环三次依次写入对应分区)
执行流程:
1.上游使用赋值节点传出三个分区值,赋值语言选择shell,直接输出这三个分区值(下游for-each节点接入参数会以以为数组形式接收改echo值)

1-529.png





2.下游使用for-each节点,for-each节点实际业务节点为sql节点:

2-529.png


for-each节点需要引用上游赋值节点的传出值(配置如下):
3-529.png




3.业务逻辑部分:创建新分区表并写入对应数据,循环三次写入三个分区:

4-529.png

--打印出实际接收到的数据
SELECT '${dag.loopDataArray[${dag.offset}]}'
;
--建分区表
CREATE TABLE IF NOT EXISTS yewubaobiao_2020
(
id BIGINT
,name STRING
,other STRING
)
PARTITIONED BY
(
dt STRING
)
;
--筛选数据(请根据实际业务逻辑编写sql)
INSERT OVERWRITE TABLE yewubaobiao_2020 PARTITION(dt='${dag.loopDataArray[${dag.offset}]}')
SELECT id
,name
,other
FROM wpw_table1
WHERE dt = '${dag.loopDataArray[${dag.offset}]}'
;


解释说明:
示例中用到了两个系统参数。

  • ${dag.loopDataArray}:输入的数据集。(即上游赋值节点输入下来的一维数据形式值)
  • ${dag.offset}:偏移量。(从0开始,这里刚好可以用作一维数组的index下标)

for-each节点支持的系统参数可在对应文档中查找。

**循环次数是有什么控制的?
这里for-each节点循环次数由一维数组的元素个数控制。

发布运行任务,看下实际结果:
赋值节点:

5-529.png

for-each内部节点:(数据已被替换)

6-529.png

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

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

相关产品

  • 大数据开发治理平台 DataWorks