全部產品
Search
文件中心

DataWorks:觸發式工作流程

更新時間:Oct 28, 2025

DataWorks支援周期調度觸發式調度兩種工作流程調度類型。與按固定時間啟動並執行周期工作流程不同,觸發式工作流程是一種按需執行的模式,由手動、API調用、事件訊息等外部訊號所觸發,為資料處理提供了更高的即時性和靈活性。

功能介紹

DataWorks支援兩種工作流程調度模式:周期調度觸發式調度

觸發式調度是一種按需執行、不定時的任務調度模式。與按固定時間自動啟動並執行周期性調度工作流程不同,觸發式工作流程的啟動由一個即時的外部訊號所驅動。這種模式提供了高度的靈活性,適用於需要程式化整合或對外來事件做出響應的情境。

支援以下三種觸發方式:

  • 手動觸發:在DataWorks控制台手動運行工作流程。

  • OpenAPI觸發:外部系統通過調用OpenAPI介面觸發工作流程運行。

  • 事件觸發:通過預配置的觸發器監聽特定事件(如OSS檔案上傳,Kafka等訊息佇列訊息到達等),自動啟動工作流程。工作流程發布至生產環境後,事件觸發機制才會生效。

觸發式工作流程內部節點(如PyODPS、Shell)的配置與普通工作流程完全相同,但無需配置調度周期。

配額與限制

  • 節點數量:單個工作流程最多支援400個內部節點。建議將節點數控制在100個以內,以簡化工作流程的展示與維護。

  • 並發執行個體:最大並行執行個體數上限為100,000。

  • 生效環境:事件觸發機制僅在生產環境(營運中心)生效。工作流程發布後才能被事件自動觸發。

  • 配置限制:在節點層級進行調度配置時,僅支援配置優先順序,不支援配置優先順序加權策略

功能入口

  1. 進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的快速進入 > Data Studio,進入Data Studio。

  2. 在左側導覽列單擊image,然後在專案目錄右側單擊image > 建立工作流程,進入建立工作流程頁面。

    首次使用專案目錄時,也可以直接單擊建立工作流程按鈕進行建立。

建立觸發式工作流程

  1. 建立工作流程頁面,選擇調度類型觸發式調度

  2. 輸入工作流程名稱,單擊確認建立。

  3. (可選)單擊畫布右側調度配置,單擊調度策略,在下拉式清單中,選擇一個已建立好的觸發器與當前工作流程進行關聯。

設計觸發式工作流程

  1. 節點編排

    在工作流程看板左側,根據需要開發的任務類型選擇對應的節點,將其拖拽至畫布中,並通過手動連線的方式快速配置節點間的依賴關係。

    節點配置方式與普通工作流程類似,但無需配置調度周期。

  2. 工作流程調度參數

    在工作流程看板右側,單擊調度配置按鈕,在調度參數介面單擊添加參數,可以為工作流程設定調度參數。該參數的範圍為當前工作流程,其內部所有節點均可引用。

    說明

    工作流程內部節點若配置了同名調度參數,其優先順序會高於工作流程調度參數。

  3. 關聯觸發器(可選)

    要使工作流程由事件自動觸發,需先在營運中心配置觸發器,再於工作流程畫布右側的調度配置 > 調度策略中,選擇一個已建立的觸發器進行關聯。

  4. 優先順序與並發數(進階配置)

    當多個工作流程或任務同時被觸發,導致系統資源出現瓶頸時,您可以通過優先順序加權策略實現智能化的資源調度,確保最重要的任務優先執行。

    • 保障核心業務:為核心業務的工作流程設定一個更高的優先順序,使其總能優先於其他非核心工作流程運行。

    • 縮短關鍵流程耗時:在同一個工作流程執行個體內部,通過優先順序加權策略,您可以影響節點的執行順序。例如,使用向下加權策略,可以讓處於關鍵路徑上、擁有更多上遊依賴的節點獲得更高的動態權重,從而優先執行,有效縮短整個工作流程的運行時間長度。

      配置項

      功能說明

      優先順序

      定義工作流程執行個體在調度隊列中的絕對優先順序別。可選層級為1、3、5、7、8(數字越大,優先順序越高)。高優先順序的任務/工作流程總會優先於低優先順序的任務/工作流程擷取調度資源。

      優先順序加權策略

      定義同一優先順序下,工作流程內部各節點(Task)權重的動態計算方式。權重越高的節點將優先獲得執行機會。

      • 不加權:所有節點的權重均為固定基準值。

      • 向下加權:節點的權重會動態調整,其上遊依賴的節點越多,權重越高。此策略有助於DAG(有向非循環圖)中關鍵路徑上的節點優先執行。權重計算方式為:權重初始值 + 其上遊所有節點的優先順序之和

      最大並行執行個體數

      控制此工作流程在同一時間可啟動並執行最大執行個體數量,用於並發控制和資源保護。當運行中的執行個體數達到上限時,後續被觸發的新執行個體將進入等待狀態。支援設定不限制或自訂一個最大值(上限100,000)。

      說明

      設定上限時若超過資源群組最大可承受能力,則實際的並發瓶頸將由資源群組的物理上限決定。

    DataWorks的優先順序系統遵循層級覆蓋規則:運行時指定 > 節點級配置 > 工作流程級配置

    1. 工作流程級配置 (基準):在工作流程的調度策略中配置,作為所有節點的預設設定。

    2. 節點級配置 (局部):在工作流程內部單個節點的調度配置 > 調度策略中為特定節點單獨設定更高優先順序,會覆蓋工作流程層級的設定。

    3. 運行時指定 (臨時):在營運中心手動觸發運行時,通過運行時重設優先順序開關指定的配置。該配置優先順序最高,僅對當次運行生效,不修改任何永久配置。

開發觸發式工作流程

  1. 節點開發

    在節點編輯頁面,快速編輯節點代碼。在代碼開發時,需注意以下幾點:

    • 代碼文法取決於您選擇的節點類型。不同類型的任務配置不同,配置詳情請參見節點開發

    • 可以啟用Copilot智能編程助手,以獲得智能代碼補全建議,提升開發效率。

    • 對於大多數節點類型,您都可以使用 ${變數名}的方式定義變數,以便在下一步驟調試任務代碼時可以代入不同的賦值快速調試。

    • 在執行調度任務時,您可通過${workflow.參數名}方式在內部節點擷取工作流程參數的賦值。

  2. 使用觸發器傳遞的參數(可選) 觸發器可以將事件資訊(如檔案路徑、訊息內容)作為事件參數傳遞給工作流程內部節點使用。

    以Kafka觸發器為例,Kafka訊息為:

    訊息體格式可在觸發器詳情的訊息格式樣本中查看。
    {
      "headers": {
        "headers": [],
        "isReadOnly": false
      },
      "partition": 2,
      "offset": 1,
      "topic": "demo-topic",
      "key": "demo-key",
      "value": "{\"number\":100,\"name\":\"EventBridge\"}",
      "timestamp": 1713852706576
    }

    可以在工作流程內部節點中通過${workflow.trigger.message}參數擷取到完整的訊息體,也可通過${workflow.trigger.message.xxx}擷取到訊息體內指定欄位的值,當觸發器觸發任務運行時,參數會自動替換。舉例如下:

    ${workflow.tigger.message}  #擷取整個訊息體
    ${workflow.tigger.message.key}  #擷取JSON中key的值,結果為:demo-key
    ${workflow.tigger.message.value}  #擷取JSON中key的值,結果為:{"number":100,"name":"EventBridge"}

調試觸發式工作流程

  1. 節點調試

    代碼編輯完成後,您可單擊節點編輯頁右側的調試配置,配置資源群組、指令碼參數等調試參數。配置完成後,可單擊工具列中的運行按鈕,此時將使用您在調試配置中的調試參數運行節點。

  2. 調試工作流程

    若需要在資料開發調試觸發式工作流程,可以單擊工作流程畫布上方工具列的image運行表徵圖,在彈窗中填寫觸發器訊息體,來類比事件產生。

    image

發布觸發式工作流程

工作流程調試完成後,擊工具列中的image發布按鈕喚起發布看板,單擊開始發布生產,任務將按照發布檢查流程執行發佈動作,更多資訊,請參見節點/工作流程發布

運行觸發式工作流程

工作流程發布至營運中心後,進入待命狀態,等待訊號發生。可以通過以下幾種操作,運行觸發式工作流程。

事件觸發

  1. 根據建立觸發器的事件類型,執行相關操作至觸發器的監控對象,如OSS可以上傳檔案到您在觸發器中配置的OSS Bucket,訊息佇列可以發送訊息到觸發器中配置的Topic或Queue。

  2. 觸發器接收到事件訊息後,會觸發營運中心手動任務中的觸發式工作流程去執行。

  3. 您可在營運中心 > 手動任務營運 > 手動執行個體查看並管理已執行的觸發式工作流程執行個體。通過執行個體日誌,可以確認工作流程是否被成功觸發並執行。

手動觸發

  1. 進入營運中心 > 手動任務營運 > 觸發式工作流程,找到對應的觸發式工作流程,單擊運行。可在運行時配置運行範圍、業務日期、觸發器訊息體等參數來指定本次啟動並執行影響範圍。

其他動作

複製觸發式工作流程

您可通過複製功能,快速複製現有觸發式工作流程以建立新的工作流程。複製內容包括工作流程及其內部節點(含代碼調試配置調度配置),以及節點間的依賴關係和工作流程本身的調度配置資訊。

  1. 在左側專案目錄中,按右鍵需要複製的觸發式工作流程名稱。

  2. 在快顯功能表中選擇複製,進入複製彈窗。

  3. 在彈窗中修改觸發式工作流程名稱和儲存路徑(可保留預設值),單擊確認開始複製。

  4. 在複製過程中,可通過彈窗查看複製的當前進度期間完成節點數等詳細資料。

  5. 複製完成後,可在專案目錄中查看新產生的觸發式工作流程。

  6. 如需在觸發式工作流程中新增節點,您可以選擇通過複製方式快速建立節點,或者通過拖拽方式建立內部節點

觸發式工作流程版本管理

系統支援通過版本管理功能將觸發式工作流程還原到指定的歷史版本,同時還提供版本查看與對比功能,方便您分析差異並做出調整。

  1. 在左側專案目錄中,雙擊目標觸發式工作流程名稱,進入工作流程畫布。

  2. 單擊工作流程畫布右側的版本,在版本頁面查看和管理開發記錄發布記錄資訊。

    • 查看版本

      1. 您可以在開發記錄發布記錄頁簽中,找到需要查看的觸發式工作流程版本。

      2. 單擊操作欄中的查看,在詳情頁中即可查看觸發式工作流程代碼以及調度配置資訊。

        說明

        調度配置資訊支援指令碼模式可視化模式查看,您可在調度配置頁簽右上方切換查看模式。

    • 對比版本

      您可以在開發記錄發布記錄頁簽中,對不同版本的觸發式工作流程進行對比。下面以開發記錄為例,為您示範對比操作。

      • 開發或發布環境對比:在開發記錄頁簽中,勾選兩個版本,單擊上方的選擇對比按鈕,即可對比不同版本的觸發式工作流程代碼資訊和調度配置資訊。

      • 開發與發布或構建環境對比

        1. 開發記錄頁簽中,定位到觸發式工作流程的某個版本。

        2. 單擊操作欄中的對比按鈕,在彈出的請選擇對比的內容視窗中選擇與發布記錄構建記錄中的某個版本進行對比。

    • 還原版本

      僅支援將開發記錄中的觸發式工作流程還原到指定的歷史版本。您可在開發記錄頁簽中找到目標版本,單擊操作欄中的還原按鈕,即可將該觸發式工作流程資訊還原至目標版本。

      說明

      還原時,系統會基於目標版本進行恢複,並產生一條新的版本記錄。

後續步驟

觸發式工作流程發布後,可以在營運中心進行營運:手動任務營運