DataWorks提供了周期工作流程,以滿足需要周期性調度啟動並執行業務情境,本文介紹如何使用周期工作流程。
背景資訊
工作流程(Workflow)是一種資料處理流程自動化管理工具,它通過可視化拖拽方式整合多種類型的子任務節點,便捷地建立任務依賴關係,加速資料處理流程的搭建,有效提升任務開發效率。
周期工作流程支援設定的調度依賴關係
周期工作流程(Workflow)的調度依賴配置與普通節點類似,工作流程的內部節點或工作流程整體均可依賴其他任務,或被其他節點依賴。具體如下:
作為一個整體被其他任務(獨立Task或工作流程)依賴。
作為一個整體依賴其他任務(獨立Task或工作流程)。
周期工作流程運行時的狀態流轉
周期工作流程(Workflow)支援整體設定定時調度時間,工作流程內部節點運行均受該定時時間影響,當下遊節點依賴工作流程整體時,下遊節點也會受到當前工作流程定時時間的影響。在調度情境下,工作流程整體是否返回成功狀態,會受到內部任務運行狀態的影響。
特殊情境說明:
工作流程內部存在凍結或暫停執行個體時,整個工作流程執行個體將會被置為失敗狀態。
凍結工作流程工作的補資料執行個體時,工作流程執行個體將會被置為成功狀態。
補資料情境下判斷任務無法執行時,工作流程會被置為失敗狀態。
執行個體狀態和實際失敗事件產生時間存在延遲。
工作流程內部存在歸併節點時,歸併節點上遊可能存在失敗情況,此時會根據歸併節點是否為成功狀態來判定工作流程是否返回成功狀態。
周期工作流程內部節點的執行時間與參數替換
工作流程內部節點無需配置調度周期,只需設定順延強制時間,即基於工作流程定義的定時時間延遲多久調度。
工作流程內部節點配置的順延強制時間基於工作流程配置的調度時間計算實際執行時間。
工作流程內部節點調度參數賦值由工作流程整體定時時間決定,而非延遲後的時間。
系統會自動將自訂的工作流程參數追加到內部節點的調度參數後面,您可以在工作流程內部節點中擷取該工作流程參數。
注意事項
僅支援在新版資料開發(Data Studio)中使用周期工作流程(Workflow),舊版資料開發不支援此功能。
建立周期工作流程時選擇調度類型為周期調度。
開啟可被引用的工作流程,不能依賴於其他任務,並且發布至生產環境預設不會自動調度。
重要當工作流程啟用了可被引用能力後,該工作流程及其內部節點不能依賴其他任務(特指其他工作流程或不在該工作流程內的其他節點),同時也不允許被其他任務(包括空間根節點)所依賴。否則,在發布工作流程時將會產生報錯,導致工作流程無法正常發布。
開啟可被引用的工作流程發布至生產環境後預設不會自動調度,直至有其他工作流程通過SUB_PROCESS節點引用了它。
進入建立工作流程頁面
進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的,進入Data Studio。
在左側導覽列單擊
,然後在專案目錄右側單擊,進入建立工作流程頁面。說明首次使用專案目錄時,也可以直接單擊建立工作流程按鈕進行建立。
建立周期工作流程
在建立工作流程頁面,選擇調度類型為周期調度。
說明定時調度,可以指定任務調度的頻次。可通過指定的調度時間定時觸發任務執行。
如需建立觸發式工作流程,可參見觸發式工作流程。
輸入工作流程名稱,單擊確認建立。
設計周期工作流程
在工作流程看板左側,根據需要開發的任務類型選擇對應的節點,將其拖拽至畫布中,並通過手動連線的方式快速配置節點間的依賴關係。
DataWorks將引擎能力封裝為節點,您可以基於引擎類型的節點進行可視化資料開發,無需接觸複雜的引擎命令列,同時您也可以結合平台提供的通用類型節點進行複雜邏輯處理。
單個工作流程最多支援建立400個內部節點,但為了獲得最佳的展示和維護體驗,建議控制在100個節點以內。
開發週期工作流程
您可通過以下步驟完成工作流程的開發,也可參考附錄:工作流程引用,完成工作流程之間的引用和工作流程與內部節點的參數透傳。
進入內部節點編輯頁。
在商務程序看板中,將滑鼠移動到目標節點,單擊開啟節點,進入工作流程內部節點的編輯頁面。
開發內部節點。
在節點編輯頁面,快速編輯節點代碼。在代碼開發時,需注意以下幾點:
代碼文法取決於您選擇的節點類型。不同類型的任務配置不同,配置詳情請參見節點開發。
您可以啟用Copilot智能編程助手,以獲得智能代碼補全建議,提升開發效率。
對於大多數節點類型,您都可以使用
${變數名}的方式定義變數,以便在下一步驟調試任務代碼時可以代入不同的賦值快速調試。在執行調度任務時,您可通過
${workflow.參數名}方式在內部節點擷取工作流程參數的賦值。說明在Shell或Python節點中使用工作流程參數時,系統會自動將這些參數以
k=v的格式追加到節點的參數列表中,您可在節點代碼中按此格式解析並擷取對應的參數值。僅支援使用Serverless資源群組通過該方式在內部節點擷取工作流程參數的賦值。
調試運行內部節點。
配置調試參數。代碼編輯完成後,您可單擊節點編輯頁右側的調試配置,配置調試參數。
在計算資源中指定調試階段任務下發的計算資源。
在DataWorks配置中指定DataWorks任務執行使用的資源群組等。
如果您在代碼中通過
${變數名}方式定義了變數,則需要在指令碼參數中為對應變數名賦值常量。
調試運行任務。配置完成後,可單擊工具列中的運行按鈕,此時將使用您在調試配置中的調試參數運行節點。
調試周期工作流程
開發調試完工作流程內部節點任務後,調試運行工作流程工作。
單擊商務程序看板上方工具列中的
表徵圖,在填寫運行參數彈窗手動輸入本次運行值。單擊確定。單擊商務程序看板的工作流程內部節點,查看任務執行結果。
發布周期工作流程
您可參照以下流程定義工作流程及內部節點的調度相關配置,並將工作流程發布到生產環境進行周期性調度運行。
後續操作:工作流程營運
周期工作流程發布成功後會周期性調度,您可前往生產環境營運中心查看周期工作流程的調度情況並執行相關營運操作。詳情請參見:營運中心、補資料。
其他動作
複製周期工作流程
您可通過複製功能,快速複製現有周期工作流程以建立新的工作流程。複製內容包括工作流程及其內部節點(含代碼、調試配置、調度配置),以及節點間的依賴關係和工作流程本身的調度配置(包含調度參數和調度策略)資訊。
複製內容不包含工作流程調度配置中的調度時間和調度依賴資訊,您可自行配置相關參數。
在左側專案目錄中,按右鍵需要複製的周期工作流程名稱。
在快顯功能表中選擇複製,進入複製彈窗。
在複製彈窗中修改工作流程名稱和儲存路徑(可保留預設值),單擊確認開始複製。
在複製過程中,可通過彈窗查看複製的當前進度、期間、完成節點數等詳細資料。
複製完成後,可在專案目錄中查看新產生的周期工作流程。
如需在周期工作流程中新增節點,您可以選擇通過複製方式快速建立節點,或者通過拖拽方式建立內部節點。
版本管理
系統支援通過版本管理功能將工作流程還原到指定的歷史版本,同時提供版本查看與對比功能,方便您分析差異並進行調整。
在左側專案目錄中,雙擊目標周期工作流程名稱,進入工作流程畫布。
單擊工作流程畫布右側的版本,在版本頁面查看和管理開發記錄及發布記錄資訊。
查看版本:
您可以在開發記錄或發布記錄頁簽中,找到需要查看的周期工作流程版本。
單擊操作欄中的查看,在詳情頁中即可查看周期工作流程代碼以及調度配置資訊。
說明調度配置資訊支援指令碼模式和可視化模式查看,您可在調度配置頁簽右上方切換查看模式。
對比版本:
您可以在開發記錄或發布記錄頁簽中,對不同版本的周期工作流程進行對比。下面以開發記錄為例,為您示範對比操作。
開發或發布環境對比:在開發記錄頁簽中,勾選兩個版本,單擊上方的選擇對比按鈕,即可對比不同版本的工作流程代碼資訊和調度配置資訊。
開發與發布或構建環境對比:
在開發記錄頁簽中,定位到周期工作流程的某個版本。
單擊操作欄中的對比按鈕,在彈出的請選擇對比的內容視窗中選擇與發布記錄或構建記錄中的某個版本進行對比。
還原版本:
僅支援將開發記錄中的周期工作流程還原到指定的歷史版本。您可在開發記錄頁簽中找到目標版本,單擊操作欄中的還原按鈕,即可將該周期工作流程資訊還原至目標版本。
說明還原時,系統會基於目標版本進行恢複,並產生一條新的版本記錄。
附錄:工作流程引用
情境一:引用工作流程
在工作流程中,您可以通過SUB_PROCESS節點引用另一個工作流程。被引用的工作流程需要在工作流程編輯頁面右側的屬性配置中開啟可被引用開關。
開啟可被引用的工作流程發布至生產環境後不會自動調度,直至有其他工作流程通過SUB_PROCESS節點引用了它。
被引用的工作流程將跟隨引用工作流程調度執行。
情境二:擷取工作流程參數
如果您在工作流程中定義了一個參數,在任務調度時系統會自動將自訂的工作流程參數追加到內部節點的調度參數後面,您可以在工作流程的內部節點中按以下方式擷取該參數。
定義工作流程參數。
在左側專案目錄中選擇您要編輯的工作流程。
在工作流程看板右側的調度配置中,單擊添加參數,輸入參數名和參數值。
擷取工作流程參數。
進入上面您所編輯的工作流程,在工作流程中選擇您要編輯的內部節點。
滑鼠懸浮在內部節點上方,選擇開啟節點,進入內部節點編輯頁。
在內部節點編輯頁的右側的調度配置中找到工作流程參數裡面的參數名。
擷取工作流程參數。
您可通過
${workflow.參數名}方式擷取工作流程參數。
常見問題
Q:為什麼調試時工作流程可以正常運行,但是周期調度運行時卻失敗了?
A:可能原因:工作流程各內部節點的調度配置中選擇的計算資源、資源群組與調試運行時選擇的計算資源、資源群組不一致,可能會導致調試運行成功,而調度運行失敗。
未運行
等待
運行中
運行成功
運行失敗
暫停/凍結執行個體