Azure Data PlatformETL工具(18)——ADF 迭代和条件活动
Posted 發糞塗牆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Data PlatformETL工具(18)——ADF 迭代和条件活动相关的知识,希望对你有一定的参考价值。
本文属于【Azure Data Platform】系列。
接上文:【Azure Data Platform】ETL工具(17)——ADF 迭代和条件活动(1)
本文接上文,继续简要介绍ADF的迭代和条件活动
If Condition
这次用的不是参数,而是变量,如下图所示,点击空白处然后选择变量,新建一个变量Var,类型为字符串,值为Y。
创建一个表和存储过程来验证结果:
CREATE TABLE [dbo].[TBL_If_Activity](
[VALUE] VARCHAR(10) NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[sp_insert_if] @VALUE VARCHAR(10)
AS
INSERT INTO TBL_If_Activity (VALUE)
VALUES (@VALUE)
配置两个存储过程活动,使用上面的存储过程,当If Condition的True活动时,直接传入true值。False活动时,调用存储过程直接传入false值,以便验证。
因为变量值是Y, 而If condition的判断也是对Y进行校验,所以运行结果会是true:
证明它走的确实是True的这个分支,那下面修改一下判断条件让它进行False分支:
结果是预期的:
Switch 切换
switch 类似于SQL语言中的case when,这次我们用参数,参数名为color,值为R。
Switch有两个活动:
- 表达式:提供用于判断的表达式。这个表达式是大小写敏感的。
- 添加事件:就是case when的对应逻辑。default是默认操作。
用前面定义的参数color作为表达式的判断:
添加一个事件:
同样, 使用存储过程和一个表来记录验证结果:
CREATE TABLE [dbo].[TB_Switch](
[VALUE] [varchar](10) NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[sp_insert_swith] @VALUE VARCHAR(10)
AS
INSERT INTO TB_Switch (VALUE)
VALUES (@VALUE)
分别为Default和新加的判断R进行存储过程配置,对应的值就是Default和R并传入到存储过程中。
调试并查询表中数据可以看到结果是预期的。
接下来把参数值从R改成A, 因为Switch并没有配置对A的处理,所以它应该会调用default那部分:
结果正确:
Switch相对比较简单,我们只需要对各种情况进行分别配置即可。
Until(截止)
Until是迭代和条件活动中最后一个活动。
它有两个设置项,表达式和超时,表达式的值计算必须为真或假。超时在下图已经有解释了。
沿用上面的Color参数,添加判断:
@equals(pipeline().parameters.Color,‘R’)
对Switch的下一个活动,添加一个存储过程活动,插入的值就是上面的参数 R。
调试并检查结果:
下面传入一个使其为False的值,比如A,
可以看到这个管道一直执行,因为我没有做其它处理,所以它会一直循环,直到“超时”设置,也就是7天之后才会停止。
表里面也有大量的A值在里面:
所以对于这类循环类的操作,第一步应该是考虑如何让它“停下来”,最简单的就是设置合理的超时时间。
总结
本篇和上篇文章介绍了ADF 迭代和条件活动,并且做了简要演示。这些活动更多的是对编程语言的图形化、工具化还有一定的处理优化提升。如果有相关编程经验,理解起来应该不会太难。
以上是关于Azure Data PlatformETL工具(18)——ADF 迭代和条件活动的主要内容,如果未能解决你的问题,请参考以下文章
Azure Data PlatformETL工具(19)——Azure Databricks
Azure Data PlatformETL工具(20)——创建Azure Databricks
Azure Data PlatformETL工具(20)——创建Azure Databricks
Azure Data PlatformETL工具——重新认识Azure Data Factory