Azure Data PlatformETL工具(16)——ADF 变量

Posted 發糞塗牆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Data PlatformETL工具(16)——ADF 变量相关的知识,希望对你有一定的参考价值。

本文属于【Azure Data Platform】系列。
接上文:【Azure Data Platform】ETL工具(15)——ADF Lookup详解
本文介绍ADF 的变量

前言

前面我们演示了很多参数,但是也提及了“变量”,那么这篇文章先介绍一下变量的内容,以便后续能够更加清晰地知道如何使用参数和变量。在编程的时候,比如写一个存储过程,我们会对存储过程传输参数,然后在存储过程内部,对参数进行处理,生成一些变量。当然有些可以直接使用参数。

那变量和参数到底有什么区别?

参数:是传递到管道中的外部值。它们不能在管道内更改
变量:是位于管道内部的内部值。它们可以在该管道内进行更改

参数和变量可以完全分开,也可以一起工作。例如,可以将参数传递到管道中,然后在设置的变量中使用该参数值或追加变量活动。

单纯从ADF上说,变量有两类,一类是系统变量,一类是用户自定义变量。当我们添加动态内容时,可以看到类似下面的选项。系统变量是内置的,并且它们有前缀。

比如选择pipeline的名字,首先要输入@pipeline,因为它是属于@pipeline下面的:

常见的系统变量使用语法为:
@pipeline().DataFactory
@pipeline().Pipeline
@pipeline().RunId
@pipeline().TriggerId
@pipeline().TriggerName
@pipeline().TriggerTime
@pipeline().TriggerType

设置变量和追加变量是两个主要的变量使用活动。

用户变量跟系统变量不同,下面演示一下。新建一个管道 PL_Vars,变量有三种类型可选:字符串,布尔值,数组。还可以设置默认值。


变量一旦设定,可以通过:@variable(‘变量名’)来调用。接下来分别演示一下3中类型。

字符串用户自定义变量

建一个表存储string类型:

Create Table Tb_Var_Str
(str Varchar(10),
Value Varchar(50))

建一个存储过程,接收变量并以值的形式插入上面的表:

CREATE PROCEDURE sp_var_str @str  VARCHAR(10),@Value VARCHAR(50)
as
INSERT INTO Tb_Var_Str
SELECT @str  ,@Value 

然后在管道中拖拽一个存储过程活动。点击空白处添加变量str,默认值为hello world。

然后修改这个存储过程活动,


点击【导入】,可以获取参数,我们对Value添加动态内容。


然后调试这个管道:


查询表,可以看到hello world已经插入进去。

同理,接下来看一下另外两个变量。

布尔值用户自定义变量

沿用上面的管道。


调试管道并查询结果:

数组型用户自定义变量

添加数组类型变量:

如果有编程基础,就知道数组是可以通过arr[1]这类形式调用的,那么我们下面也试一下是否能查询到数组中的某个值:

我们看到,数组的某个值已经插入进去,同时也可以说明,在ADF中,数组的第一个值的起始位是0。

总结

在本文中,快速演示了变量的使用。当然,没有必要在一篇文章中全部介绍完,我们可以在后续一遍演示一遍介绍。

以上是关于Azure Data PlatformETL工具(16)——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数据流传输数据