ADF 第八篇:傳遞引數(Pipeline的Parameter和Variable,Activity的output)和應用表示式

悅光陰發表於2020-12-25

Azure Data Factory 系列部落格:

 

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

相關文章