Azure Data Factory 系列博客:

控制流的作用就是在管道的Activity之间设置约束条件,只有满足一定的约束条件时,才会执行相应的Activity。控制流主要分为优先约束和Activity。

一,控制流的优先约束

从直观上来看,控制流的优先约束使得Activity在Pipeline中按照一定的条件进行分支和连接。利用控制流可以实现如下场景:

如果Copy data活动执行成功,那么管道将沿着OnSuccess的控制流,执行“Send Success Email”这一分支,发送成功Copy操作的详细信息; 如果Copy data活动执行失败,那么管道将沿着OnFailure的控制流,执行“Send Fail Email”这一分支,发送Copy操作失败的详细信息。

1,OnSuccess分支

每一个Activity都会默认创建一个OnSuccess控制流,该控制流线的颜色是绿色的,拖动Activity右侧的绿色方块,UI会自动出现一个绿色的箭头,把箭头拖到下一个Web Activity上,就完成了OnSuccess控制流的设置。

2,添加OnFail分支

点击任意一个Activity右下方的+号,弹出"Add activity on"列表,选择 Failure,就会在Activity的右方弹出一个红色的矩形,跟OnSuccess控制流一样,拖放到下一个Activity上,就完成了OnFail控制流的设置。

3,利用控制流约束控制邮件的发送

如下图所示,利用控制流来控制邮件的发送 ,当Copy data Activity执行成功时,发送copy成功执行的消息;当Copy data Activity失败时,发送Copy 执行失败的消息。

二,控制流Activity

控制流的Activity主要用于变量、循环和条件:

  • Append variable:向 Array类型的变量中追加变量值
  • Set variable:设置变量的值
  • Filter:在管道中使用 Filter 活动,把筛选器表达式应用到输入数组。
  • Lookup:用于从数据源中检索数据集,返回执行查询或存储过程的结果,如果查找Activity的输出是单行的,那么该Activity的输出可以用于ForEach活动。
  • ForEach:循环执行内部的活动,循环的次数由items指定的集合决定,依次访问集合中每一个元素。
  • If condition:If-Else 分支,条件为True时,执行Activity1,条件为False时,执行另一个Activity。
  • Switch:分支切换,根据条件,执行不同分支的Activity
  • Validation:验证活动,它会阻止Pipeline的执行,直到应用的数据集存在或超时为止。
  • Until:Until 活动提供的功能与 do-until 循环结构以编程语言提供的功能相同。 它在循环中将执行一组活动,直到与活动相关联的条件的计算结果为 true,你可以在数据工厂中为 Until 活动指定超时值。

1,ForEach活动

ForEach 活动在管道中定义重复的控制流。 此活动用于循环访问集合,并在循环中执行指定的活动。 此活动的循环实现类似于采用编程语言的 Foreach 循环结构。点击ForEach图标内部的“笔”,向内部添加活动。

ForEach活动的核心配置是Items属性,该属性需要通过“Add dynamic content”来配置,用户可以通过系统变量(System variables)、Functions、Variables、和Activity outputs来作为Iteration。

要把Activity outpus作为ForEach活动的Iteration,首先要建立Activity和ForEach活动的优先约束,把上游Activity的输出作为Iteration,执行ForEach活动内的Activity,直到穷尽数据集的所有item。

2,Lookup活动

Lookup活动的作用就是从Table、Query或Stored procedure中查找出数据行,为了保证Lookup活动的查询性能,Lookup 活动的限制:最多可以返回 5000 行;如果结果集包含的记录超过此范围,将返回前 5000 行。Lookup活动的输出最多支持 4 MB 左右。如果大小超过此限制,则活动会失败。目前,Lookup活动在超时前的最长持续时间为 24 小时。

如果勾选"First row only",那么表示Lookup活动只返回第一行,如果不勾选,那么返回所有行,但是要满足Lookup活动的限制。

Looup活动输出的结果可以作为ForEach的迭代器。

参考文档:

Branching and chaining activities in an Azure Data Factory pipeline using the Azure portal

ADF 第七篇:控制流的更多相关文章

  1. 解剖SQLSERVER 第七篇 OrcaMDF 特性概述(译)

    解剖SQLSERVER 第七篇  OrcaMDF 特性概述(译) http://improve.dk/orcamdf-feature-recap/ 时间过得真快,这已经过了大概四个月了自从我最初介绍我 ...

  2. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  3. 第七篇 Replication:合并复制-订阅

    本篇文章是SQL Server Replication系列的第七篇,详细内容请参考原文. 订阅服务器就是复制发布项目的所有变更将传送到的服务器.每一个发布需要至少一个订阅,但是一个发布可以有多个订阅. ...

  4. 第七篇 Integration Services:中级工作流管理

    本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...

  5. 第七篇 SQL Server安全跨数据库所有权链接

    本篇文章是SQL Server安全系列的第七篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  6. 第七篇 SQL Server代理作业活动监视器

    本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这一系列的上一篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作 ...

  7. 用仿ActionScript的语法来编写html5——第七篇,自定义按钮

    第七篇,自定义按钮这次弄个简单点的,自定义按钮.其实,有了前面所定义的LSprite,LBitmap等类,定义按钮就很方便了.下面是添加按钮的代码, function gameInit(event){ ...

  8. Python之路【第七篇】:线程、进程和协程

    Python之路[第七篇]:线程.进程和协程   Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. [老老实实学WCF] 第七篇 会话

    老老实实学WCF 第七篇 会话 通过前几篇的学习,我们已经掌握了WCF的最基本的编程模型,我们已经可以写出完整的通信了.从这篇开始我们要深入地了解这个模型的高级特性,这些特性用来保证我们的程序运行的高 ...

随机推荐

  1. Vue 3.0 升级指南

    本文由葡萄城技术团队原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 2020年9月18日Vue 3.0正式发布,距离2016年10月1日Vue ...

  2. tar解压提示:tar (child): 无法连接至 xxxx: 解析失败

    如图提示: 错误原因:由于压缩文件中含有冒号导致 解决办法: 使用tar命令的–force-local选项

  3. 这篇建议java开发都看看,对Java方法及加深理解的很深,值得一看!

    方法和加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环 和 return 的区别 方法名:注意规范 见名知意 参数列表(参数类型,参数名)- 异常抛出 // Demo01 类 ...

  4. springsecurity+springsocial资料收集

    https://blog.csdn.net/tryandfight/article/details/80524573 https://niocoder.com/2018/01/09/Spring-Se ...

  5. PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...

  6. PyQt(Python+Qt)学习随笔:部件的大小策略sizePolicy的含义

    在Qt Designer中的每个部件,除了设置部件的位置(geometry)之外,还可以指定部件的大小策略sizePolicy.部件的sizePolicy用于说明部件在布局管理中的缩放方式,当部件没有 ...

  7. Day5 Scrum 冲刺博客

    一.站立式会议# 1. 会议照片 2. 工作进度+燃尽图 团队成员 昨日完成工作 今日工作计划 遇到的困难 周梓波 将方块分类并抽象成类 将方块旋转变形 逻辑漏洞较多 纪昂学 绘制游戏背景,方块,状态 ...

  8. clion2020最新安装破解版教程 内含激活码、破解补丁、无限重置时间插件

    clion是一款开发C.C++等相关程序的利器,到目前为止已经更新到2020.3版本啦!还没有升级的小伙伴们赶紧升级啦,本文教大家如何安装clion2020.3版本并且破解,此方法亲测100%可以永久 ...

  9. FirstCode异常 此引用关系将导致不允许的周期性引用

    FirstCode异常 此引用关系将导致不允许的周期性引用 一般由多表里的外键互相引用引起. 解决方法: 1.去掉对应数据类里的外键对应的对象属性. 2.去掉该外键. [Table("TAs ...

  10. 树的直径,LCA复习笔记

    前言 复习笔记第6篇. 求直径的两种方法 树形DP: dfs(y); ans=max( ans,d[x]+d[y]+w[i] ); d[x]=max( d[x],d[y]+w[i] ); int di ...