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有两个活动:

  1. 表达式:提供用于判断的表达式。这个表达式是大小写敏感的。
  2. 添加事件:就是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

Azure Data PlatformETL工具(11)——ADF 数据流

Azure Data PlatformETL工具——使用Azure Data Factory数据流传输数据