Azure Data Factory 系列博客:
- ADF 第一篇:Azure Data Factory介紹
- ADF 第二篇:使用UI創建數據工廠
- ADF 第三篇:Integration runtime和 Linked Service
- ADF 第四篇:管道的執行和觸發器
- ADF 第五篇:轉換數據
- ADF 第六篇:Copy Data Activity詳解
- ADF 第七篇:控制流概述
- ADF 第八篇:傳遞參數(Pipeline的Parameter和Variable,Activity的output)和應用表達式
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')
參考文檔: