Azure Data Factory传递参数的方式主要有两种,通过Pipeline的Parameter和Variable来传递参数,通过Activity的输出来传递参数。要在Activity中引用Parameter、Variable或活动输出的值,需要通过“Add dynamic content”来实现。

Activity可以通过表达式获得动态上下文,使得Activity可以根据表达式的值得出不同的执行效果。

一,通过Parameter 和 Variable来传递参数

在Pipeline中,可以创建Parameter和Variable,Parameter是不可变的、只读的常量,而Variable的值是可变。从这个意义上来说,Parameter和Variable都是在Pipeline级别上创建的常量或变量。

1,创建Parameter和Variable

点击Pipeline的画布,底部弹出对话框,打开Parameters选项卡,创建Parameter,Parameter的Type有String、Int、Float、Bool、Array、Object和SecureString。Object代表的是对象类型,通常是指表类型。

打开Variables选项卡,创建Variable,Variable的Type只有String、Bool和Array。

2,引用Parameter和Variable

在“Add dynamic content”的文本框中输入公式,来引用Parameter或Variable的值。

举个例子,引用Paramter的值:

举个例子,引用Variable的值:

3,更新Variable的值

用于可以通过Set Variable 活动或Append Variable活动来更新Variable的值。其中,Set Variable活动用于更新变量值,而Append Variable用于向Array类型的变量增加item,即向数组的末尾增加一个元素。

二,通过Activity的输出来传递参数

在Pipeline中的Activity的输出,都可以通过“Add dynamic content”来添加Activity outputs:

通常活动的输出(output)是表结构,引用表中第一行的某一列的语法是:

@activiy('activity_name').output.firstRow.column_name 

三,应用表达式

数据工厂以JSON文件的格式来配置Activity的属性,一个Key-Value对表示一个属性。在Value中应用表达式,表达式中的字符串使用单引号:'string' 来表示,

1,表达式的理论知识

定义中的JSON的值(Value)可以是文字的(常量),或者在运行时求值的表达式,例如:

"name": "value"
"name": "@pipeline().parameters.password"

表达式可以出现在JSON字符串值中的任何位置,如果JSON值是一个表达式,则可以通过前导符号@来提取表达式的主体。如果需要以@开头的文字字符串,则必须使用@@对其进行转义。 以下示例显示如何评估表达式。

举个例子,myString参数是foo,myNumber参数是42,引用表达式运算的结果如下:

2,应用表达式

打开“Add dynamic content”对话框,输入表达式,如果表达式需要引用运行时的值,要以@字符开头。

上文遇到的表达式:

  • 引用变量: @variables('var_name')
  • 引用Pipeline的参数:@pipeline().parameters.para_name
  • 获得活动输出的第一行的某一列的值:@activiy('activity_name').output.firstRow.column_name
  • 根据表达式获得一个bool值:@equals(variables('strVar'),'abc')

参考文档:

Expressions and functions in Azure Data Factory

ADF 第八篇:传递参数(Pipeline的Parameter和Variable,Activity的output)和应用表达式的更多相关文章

  1. Flask最强攻略 - 跟DragonFire学Flask - 第八篇 实例化Flask的参数 及 对app的配置

    Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...

  2. XAML实例教程系列 - XAML传递参数到值转换类实例 八

    Kevin Fan分享开发经验,记录开发点滴 XAML实例教程系列 - XAML传递参数到值转换类实例 2012-06-28 05:25 by jv9, 508 阅读, 0 评论, 收藏, 编辑 继上 ...

  3. flask 第八篇 实例化flask时的参数配置

    Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...

  4. Delphi过程函数传递参数的八种方式

    今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...

  5. 【delphi】Delphi过程、函数传递参数的八种方式

    Delphi过程函数传递参数的八种方式

  6. Python 学习 第八篇:函数2(参数、lamdba和函数属性)

    函数的参数是参数暴露给外部的接口,向函数传递参数,可以控制函数的流程,函数可以0个.1个或多个参数:在Python中向函数传参,使用的是赋值方式. 一,传递参数 参数是通过赋值来传递的,传递参数的特点 ...

  7. PowerBI开发 第八篇:查询参数

    在PowerBI Desktop中,用户可以定义一个或多个查询参数(Query Parameter),参数的功能是为了实现PowerBI的参数化编程,使得Data Source的属性.替换值和过滤数据 ...

  8. Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)

    1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...

  9. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

随机推荐

  1. 【P1588】丢失的牛——区间dp/bfs

    (题面来自Luogu) 题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接 ...

  2. Java蓝桥杯01——第一题集锦:堆煤球、购物单、哪天返回、第几天、分数

    堆煤球(2016JavaB) 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100 ...

  3. HEXO | 给博客添加RSS

    Hexo是一个简洁.高效.易用的博客框架,同时它拥有十分丰富的主题环境,本次我们所谈到的是cards主题,但是该主题的原生环境里没有相关的rss配置,所以我们需要采用手动添加的方式,进而实现rss功能 ...

  4. 论如何优雅的抛出SpringBoot注解的异常

    平时我们在写代码的时候肯定要进行很多参数验证,最开始的时候我们一般都是这样处理的  如下图   看起来好像也没什么,但是  如果参数多了呢?你就会看到这样的校验 OMG!!!  有没有感觉稍微有点视觉 ...

  5. linq 查询的结果会开辟新的内存吗?

    一:背景 1. 讲故事 昨天群里有位朋友问:linq 查询的结果会开辟新的内存吗?如果开了,那是对原序列集里面元素的深拷贝还是仅仅拷贝其引用? 其实这个问题我觉得问的挺好,很多初学 C# 的朋友或多或 ...

  6. Python to Exe By Install PyInstaller on Win7-64bit

    本文主要记录为史振华在尝试转换PY文件为EXE文件过程中各种疑惑和最终解决方法,尝试了PYTHON 2.7/3.5/3.6及其相关依赖pywin32-222.win32/pywin32-222.win ...

  7. dart时间处理的几个方法

    一.时间处理的方法 1.获取当前时间 new DateTime.now(); 2.设置时间 new DateTime(2020, 11, 11, 12, 37 , 36); 3.解析时间 DateTi ...

  8. Python中可迭代对象是什么?

    Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问. __i ...

  9. 转:浅析windows下字符集和文件编码存储/utf8/gbk

    最近老猿在学习文件操作及网络爬虫相关知识,发现字符集及编码的处理非常重要,而老猿原来对此了解并不多,因此找了几篇文章看了一下,将老猿认为比较的相关文章转载一下.感谢各位原创大神! 1,字符集 这里主要 ...

  10. PyQt学习随笔:自定义Qt事件可以使用的事件类型的常量值范围

    除了<PyQt学习随笔:Qt事件QEvent.type类型常量及其含义资料速查>介绍的Qt已经定义的事件外,Qt还支持自定义事件. 为了方便起见,可以使用 registerEventTyp ...