全部產品
Search
文件中心

DataWorks:配置依賴上一周期(跨周期依賴)

更新時間:Jun 19, 2024

依賴上一周期指本節點本次執行個體運行,依賴相應節點上一周期執行個體的運行情況,待上一周期執行個體運行成功後,本節點才會運行。通常,若本節點需依賴上遊昨天產出的資料,或小時、分鐘任務依賴自己上一小時或分鐘執行個體,可設定跨周期依賴。本文為您介紹跨周期依賴的配置及依賴形式。

注意事項

配置依賴上一周期的注意事項如下。
類別描述相關參考
跨周期依賴圖例展示跨周期依賴在DataWorks的DAG圖中以虛線的形式展示。附錄:DAG圖功能介紹
已設定跨周期依賴某節點時,請確認是否還存在並需要同周期依賴配置依賴關係後,下遊依賴的所有上遊任務均需執行完成,下遊任務才會執行。

由於同周期依賴自動解析功能預設開啟,若已設定跨周期依賴,請確認是否還需設定同周期依賴,若不需要,則需刪除同周期自動解析產生的依賴關係,以免影響下遊正常運行。

刪除依賴關係
複雜情境是否需設定跨周期依賴部分情境下,當同周期依賴不滿足預期時,您可設定跨周期依賴。

例如,天任務依賴小時任務的情境下,天任務預設依賴小時任務當天所有執行個體。您可通過小時任務自依賴,實現天任務依賴小時任務指定周期。

必讀:複雜依賴情境調度配置原則與樣本
預覽節點依賴關係為避免生產調度任務由於依賴關係不符合預期導致生產調度延遲,建議在發布任務前,通過該功能確認各周期執行個體關係是否符合預期。預覽依賴關係
任務發布說明跨周期依賴的上下遊任務,請確保均發行至生產環境,發布後才可在生產環境營運中心查看該環境的依賴關係。發布任務

配置入口

進入資料開發節點的編輯頁面,單擊右側導覽列的調度配置,在調度依賴 > 上一周期地區配置節點的依賴關係。調度依賴

依賴形式

依賴上一周期支援的依賴形式如下表所示。
依賴形式節點依賴關係業務情境
依賴上一周期:本節點(自依賴)

本節點本次執行個體運行,依賴於本節點上一周期的執行個體運行結果。即本次節點是否運行,取決於本節點上一周期的執行個體是否運行成功。

本節點本次執行個體運行,取決於本節點上一周期業務資料的產出情況。

依賴上一周期:一級子節點

本節點本次執行個體運行,取決於下遊節點上一周期的執行個體運行情況。即本次節點是否運行,取決於該節點的下遊節點在上一周期的執行個體是否運行成功。

本節點本次執行個體的運行,依賴於該節點的下遊節點在上一周期對本節點上一周期結果表(即本節點輸出表)資料的清洗結果是否成功。

依賴上一周期:其他節點

本節點本次執行個體的運行,依賴於其他節點在上一周期的執行個體運行結果。即本次節點是否運行,取決於其依賴的其他節點在上一周期執行個體是否運行成功。

本節點本次執行個體運行,在商務邏輯上需要依賴其它業務的資料,但本節點中不包含涉及其他業務資料的相關操作。

依賴上一周期:本節點(自依賴)

本節點本次執行個體運行,取決於本節點上一周期業務資料的產出情況。任務的依賴設定及依賴關係樣本如下。依賴上一周期:本節點
說明 小時分鐘任務不同周期執行個體的執行結果相互影響。
任務依賴小時分鐘任務時,小時、分鐘任務是否設定自依賴,會影響天任務的執行時間:
  • 小時、分鐘任務未設定自依賴

    天任務預設依賴小時、分鐘任務當天所有的執行個體,即天任務會對小時、分鐘任務當天產出的所有表資料進行匯總加工。

  • 小時、分鐘任務設定自依賴

    天任務根據掛載依賴:就近原則,掛載距離自己定時時間最近的某個小時、分鐘執行個體,而非依賴當天所有小時、分鐘執行個體。

具體依賴情況,詳情請參見附錄:複雜依賴情境匯總

依賴上一周期:一級子節點

本節點本次執行個體運行,依賴其下遊節點上一周期對本節點上一周期表資料的加工結果。
例如:節點C包含A、B兩個下遊節點,依賴一級子節點是指節點C依賴A、B兩個節點在上一周期的運行結果(圖中樣本當前周期為T,上一周期為T-1)。當A、B兩個節點上一周期均運行成功時,本次節點C才會啟動運行。依賴上一周期:一級子節點

依賴上一周期:其他節點

本次節點是否運行,取決於其他節點在上一周期執行個體是否運行成功。
例如:節點A、B為節點C的兩個下遊節點,依賴其他節點是指節點B依賴D節點在上一周期的運行結果(圖中樣本當前周期為T,上一周期為T-1)。當D節點上一周期執行個體運行成功時,本次節點B才會啟動運行。依賴上一周期:其他節點

是否沿用上遊的空跑屬性

通常,使用分支節點時,需考慮該配置。
  • 配置入口
    您可在調度依賴中配置跳過上遊的空跑屬性,從而使下遊節點不被上一周期該節點的空跑屬性影響。沿用空跑屬性
  • 應用情境

    某節點包含多個下遊節點,在任務執行過程中,下遊部分節點會被置為空白跑狀態。此時,當下遊的空跑節點配置了依賴自身的上一周期,則該節點的空跑屬性會不斷向下傳遞至其子節點,導致出現該節點持續空跑的情況。若您不希望子節點延續被依賴節點的空跑屬性時,可在調度依賴中設定跳過上遊的空跑屬性

  • 情境樣本
    • 假設Assign_Ndoe為賦值節點,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節點永遠空跑。

預覽依賴關係

配置完成後,您可預覽該節點配置的依賴關係,詳情請參見後續:確認依賴是否符合預期