全部產品
Search
文件中心

DataWorks:周期依賴配置

更新時間:Jul 17, 2026

周期依賴指本節點等待當前周期的上遊節點執行個體執行成功後再運行,適用於消費上遊當天( 當前周期)產出資料的情境。DataWorks提供多種同周期依賴配置方式,並支援依賴預覽功能,您可及時查看並調整有誤依賴,保障任務調度符合預期。

配置原理

調度依賴通過節點輸出節點輸入的匹配關係建立:將上遊節點的輸出名稱作為下遊節點的輸入,即形成依賴關係。配置完成後,上遊節點運行成功,下遊節點才會啟動運行。配置前,建議根據節點讀寫的表血緣確認依賴對象和依賴類型,請參見調度依賴配置指引

節點輸出

節點輸出即本節點輸出名稱,是其他節點與本節點建立依賴關係的媒介(標識符),而不是節點實際產出的資料。其他節點通過本節點的輸出名稱找到本節點,從而將本節點設定為上遊依賴。

DataWorks會為每個節點自動產生兩個輸出名:

  • 隨機ID:全域唯一,且不支援修改和刪除。

  • projectName.nodeName:帶節點名的輸出,可修改。節點名稱變更後,此輸出名不會自動更新。

同時,DataWorks也支援通過手動添加或者從代碼解析輸入輸出,其中不同的節點類型對代碼解析的支援情況可參考:代碼解析結果對比

節點輸入

節點輸入即本節點依賴的上遊節點,可通過指定節點的輸出名稱(推薦)、節點名稱或者節點ID指定。

其中節點ID需要上遊節點提交至生產環境才會產生。

配置原則

為提升任務開發效率,建議您在實際開發中使用代碼解析功能快速為節點設定依賴關係。基於代碼解析進行實際開發時,請遵循以下原則:

  • 節點建立:建議節點名稱與節點產出表名稱一致。

  • 代碼開發:避免多個節點寫入資料至同一張表。

  • 依賴配置:建議將節點產出表配置為節點的輸出。

步驟一: 配置入口

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

  • 依賴的上游節點:定義當前任務需要依賴哪些上遊任務。

  • 本節點輸出名稱:定義其他任務可通過本節點的哪些輸出掛載依賴關係。

步驟二: 添加依賴節點

說明
  • 在代碼編輯時,預設基於表血緣設定依賴關係,並在提交時自動檢測依賴是否符合資料血緣。您可選擇是否啟用提交前自動解析功能,詳情請參見調度設定

  • 若本節點需依賴上遊昨天產出的資料,或小時/分鐘任務依賴自己上一周期執行個體,可通過配置依賴上一周期(跨周期依賴)快捷指定,也可以使用指定區間或者指定集合進行更精確靈活的配置。

  • 若本節點與上遊節點的調度周期頻率不一致,如天任務依賴小時任務,或者依賴不同頻率的小時任務等複雜情境,可參見:必讀:複雜依賴情境調度配置原則與樣本

您可通過如下三種方式配置,無論哪種方式,其原理不變。

1. 通過代碼解析表血緣設定節點依賴

代碼解析是通過解析節點代碼中的表血緣,自動化佈建節點的輸出名稱和依賴的上遊節點。解析後,節點產出的表將被自動添加為projectname.tablename格式的節點輸出;節點查詢的表將被自動添加為節點輸入。

例如,SELECT一張表,該表將被自動解析為本節點依賴的上遊;INSERT一張表,該表將被自動解析為本節點的輸出。各類型節點自動解析支援的關鍵字,詳情請參見各類型節點自動解析情境
  • 配置依賴

    代碼解析支援手動從代碼中解析輸入輸出提交前自動解析兩種方式。兩者原理一致,提交前自動解析會在代碼提交時自動解析輸入輸出,並提醒您掛載依賴。

    例如:當前在工作空間yunwan_lingyi下有一個MaxCompute節點mc2,此節點需依賴MaxCompute節點mc1的輸出表dws_user_info_all_di,節點mc2的代碼內容如下:

    INSERT OVERWRITE TABLE ads_user_info_1d PARTITION (dt='${workflow.var}')
    SELECT uid
      , MAX(region)
      , MAX(device)
      , COUNT(0) AS pv
      , MAX(gender)
      , MAX(age_range)
      , MAX(zodiac)
    FROM dws_user_info_all_di
    WHERE dt = '${workflow.var}'
    GROUP BY uid;

    單擊從代碼中解析輸入輸出後,解析出本節點的輸入為dws_user_info_all_di表,並且自動匹配到上遊節點的輸出表名和上遊節點名稱:

    上遊節點輸出名

    上遊節點輸出表名

    上遊節點名稱

    節點ID

    工作空間

    責任人

    調度周期

    添加方式

    最近運行情況

    操作

    yunwan_lingyi.dws_user_info_all_di

    yunwan_lingyi.dws_user_info_all_di

    mc1

    -

    測試空間

    lingyi01_testcloud_com

    代碼解析

    暫無資料

    刪除

    同時,解析出本節點的輸出為ads_user_info_1d表,對應解析情況如下:

    輸出名

    輸出表名

    下遊節點名稱

    責任人

    添加方式

    下遊節點影響基準

    操作

    ide.505487297_out

    -

    -

    -

    系統預設添加

    -

    刪除

    ide.mc2

    -

    -

    -

    手動添加

    -

    刪除

    yunwan_lingyi.ads_user_info_1d

    yunwan_lingyi.ads_user_info_1d

    -

    -

    代碼解析

    -

    刪除

    至此,節點mc2完成與節點mc1的依賴配置。

  • 修改代碼解析的依賴關係

    當代碼解析的依賴關係不符合預期,或存在不支援調度依賴的情境(非周期性調度產出資料的表)需手動刪除依賴關係時,您可參考以下內容修改自動解析的依賴關係。

    操作

    描述

    手動刪除解析結果

    在依賴的上遊節點列表中中刪除不符合預期的輸入,執行刪除操作,並重新解析。刪除後,自動添加相應注釋至代碼中,防止下次解析再次添加:

    --@exclude_input=刪除輸入
    --@exclude_output=刪除輸出

    手動添加輸入輸出

    在代碼編輯框中右擊表名,選擇添加輸入或者添加輸出,添加後,自動添加相應注釋至代碼中

    --@extra_output=添加輸出
    --@extra_input=添加輸入

    或者也可以參考通過調度配置介面手動添加上遊節點依賴或者通過商務程序面板拉線設定節點依賴的方式來添加依賴。

    重要

    DataWorks不支援直接刪除已存在下遊依賴的節點輸出,直接刪除將導致下遊任務執行或取數異常。建議您先調整下遊業務,在下遊節點移除該上遊依賴,再在上遊節點刪除該節點輸出。

  • 不納入自動解析的情境

    DataWorks中的暫存資料表(即工作空間表管理中定義的固定格式的表。例如,t_開頭的表),不會被自動解析為本節點的輸出或依賴的上遊節點。

  • 自動解析使用注意事項

    使用自動解析設定依賴關係時,需保證節點輸出在當前地區下唯一。在DataWorks開發情境下,使用自動解析需注意以下問題:

    • 節點建立:節點預設內建一個同名的節點輸出,若同一個工作空間存在同名節點,需手動修改其中一個節點的節點輸出。

    • 代碼開發:自動解析會將節點的產出表作為節點輸出。若同一個工作空間中,兩個調度節點往同一張表插入資料,自動解析情境下將導致其中一個節點產生報錯,詳情請參見多個節點往同一張表寫資料,自動解析報錯節點輸出名相同

    • 依賴配置 :對於使用SQL任務加工離線同步任務的產出表的情境,為了方便SQL任務對離線同步任務產出表進行加工時,可通過血緣自動解析快速依賴離線同步任務,您需手動將離線同步節點的產出表配置為節點輸出,或者將離線同步任務產出表名作為離線同步任務節點名(平台會自動建立與節點名相同的節點輸出),否則下遊SQL節點提交時可能報錯當前節點依賴的父節點輸出名${projectname.tablename}不存在,不能提交本節點,請確保擁有該輸出名的父節點已被提交

2. 通過調度配置介面手動添加上遊節點依賴

調度配置->調度依賴->同周期依赖配置介面,通過輸入某節點的節點輸出/節點名稱/節點ID,手動添加依賴的上遊節點。節點名稱容易出現重複,推薦使用節點輸出進行依賴掛載。

3. 通過商務程序面板拉線設定節點依賴

商務程序的DAG面板使用拉線方式設定依賴關係時,DataWorks將自動為下遊節點添加上遊節點_out格式的輸出,形成節點依賴。

說明

當商務程序面板中的依賴連線刪除後,節點調度配置中也會同步刪除該依賴關係。

步驟三:設定依賴類型

在建立了基礎的上下遊依賴關係後,您還需要定義依賴的掛載方式,即下遊執行個體具體如何依賴上遊執行個體。DataWorks提供了由淺入深的三種同周期依賴掛載方式。

您可以在調度配置->調度依賴->同周期依赖列表中,為每個上遊依賴項的依賴類型列進行選擇。

1. 就近依賴(標準同周期依賴)

  • 含義:這是最常用、最基礎的同周期依賴方式。它遵循“就近掛載”原則,下遊執行個體會自動關聯並等待上遊同業務周期內,最新產出的一個執行個體,無需額外配置(有少量例外情況,可參見複雜依賴情境調度配置原則與樣本)。

  • 適用情境

    • 標準的日/周/月度 ETL 流程。

    • 上下遊任務為一對一的依賴關係,例如一個日任務依賴另一個日任務。

2. 指定區間(依賴一個連續的時間視窗)

當簡單的“一對一”依賴無法滿足需求時,例如下遊需要彙總上遊一個時間段內的資料,您可以使用指定區間進行更靈活的配置。

說明

此功能需在節點的調度設定中,先啟用調度依賴進階配置開關。

  • 配置方式:

    1. 選擇依賴節點後,單擊操作列的配置,選擇依賴類型為指定區間

    2. 設定以本節點自身定時時間為基準的左右位移量。允許的最位移區間最大範圍是-1440和1440,單位:分鐘。

  • 含義:允許下遊任務依賴一個連續時間區間內的所有上遊執行個體。這個區間是一個相對於下遊任務自身定時已耗用時間而動態計算的“滑動視窗”,只允許選擇運行當天和前一天限定區間範圍內的執行個體。

  • 核心邏輯樣本
    一個小時任務下遊,依賴另一個小時任務上遊,並配置區間為 [-2h, +2h]

    • 當下遊 12:00 的執行個體運行時,它會依賴上遊 10:00 到 14:00 這個區間內的所有執行個體。

    • 當下遊 13:00 的執行個體運行時,依賴視窗則會自動“滑動”到 11:00 到 15:00。

  • 適用情境

    • 跨時區資料匯總:中國(UTC+8)的天任務,需匯總印度(UTC+5:30)全天24個小時任務的資料。可配置區間為 [-3h, 21h] 來精確覆蓋印度當地業務日對應的物理時間視窗。

    • 跨自然日視窗彙總:一個淩晨執行的天任務,需要加工的資料範圍是從昨天下午到今天淩晨。例如,可配置區間 [-12h, 4h] 來依賴上遊從昨天12:00到今天04:00的小時執行個體。

3. 指定集合(依賴一組離散的固定執行個體)

當您的依賴邏輯與上遊某些特定的、離散的產出執行個體相關時,“指定集合”是最佳選擇。

說明

此功能需在節點的調度設定中,先啟用調度依賴進階配置開關。

  • 配置方式:

    1. 選擇依賴節點後,單擊操作列的配置,選擇依賴類型為指定集合

    2. 設定以本節點自身定時時間為基準的左右位移量。允許的最位移區間範圍是-1440和1440,單位:分鐘。

  • 含義:允許下遊任務依賴一個固定的、離散的上遊執行個體集合。與“指定區間”的滑動視窗不同,這個執行個體集合是靜態,對於所有下遊執行個體都完全相同。

  • 核心邏輯樣本
    下遊任務配置依賴上遊的 {02:00, 06:00, 10:00} 這三個執行個體。無論是下遊的 08:00 執行個體,還是 12:00 的執行個體,都會等待這三個特定執行個體全部成功後才運行。

  • 適用情境

    依賴關鍵裡程碑:下遊任務的啟動條件是上遊在一天中的幾個關鍵時間點(如早、中、晚快照)的資料準備就緒。

刪除或變更節點輸出的影響

當節點產出的表資料變更導致節點輸出的變更,或直接手動修改節點輸出時,請注意以下內容:

  • 刪除節點輸出對本節點產出的表資料無直接影響。

  • 若節點輸出已存在下遊依賴,此時變更或刪除可能會對下遊任務產生嚴重影響。

    • 節點產出表刪除:當自動解析的節點輸出,由於節點產出表變更導致節點輸出變更時,可能會導致下遊變為孤立節點不被調度,或由於下遊任務缺少資料依賴導致下遊被資料汙染。

    • 節點產出表變更:若當前節點產出的表需轉移至其他節點,請參考刪除或變更節點輸出的影響進行操作。

    若某節點輸出存在下遊依賴,刪除該輸出名稱時,建議提前與下遊任務的責任人進行溝通,告知其當前任務的某個輸出要刪除,請及時調整下遊任務的依賴關係,避免下遊任務變為孤立任務。

後續:確認依賴是否符合預期

配置完成後,為保障任務調度符合預期,您可通過以下操作驗證配置是否正確:

  • 預覽依賴:避免依賴關係不符合預期導致任務調度延遲。

  • 提交檢查:提交節點時確認依賴變更是否符合預期。

  • 周期任務依賴確認:節點發布後,需在營運中心確認生產調度任務的依賴是否符合預期。周期任務為生產環境該任務的最新狀態,同時,周期執行個體的執行個體依賴關係與執行個體產生方式有關。

更多詳情請參見調度依賴關係確認

常見問題

  • Q:通過指定區間或者指定集合方式設定依賴關係後,上遊修改調度時間,導致下遊節點無可依賴執行個體,下遊節點到已耗用時間後會發生什麼?

    A:下遊節點的執行個體到已耗用時間後,會因上遊執行個體不存在而不運行,在營運中心的狀態為未運行。

  • Q:如果當前節點要配置跨周期依賴,且依賴方式為一級子節點或者其他節點,選中的節點剛好對本節點為指定區間或指定集合依賴,依賴是否生效?

    A:這種配置方式可能會形成環路依賴,因此即使配置了也不生效。

  • Q:當前有節點A和節點B,兩者均為天調度。能否設定節點A依賴節點B的同周期執行個體(當日),節點B通過指定區間依賴節點A的上一天執行個體?

    A:不能。當前區間依賴不支援跨天成環。

更多常見問題,請參見調度依賴

最佳實務

跨工作空間、同工作空間跨商務程序設定節點依賴,詳情請參見情境3:如何配置跨商務程序、跨工作空間的調度依賴