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

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
简介: 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钉钉交流群】

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
3月前
|
DataWorks 大数据 API
DataWorks RunTriggerNode接口是只能调度 http触发器节点吗?
DataWorks RunTriggerNode接口是只能调度 http触发器节点吗?
139 1
|
3月前
leetcode-SQL-608. 树节点
leetcode-SQL-608. 树节点
16 0
|
1月前
|
SQL 运维 DataWorks
DataWorks常见问题之dataworks运维中心指定时间“运行到该节点”失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
DataWorks 关系型数据库 分布式数据库
在DataWorks中,如果节点成环,即某个节点既是上游节点又依赖了自己的下游节点
【2月更文挑战第31天】在DataWorks中,如果节点成环,即某个节点既是上游节点又依赖了自己的下游节点
16 6
|
1月前
|
分布式计算 DataWorks 数据可视化
DataWorks常见问题之dataworks三个节点运行失败没法终止如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
JSON 分布式计算 DataWorks
DataWorks常见问题之依赖的自动节点修改为统一调度节点失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
SQL 分布式计算 DataWorks
dataworks常见问题之通过sql查询查看任务依赖关系如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
29 1
|
1月前
|
SQL JSON 运维
dataworks常见问题之selectdb前置sql参数无法获取如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
28 0
|
2月前
|
SQL DataWorks 关系型数据库
dataworks数据集问题之sql查询报错如何解决
DataWorks数据集是指在阿里云DataWorks平台内创建、管理的数据集合;本合集将介绍DataWorks数据集的创建和使用方法,以及常见的配置问题和解决方法。
48 1
|
1月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。

相关产品

  • 大数据开发治理平台 DataWorks