分享方式:


建立輪轉視窗觸發程序相依性

適用於: Azure Data Factory Azure Synapse Analytics

提示

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

本文提供在輪轉視窗觸發程序上建立相依性的步驟。 如需輪轉視窗觸發程序的一般資訊,請參閱建立輪轉視窗觸發程序

若要建置相依性鏈結,並確保系統只會在成功執行服務內的另一個觸發程序之後才執行某個觸發程序,請使用此進階功能來建立輪轉視窗相依性。

如需如何使用輪轉視窗觸發程序建立相依管線的示範,請觀看下列影片:

在 UI 中建立相依性

若要建立對觸發程序的相依性,請選取 [觸發程序]>[進階]>[新增]。 然後選擇要相依的觸發程序以及適當的偏移量和大小。 選取 [完成],並發佈變更,以讓相依性生效。

顯示相依性建立視窗的螢幕擷取畫面。

輪轉視窗相依性屬性

含相依性的輪轉視窗觸發程序具有下列屬性:

{
    "name": "MyTriggerName",
    "properties": {
        "type": "TumblingWindowTrigger",
        "runtimeState": <<Started/Stopped/Disabled - readonly>>,
        "typeProperties": {
            "frequency": <<Minute/Hour>>,
            "interval": <<int>>,
            "startTime": <<datetime>>,
            "endTime": <<datetime - optional>>,
            "delay": <<timespan - optional>>,
            "maxConcurrency": <<int>> (required, max allowed: 50),
            "retryPolicy": {
                "count": <<int - optional, default: 0>>,
                "intervalInSeconds": <<int>>,
            },
            "dependsOn": [
                {
                    "type": "TumblingWindowTriggerDependencyReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan - optional>>,
                    "referenceTrigger": {
                        "referenceName": "MyTumblingWindowDependency1",
                        "type": "TriggerReference"
                    }
                },
                {
                    "type": "SelfDependencyTumblingWindowTriggerReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan>>
                }
            ]
        }
    }
}

下表提供定義輪轉視窗相依性所需之屬性的清單。

屬性名稱 描述 類型​ 必要
type 所有現有的輪轉視窗觸發程序都會顯示在此下拉式清單中。 選擇要採取相依性的觸發程序。 TumblingWindowTriggerDependencyReferenceSelfDependencyTumblingWindowTriggerReference Yes
offset 相依性觸發程序的偏移。 以時間範圍格式提供值。 負偏移和正偏移都是允許的。 如果觸發程序相依自身,則此屬性是必需的。 在所有其他情況下,它是選擇性的。 自我相依性應一律為負值偏移。 如果未指定任何值,則視窗會與觸發程序本身相同。 Timespan
(hh:mm:ss)
自我相依性:是
其他:否
size 相依性輪轉視窗的大小。 提供正時間範圍值。 這個屬性為選擇性。 Timespan
(hh:mm:ss)
No

注意

輪轉視窗觸發程序最多可以取決於五個其他觸發程序。

輪轉視窗自我相依性屬性

在觸發程序不應在先前的視窗成功完成之前就移至下一個視窗的案例中,請建置自我相依性。 與前一小時內本身先前執行成功相依的自我相依性觸發程序,會有下列程式碼中所指出的屬性。

注意

如果您的已觸發管線依賴先前觸發視窗中管線的輸出,則建議您只使用輪轉視窗觸發自我相依性。 若要限制平行觸發程序執行,請設定最大觸發程序並行。

{
    "name": "DemoSelfDependency",
    "properties": {
        "runtimeState": "Started",
        "pipeline": {
            "pipelineReference": {
                "referenceName": "Demo",
                "type": "PipelineReference"
            }
        },
        "type": "TumblingWindowTrigger",
        "typeProperties": {
            "frequency": "Hour",
            "interval": 1,
            "startTime": "2018-10-04T00:00:00Z",
            "delay": "00:01:00",
            "maxConcurrency": 50,
            "retryPolicy": {
                "intervalInSeconds": 30
            },
            "dependsOn": [
                {
                    "type": "SelfDependencyTumblingWindowTriggerReference",
                    "size": "01:00:00",
                    "offset": "-01:00:00"
                }
            ]
        }
    }
}

使用情況案例和範例

下列場景顯示輪轉視窗相依性屬性的使用方式。

相依性偏移

顯示偏移範例的圖表。

相依性大小

顯示大小範例的圖表。

自我相依性

顯示自我相依性範例的圖表。

另一個輪轉視窗觸發程序上的相依性

以下範例顯示一個相依於另一個每日作業的每日遙測處理作業,其會對過去七天的輸出進行彙總,並產生七天的滾動視窗資料流。

顯示相依性範例的圖表。

對其本身的相依性

以下範例顯示一個作業輸出資料流中沒有間隔的每日作業。

此圖顯示輸出資料流中沒有間隔的自我相依性範例。

監視相依性

您可以從觸發程序執行監視頁面來監視相依性鏈結和對應的視窗。 移至 [監視]>[觸發程序執行]。 如果輪轉視窗觸發程序具有相依性,則觸發程序名稱會具有一個相依性監視檢視的超連結。

顯示監視器觸發程序執行的螢幕擷取畫面。

按一下觸發程序名稱,以檢視觸發程序相依性。 右側窗格顯示了觸發程序執行資訊,例如執行識別碼、視窗時間和狀態。

顯示 [監視器相依性清單] 檢視的螢幕擷取畫面。

您可以查看相依性的狀態以及每個相依觸發程序的視窗。 如果其中一個相依性觸發程序失敗,您必須成功重新執行它才能執行相依觸發程序。

輪轉視窗觸發程序會在逾時之前等候相依性七天。七天後,觸發程序執行會失敗。

注意

當輪轉視窗觸發程序處於等候相依性狀態時無法取消。 相依活動必須先完成,才能取消輪轉視窗觸發程序。 此限制是有意設計的,以確保相依活動一旦啟動即可完成。 它還有助於減少意外結果的可能性。

若要以更視覺化的方式檢視觸發程序相依性排程,請選取 [甘特圖] 檢視。

顯示監視器相依性甘特圖的螢幕擷取畫面。

透明框顯示了每個下游相依觸發程序的相依性視窗。 上圖中顯示的實色框顯示了個別的視窗執行。 以下是解譯甘特圖檢視的一些秘訣:

  • 當相依視窗處於擱置中執行中狀態時,透明框會呈現藍色。
  • 相依觸發程序的所有視窗都成功之後,透明框會變成綠色。
  • 當相依視窗失敗時,透明框會呈現紅色。 尋找一個紅色的實心框來識別失敗視窗執行。

若要在甘特圖檢視中重新執行某個視窗,請選取該視窗的實色框。 會彈出一個動作窗格,其中包含資訊和重新執行選項。