依賴上一周期指本節點本次執行個體運行,依賴相應節點上一周期執行個體的運行情況,待上一周期執行個體運行成功後,本節點才會運行。通常,若本節點需依賴上遊昨天產出的資料,或小時、分鐘任務依賴自己上一小時或分鐘執行個體,可設定跨周期依賴。本文為您介紹跨周期依賴的配置及依賴形式。
注意事項
配置依賴上一周期的注意事項如下。
|
類別 |
描述 |
相關參考 |
|
跨周期依賴圖例展示 |
跨周期依賴在DataWorks的DAG圖中以虛線的形式展示。 |
|
|
已設定跨周期依賴某節點時,請確認是否還存在並需要同周期依賴 |
配置依賴關係後,下遊依賴的所有上遊任務均需執行完成,下遊任務才會執行。 由於同周期依賴自動解析功能預設開啟,若已設定跨周期依賴,請確認是否還需設定同周期依賴,若不需要,則需刪除同周期自動解析產生的依賴關係,以免影響下遊正常運行。 |
|
|
複雜情境是否需設定跨周期依賴 |
部分情境下,當同周期依賴不滿足預期時,您可設定跨周期依賴。 例如,天任務依賴小時任務的情境下,天任務預設依賴小時任務當天所有執行個體。您可通過小時任務自依賴,實現天任務依賴小時任務指定周期。 |
|
|
預覽節點依賴關係 |
為避免生產調度任務由於依賴關係不符合預期導致生產調度延遲,建議在發布任務前,通過該功能確認各周期執行個體關係是否符合預期。 |
|
|
任務發布說明 |
跨周期依賴的上下遊任務,請確保均發行至生產環境,發布後才可在生產環境營運中心查看該環境的依賴關係。 |
配置入口
進入資料開發節點的編輯頁面,單擊右側導覽列的調度配置,在地區配置節點的依賴關係。DataWorks調度依賴配置頁麵包含以下關鍵地區:頂部有從代碼解析輸入輸出、清空解析結果、重新整理輸入輸出按鈕及提交前自動解析選項(可選是/否);依賴的上遊節點地區用於搜尋和添加上遊節點輸出,支援使用工作空間根節點和自動推薦功能,表格展示上遊節點輸出名、輸出表名、節點名稱、節點ID、工作空間、責任人、調度周期等資訊;本節點輸出名稱地區管理當前節點的輸出,添加方式分為系統預設添加和手動添加;跨周期依賴(原上一周期)地區可勾選本節點、一級子節點或其他節點。
依賴形式
依賴上一周期支援的依賴形式如下表所示。
|
依賴形式 |
節點依賴關係 |
業務情境 |
|
本節點本次執行個體運行,依賴於本節點上一周期的執行個體運行結果。即本次節點是否運行,取決於本節點上一周期的執行個體是否運行成功。 |
本節點本次執行個體運行,取決於本節點上一周期業務資料的產出情況。 |
|
|
本節點本次執行個體運行,取決於下遊節點上一周期的執行個體運行情況。即本次節點是否運行,取決於該節點的下遊節點在上一周期的執行個體是否運行成功。 |
本節點本次執行個體的運行,依賴於該節點的下遊節點在上一周期對本節點上一周期結果表(即本節點輸出表)資料的清洗結果是否成功。 |
|
|
本節點本次執行個體的運行,依賴於其他節點在上一周期的執行個體運行結果。即本次節點是否運行,取決於其依賴的其他節點在上一周期執行個體是否運行成功。 |
本節點本次執行個體運行,在商務邏輯上需要依賴其它業務的資料,但本節點中不包含涉及其他業務資料的相關操作。 |
依賴上一周期:本節點(自依賴)
本節點本次執行個體運行,取決於本節點上一周期業務資料的產出情況。任務的依賴設定及依賴關係樣本如下。
當天任務依賴小時、分鐘任務時,小時、分鐘任務是否設定自依賴,會影響天任務的執行時間:
-
小時、分鐘任務未設定自依賴
天任務預設依賴小時、分鐘任務當天所有的執行個體,即天任務會對小時、分鐘任務當天產出的所有表資料進行匯總加工。
-
小時、分鐘任務設定自依賴
天任務根據掛載依賴:就近原則,掛載距離自己定時時間最近的某個小時、分鐘執行個體,而非依賴當天所有小時、分鐘執行個體。
具體依賴情況,詳情請參見附錄:複雜依賴情境匯總。
自依賴的任務在進行補資料時,會出現資料執行個體按時間依次啟動並執行現象,詳情可參見:自依賴任務補資料現象。
依賴上一周期:一級子節點
本節點本次執行個體運行,依賴其下遊節點上一周期對本節點上一周期表資料的加工結果。
例如:節點C包含A、B兩個下遊節點,依賴一級子節點是指節點C依賴A、B兩個節點在上一周期的運行結果(圖中樣本當前周期為T,上一周期為T-1)。當A、B兩個節點上一周期均運行成功時,本次節點C才會啟動運行。
依賴上一周期:其他節點
本次節點是否運行,取決於其他節點在上一周期執行個體是否運行成功。
例如:節點A、B為節點C的兩個下遊節點,依賴其他節點是指節點B依賴D節點在上一周期的運行結果(圖中樣本當前周期為T,上一周期為T-1)。當D節點上一周期執行個體運行成功時,本次節點B才會啟動運行。
是否沿用上遊的空跑屬性
通常,使用分支節點時,需考慮該配置。
-
配置入口
您可在調度依賴中配置跳過上游的空跑屬性為是,從而使下遊節點不受上一周期該節點的空跑屬性影響。
-
應用情境
某節點包含多個下遊節點,在任務執行過程中,下遊部分節點會被置為空白跑狀態。此時,當下遊的空跑節點配置了依賴自身的上一周期時,該節點的空跑屬性會不斷向下傳遞至其子節點,導致出現該節點持續空跑的情況。若您不希望子節點延續被依賴節點的空跑屬性,可在調度依賴中設定跳過上游的空跑屬性為是。
-
情境樣本
-
假設Assign_Node為賦值節點,Branch_Node為分支節點,Shell_Node1、Shell_Node2為Branch_Node的下遊節點。該節點均為天調度節點。
-
實際運行時,Shell_Node1被置為空白跑,Shell_Node2正常運行。
-
Shell_Node1節點設定了依賴自身的上一周期。
-
本周期(T)Shell_Node1節點產生的周期執行個體名稱為
Shell_Node1'。 -
上一周期(T-1)Shell_Node1節點產生的周期執行個體名稱為
Shell_Node1。
本周期(T)的周期執行個體Shell_Node1,會依賴上一周期(T-1)的周期執行個體Shell_Node1運行,下遊節點會延續上遊節點的空跑屬性,導致Shell_Node1節點永遠空跑。 -
預覽依賴關係
配置完成後,您可預覽該節點配置的依賴關係,詳情請參見後續:確認依賴是否符合預期。