閱讀英文

共用方式為


Azure Data Factory 和 Azure Synapse Analytics 中的巢狀活動

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版

本文可協助您瞭解 Azure Data Factory 和 Azure Synapse Analytics 中的巢狀活動,以及如何使用這些活動、限制和最佳做法。

概觀

Data Factory 或 Synapse 工作區管線可以包含控制流程活動,讓其他活動包含在其中。 請將這些巢狀活動視為容器,這些容器會保存一或多個可根據最上層控制流程活動執行的其他活動。

請參閱下列範例,這些範例具有包含一個活動的 If 活動。

此螢幕快照顯示內含活動內含的 If Condition 活動範例。

控制流程活動

下列控制流程活動支援巢狀活動:

控制活動 描述
For Each ForEach 活動會定義管線中重複的控制流程。 此活動用於逐一查看整個集合,然後以迴圈執行指定的活動。 此活動的迴圈實作與程式設計語言中的 Foreach 迴圈結構相似。
If Condition 活動 「If 條件」可用於根據評估為 True 或 False 的條件進行分支。 If 條件活動所提供的功能,與 If 陳述式在程式設計語言中提供的功能相同。 其會在條件評估為 true 時執行一系列的活動,並在條件評估為 false. 時執行另一系列的活動
Until 活動 實作 Do-Until 迴圈,類似於程式設計語言中的 Do-Until 迴圈結構。 它會以迴圈的方式執行一系列活動,直到與該活動相關聯的條件評估為 True 為止。 您可以指定 Until 活動的逾時值。
Switch 活動 Switch 活動所提供的功能與 Switch 陳述式在程式設計語言中提供的功能相同。 其功能會評估一組活動,這組活動與符合條件評估的案例相對應。

有兩種主要方式可以瀏覽至巢狀活動中所包含的活動。

  1. 每個支援巢狀活動的控制流程活動都會有活動索引標籤。選取活動索引標籤時將向您提供鉛筆圖示,以向下切入至內部活動面板。 此螢幕快照顯示範例 If Condition 活動,其中具有鉛筆圖示上要流覽的醒目提示。

  2. 從管線畫布上的活動中,您可以選取鉛筆圖示,向下切入內部活動面板。 此外,ForEach 和 Until 活動支援對活動按兩下,即可向下切入至內部活動面板。 顯示管線畫布上 [If 條件] 活動醒目提示鉛筆圖示的範例螢幕快照。

您的管線畫布接著會切換至您選取的內部活動容器內容。 頂端也會有您可以選取的階層連結軌跡,讓您往回導覽至父管線。 此螢幕快照顯示 true 分支內的 If Condition 活動範例,並在階層連結上醒目提示以巡覽回父管線。

巢狀活動內嵌限制

針對巢狀處理另一個巢狀活動,支援巢狀的活動有一些條件約束 (ForEach、Until、Switch 和 If 條件)。 具體而言:

  • 如果 Switch 可以在 ForEach 或 Until 活動內使用。
  • 如果 Switch 無法在 If 或 Switch 活動內使用。
  • ForEach 或 Until 僅支援單一巢狀層級。

請參閱下方的最佳做法一節,了解如何使用其他管線活動來啟用此案例。 此外,驗證活動不能放在巢狀活動內。

如果 Switch 可以在 ForEach 或 Until 活動內使用。 ForEach 或 Until 僅支援單一層級巢狀 If 和 Switch 活動無法在 If 和 Switch 活動內使用。

多重巢狀活動的最佳做法

若要擁有支援超過一層深度巢狀的邏輯,您可使用巢狀活動內的執行管線活動呼叫其他管線,接下來就可以擁有其他層的巢狀活動。 這個模式的常見使用案例是使用 ForEach 迴圈,您需要在內部活動中以邏輯為基礎額外進行迴圈。

這個模式的範例會是,如果您有具有資料夾清單的檔案系統,而且每個資料夾都有您想要處理的多個檔案。 您通常會透過執行下列動作來完成這個模式。

  1. 先使用取得中繼資料活動,取得只有資料夾的清單。
  2. 將取得中繼資料活動的結果傳遞至 ForEach 活動的 Items 清單。 然後,每個反覆項目都代表要處理的單一資料夾。
  3. 在 ForEach 活動的內部活動面板中,使用另一個取得中繼資料活動來取得資料夾內的檔案清單。
  4. 呼叫具有陣列參數的執行管線活動,並將這些檔名的陣列傳遞至其中。
  5. 在子管線中,您可以使用已經有陣列清單傳遞至其中的其他巢狀活動 (像是 ForEach),逐一查看檔案並執行一或多組的內部活動。

父管線看起來會類似於下列範例。

此螢幕快照顯示在 ForEach 循環中呼叫子管線的範例父管線。

子管線看起來會類似於下列範例。

此螢幕快照顯示具有 ForEach 循環的範例子管線。

請參閱下列教學課程中的逐步指示,以建立管線及資料集。