【Azure Data Platform】ETL工具(17)——ADF 迭代和条件活动(1)

本文属于【Azure Data Platform】系列。
接上文:【Azure Data Platform】ETL工具(16)——ADF 变量
本文简要介绍ADF的迭代和条件活动

前言

由于时间关系,接下来不打算一个一个介绍,而是按分组来介绍一些活动。比如本文的“迭代和条件”。如下图,这个分组下面包含了:
筛选(Filter):可以对数据进行筛选并且传入输入数组中。
ForEach:Foreach 活动用于循环访问活动中指定的集合。在 Foreach 活动中,可以指定每一次的迭代需要执行一个或者多个其他活动。
If Condition:就是编程中的if else,判断条件的true 还是false,然后根据判断结果执行对应的操作。
切换(Switch):类似于SQL中的case when,与if condition相比,if condition只判断真假两个值,但是切换活动,可以判断多种值。
截止(Until):这个类似于编程语言中的do-while, 会一直执行,直到判断结果为true才停下来。所以对于这个活动,要注意控制停止条件,以免进入死循环。
在这里插入图片描述
接下来我们简要演示一下其中的两个活动。

筛选(Filter)

创建一个Filter活动,设置一个全局参数(点击空白处),名为ARR,数组类型,值为[1,2,3,4,5]

在这里插入图片描述

然后对筛选活动进行设置,在【项】处添加动态内容,直接点击参数ARR即可生成。
在这里插入图片描述
对【条件】添加动态内容,假设我们只要大于3的值,那么可以手动输入@greater(item(),3):
在这里插入图片描述
调试并检查输出:
在这里插入图片描述
可以看到,输出结果为4,5,符合我们的需求。
在这里插入图片描述

ForEach

  • 顺序的:顺序执行循环还是并行执行循环(默认值),如果有多个循环在这个活动里面,那么如果这个取消勾选(也就是下图状态),则会同时运行这几个循环。
  • 批处理数:只有上面的选项没有勾选才会出现,用于指定并行执行循环的个数。默认是20,最大值是50。
  • 项:必须是一个数组表达式。

在这里插入图片描述
因为ForEach接下来还要做一些响应,所以建一个简单的存储过程并配置到存储过程活动中,同时创建一个表来存储结果:

CREATE TABLE [dbo].[TB_ForEach](
[VALUE] [int] NULL
) 
CREATE PROCEDURE [dbo].[sp_insert_foreach] @VALUE INT
AS  
INSERT INTO TB_ForEach(VALUE)
VALUES (@VALUE)

设置ForEach活动,传入的值是前面用的数组[1,2,3,4,5],按以下方式调用:
在这里插入图片描述
然后为ForEach活动添加后续相应:
在这里插入图片描述

配置存储过程活动,参数值是@item, 这个值来自于外层ForEach的迭代传入。
在这里插入图片描述

运行pipeline,可以看到每次迭代都有一行记录。同时我们检查DB中的结果,也是符合预期的:

在这里插入图片描述
但是因为没有勾选上面“顺序的”,也就是会并行运行,所以插入顺序并不是有序的。
在这里插入图片描述

清空表然后勾选后再调试:
在这里插入图片描述
可以看到插入是有序的:
在这里插入图片描述

关于ForEach活动就简介到这里。

下一文会继续介绍其他的活动,但是依旧沿用这里的一些设置。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值