全部產品
Search
文件中心

MaxCompute:進階應用程式:實現複雜作業邏輯

更新時間:Feb 28, 2024

使用DataWorks周期性調度MaxCompute作業時,您也可以靈活使用DataWorks已有的通用節點,例如虛擬節點、分支和歸併節點、迴圈類節點等,與MaxCompute的其他節點聯合使用可實現更複雜的業務效果,本文為您概要介紹常用的通用節點和典型應用情境。

實現有迴圈或遍曆邏輯的作業

DataWorks為您提供兩種迴圈類節點:for-each節點、do-while節點。如果您的作業設計迴圈邏輯,可以考慮使用這兩類DataWorks通用節點。
  • for-each節點
    DataWorks的for-each節點主要用於有迴圈遍曆的情境,且需要與賦值節點聯合使用,將賦值節點作為for-each節點的上遊節點,將賦值節點的輸出結果賦值給for-each節點後,一次次迴圈來遍曆賦值節點的輸出結果。for-eachfor-each節點的詳細介紹與使用指導請參見for-each節點邏輯原理介紹
  • do-while節點
    DataWorks的迴圈節點(do-while節點),可根據業務需要重新編排迴圈節點內部商務程序,將需要迴圈執行的商務邏輯放入迴圈節點內部,並通過迴圈節點內部的end節點來定義迴圈條件,即確認不滿足何種條件的情況下退出迴圈。迴圈節點可單獨使用,也可結合賦值節點來迴圈遍曆賦值節點傳遞的結果集。迴圈節點do-while節點的詳細介紹與使用指導請參見do-while節點邏輯原理介紹
說明 MaxCompute的ODPS SQL節點不支援直接寫迴圈或遍曆邏輯,您可以使用上述通用節點實現對應的作業邏輯,或您也可以使用PyODPS節點,自訂開發迴圈或遍曆邏輯代碼。

實現跨節點賦值邏輯的作業

DataWorks為您提供多種實現不同節點間透傳參數值的方式,例如:賦值節點、參數節點。同時,如果您需要對整個商務程序中的某個變數做統一賦值的話,也可以使用流程參數。
  • 賦值節點
    當您需要將上遊節點任務的結果提供給下遊節點使用時,您可使用賦值節點,實現任務結果在節點間傳遞。參數透傳節點的詳細介紹與使用指導請參見賦值節點
  • 參數節點
    參數節點本質上是一種虛擬節點,不會運行資料計算任務產生資料,主要用於跨節點傳參、參數管理的情境。
    跨節點傳參參數管理

    當資料開發的商務程序中,某個下遊節點的任務需要擷取多個、多級上遊節點的輸出參數時,您可以使用參數節點,將下遊節點需要擷取的所有參數統一添加至參數節點中,後續下遊節點可直接掛在參數節點之下,即可擷取到所有所需參數。

    跨節點傳參

    當資料開發的商務程序中,下遊節點的任務需要使用某些常量參數、變數參數時,您可以使用參數節點,將下遊節點需要使用的參數均添加至參數節點中,需使用參數的下遊節點直接掛在參數節點之下,即可擷取使用所需參數,便於整個商務程序中對所有使用的參數進行統一管理。

    參數管理
    節點的詳細介紹與使用指導請參見參數節點
  • 流程參數

    當整個商務程序需要對同一個變數統一賦值或替換其參數值時,您可以使用流程參數功能。使用指導請參見使用流程參數

實現作業流程管控

在DataWorks上運行MaxCompute作業時,您可以使用DataWorks的虛擬節點實現商務程序內的節點管控,例如實現複雜依賴情境下的業務管理等應用。

當您的實際業務包含多個商務程序時,為了商務程序與商務程序之間便於管理,建議每個商務程序都使用虛擬節點設定一個空跑的統籌起始節點,使資料流轉路徑更加清晰。業務管理虛擬節點的詳細介紹與使用指導請參見虛擬節點