Azure Data Factory 和 Azure Synapse Analytics 中的設定變數活動
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版!
使用 [設定變數] 活動,針對 Data Factory 或 Synapse 管線中所定義的「字串」、「布林」或「陣列」類型設定現有變數值,或設定管線傳回值 (預覽)。
使用 UI 來建立設定變數活動
若要在管線中使用「設定變數」活動,請完成下列步驟:
- 選取管線畫布的背景,並使用 [變數] 索引標籤來新增變數:
在管線 [活動] 窗格中搜尋 [設定變數],然後將 [設定變數] 活動拖曳至管線畫布。
在畫布上選取 [設定變數] 活動 (如果尚未選取的話),然後選取 [設定] 索引標籤來編輯其詳細資料。
針對 [變數類型],選取 [管線變數]。
選取 Name 屬性的變數。
使用 UI 來設定管線傳回值
在下列情節中,我們已展開 [設定變數] 活動以包括名為 [管線傳回值] 的特殊系統變數,其允許從子管線到通話管線的通訊。
使用變數之前,您不需要定義變數。 如需詳細資訊,請參閱管線傳回值
類型屬性
屬性 | 描述 | 必要 |
---|---|---|
NAME | 管線中的活動名稱 | 是 |
description | 說明活動用途的文字 | 否 |
type | 必須設為 [SetVariable] | 是 |
variableName | 此活動所設定的變數名稱 | 是 |
value | 變數所指派至的字串常值或運算式物件值 | 是 |
遞增變數
涉及變數的常見情節是在 Until 或 ForEach 活動內使用變數作為迭代器。 在 [設定變數] 活動中,您無法參考要在 value
欄位中設定的變數,即自我參考。 若要解決此限制,請設定暫存變數,然後建立第二個 [設定變數] 活動。 第二個 [設定變數] 活動會將迭代器的值設定為暫存變數。 以下是此模式的範例:
- 首先,您定義兩個變數:一個用於迭代器,另一個用於暫存記儲存體。
- 然後,您使用兩個活動來遞增值
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "Increment J",
"type": "SetVariable",
"dependsOn": [],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "temp_j",
"value": {
"value": "@add(variables('counter_i'),1)",
"type": "Expression"
}
}
},
{
"name": "Set I",
"type": "SetVariable",
"dependsOn": [
{
"activity": "Increment J",
"dependencyConditions": [
"Succeeded"
]
}
],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "counter_i",
"value": {
"value": "@variables('temp_j')",
"type": "Expression"
}
}
}
],
"variables": {
"counter_i": {
"type": "Integer",
"defaultValue": 0
},
"temp_j": {
"type": "Integer",
"defaultValue": 0
}
},
"annotations": []
}
}
變數的範圍是管線層級。 這表示它們不具執行緒安全性,而且如果從平行反覆運作活動 (例如 foreach 迴圈) 進行存取,特別是當該值也在該 foreach 活動內修改時,可能會造成非預期和不想要的行為。
相關內容
了解其他相關的控制流程活動: