全部產品
Search
文件中心

DataWorks:複雜依賴情境調度配置原則與樣本

更新時間:Dec 30, 2025

DataWorks支援分鐘、小時、日、周、月、年等類型的調度任務互相依賴,調度類型不同,任務執行的周期數不同。任務各周期是通過執行個體的方式執行,當上下遊調度依賴的類型不同時,您可通過該文檔瞭解上下遊各周期執行個體如何掛載依賴,即上下遊任務不同周期執行個體的依賴情況。

背景資訊

  • DataWorks中,調度任務會根據調度類型及周期數產生相應的周期執行個體(例如,小時調度任務每天會根據周期數產生相應數量的小時執行個體),通過執行個體的方式運行任務。周期任務設定的依賴關係,其本質是任務間所產生執行個體的依賴。上下遊任務的調度類型不同,其產生的周期執行個體數及執行個體的依賴情況不同。

  • DataWorks支援多種調度依賴情境,不同情境的調度任務,可選擇同周期依賴或依賴上一周期。同周期依賴及依賴上一周期,詳情請參見調度依賴方式選擇(同周期依賴)調度依賴方式選擇(跨周期依賴)

配置調度依賴前,您需先瞭解以下內容。

序號

描述

相關文檔

1

DataWorks支援多種調度類型(即分鐘、小時、天、周、月、年),當上下遊調度類型不一致時,DataWorks根據任務定時已耗用時間的就近原則設定調度依賴。

說明
  • 小時任務依賴小時任務,當天的周期數一致時,不符合該原則,即設定的調度依賴與任務的定時已耗用時間無關。

  • 天任務預設依賴小時、分鐘任務當天所有周期執行個體,即待小時、分鐘任務當天所有周期資料加工完成後,天任務才會對小時、分鐘任務當天所有資料進行加工清洗。

掛載依賴:就近原則

2

DataWorks上任務一旦設定依賴,即表示上下遊任務間存在資料依賴。無論下遊任務定時已耗用時間為幾點,均需等上遊任務執行完成後,下遊任務才滿足可執行條件。

依賴關係對任務執行的影響

3

您可通過具體情境樣本,進一步理解設定依賴的就近原則。

附錄一:複雜依賴情境匯總

情境包括:

掛載依賴:就近原則

DataWorks的周期任務運行時會產生多個周期執行個體,下遊周期執行個體會依賴上遊周期執行個體,通常若不指定需掛載至某個周期執行個體,下遊周期執行個體掛載依賴時會遵循就近原則,即與下遊周期執行個體已耗用時間最近,且未被其他周期執行個體依賴的上遊周期執行個體。不同情境的依賴原則具體如下:

說明
  • 下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,該任務也不會被調度,需等待上遊任務運行完成後才會被調度運行。

  • 根據就近原則掛載依賴時,對於下遊任務當天的第一個執行個體,如果上遊沒有比它更早的執行個體,則下遊預設依賴上遊當天的第一個執行個體。

情境

說明

示意圖

小時、分鐘任務相互依賴情境

  • 任務依賴與周期執行個體的定時時間有關

    • 預設情況:下遊周期執行個體按照就近原則掛載依賴,即DataWorks會為下遊周期執行個體掛載其定時已耗用時間之前與定時時間一致,且未被其他周期執行個體依賴的上遊周期執行個體。

      說明

      當上遊節點的運行頻率高於下遊節點,即存在父多子少的情況時,下遊執行個體實際會依賴其所屬周期區間 (start, end] 內產出的所有父節點執行個體

    • 特殊情況:若上下遊節點均設定了自依賴(即依賴上一周期:本節點(自依賴),則下遊當前周期執行個體,依賴其定時已耗用時間之前與其定時時間一致的一個上遊周期執行個體。

      說明

      您可參考細分情境圖示中,小時任務與分鐘任務設定自依賴的情境進行理解。

  • 任務依賴與周期執行個體的定時時間無關。

    小時任務依賴小時任務,或分鐘任務依賴分鐘任務,並且上下遊節點的周期數(即當天產生的執行個體個數)一致,將按照周期數一一對應,設定依賴關係。

小時、分鐘任務相互依賴的細分情境概覽如下圖:

小時任務依賴小時任務

image

小時任務依賴分鐘任務

image

分鐘任務依賴小時任務

image

舉例

小時任務依賴小時任務。

image
  • 情境一:小時調度B節點依賴小時調度A節點。

    配置資訊:

    • 設定每天00:00-23:59。

    • A、B節點均每5小時調度一次。

    • A、B節點當天產生的執行個體個數相同。

    依賴關係:A、B當天執行個體個數相同,執行個體依賴關係一一對應。

  • 情境二:

    配置資訊:

    • A節點在每日06:10-21:59時間段內,每4小時調度一次,共產生4個執行個體。

    • B節點在每日08:00-23:59時間段內,每4小時調度一次,共產生4個執行個體。

    依賴關係:A、B當天執行個體個數相同,執行個體依賴關係一一對應。

天任務依賴小時或分鐘任務

預設情況:天任務預設依賴小時、分鐘任務當天所有周期執行個體,即待小時、分鐘任務當天所有周期執行個體的資料加工完成後,天任務才會對其當天所有資料進行加工清洗。

其他情況:若天任務只需依賴距離自己已耗用時間最近的小時、分鐘周期執行個體,您可為小時、分鐘任務設定自依賴。設定後,該小時、分鐘周期執行個體運行完成後,天任務便會啟動執行。

image

各細分調度情境的依賴及運行情況詳情介紹,請參見:附錄一:複雜依賴情境匯總

依賴關係對任務執行的影響

下遊任務一旦掛載依賴,若上遊任務非運行成功狀態,即使到達下遊任務的定時已耗用時間,該任務也不會執行。

例如,小時任務B依賴天任務A,小時任務未設定自依賴。

  • 天任務A:定時已耗用時間設定為07:00

  • 小時任務B:定時已耗用時間設定為00:0008:0016:00

若天任務A未運行完成,即便到了下遊小時任務B的定時已耗用時間00:00,該任務也不會運行。下遊任務B的最早實際已耗用時間為07:00

image

附錄一:複雜依賴情境匯總

下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,該任務也不會被調度,需等待上遊任務運行完成後才會調度運行,對於下遊任務當天的第一個執行個體,如果上遊沒有比它更早的執行個體,則下遊預設依賴上遊當天的第一個執行個體。

小時任務依賴其他任務

細分情境

依賴及運行說明

示意圖

小時任務依賴小時任務

  • 上下遊周期數(即產生的執行個體數)一致

    上下遊任務運行當天產生的周期執行個體,將一一對應掛載依賴。即下遊首個執行個體依賴上遊首個執行個體,下遊第二個執行個體依賴上遊第二個執行個體,以此類推。

  • 上下遊周期數(即產生的執行個體數)不一致

    上下遊任務運行當天產生的周期執行個體,將根據就近原則掛載依賴,依賴距離自己定時已耗用時間最近(在當前執行個體定時時間之前,或與當前執行個體定時時間一致)的上遊執行個體。

    特殊情況:在調度依賴配置中,若父節點的運行頻率高於子節點(即“父多子少”情境),子節點執行個體的依賴邏輯遵循區間覆蓋原則,而非單純的就近依賴。

    依賴範圍:子節點執行個體會依賴其所屬周期區間 (start, end] 內產出的所有父節點執行個體。

    • start 指向上一個子節點執行個體的計劃已耗用時間。

    • end 指向當前子節點執行個體的計劃已耗用時間。

image

小時任務依賴天任務

  • 小時任務未設定自依賴

    下遊小時任務當天產生的所有周期執行個體依賴上遊天任務。待天任務執行完成後,下遊所有小時周期執行個體才啟動執行。此時,到達定時已耗用時間的小時周期執行個體會並發執行。

    說明
    • 若不希望並發執行,可對下遊小時任務設定自依賴

    • 下遊小時任務產生的所有周期執行個體執行時互不影響。

  • 小時任務設定自依賴

    • 僅首個產生的小時周期執行個體依賴上遊天任務,其餘小時周期執行個體,依賴自己上一個周期的小時執行個體。

    • 天任務及上一周期的小時執行個體執行完成後,當前周期的小時執行個體才啟動調度。此時,即使定時已耗用時間已到,小時周期執行個體也不會並發執行。

    說明

    自依賴會跨天依賴,當昨天最後一個周期執行個體未運行完成,會導致今天的任務無法調度。

image

小時任務依賴分鐘任務

  • 分鐘任務不設定自依賴

    下遊小時任務依賴該小時內上遊分鐘任務產生的所有分鐘周期執行個體。

  • 分鐘任務與小時任務均設自依賴

    下遊小時任務依賴該小時內距離自己定時已耗用時間最近(在當前執行個體定時時間之前,或與當前執行個體定時時間一致)的上遊分鐘周期執行個體。

image

天任務依賴其他任務

細分情境

依賴與運行情況

示意圖

天任務依賴同周期天任務

  • 上遊天任務未設定自依賴

    預設下遊天任務的周期執行個體掛載依賴至同周期的上遊天任務周期執行個體。

  • 上遊天任務設定自依賴

    上遊天任務設定自依賴,下遊天任務依賴上遊天任務時存在跨周期依賴。

    說明

    自依賴會跨天依賴,當昨天最後一個周期執行個體未運行完成,會導致今天的任務無法調度。

image

天任務依賴當天小時任務

  • 小時任務未設定自依賴

    下遊天任務會依賴上遊小時任務當天產生的所有小時周期執行個體,即待小時任務當天所有周期資料加工完成後,天任務才會對小時任務當天所有資料進行加工清洗。

    說明

    若天任務只需依賴指定的小時周期執行個體,您可為小時任務設定自依賴,當該小時周期執行個體運行成功後,天任務便會自動調度。

  • 小時任務設定自依賴

    下遊天任務會依賴距離其定時已耗用時間最近(在當前執行個體定時時間之前,或與當前執行個體定時時間一致)的上遊小時周期執行個體。

image

天任務依賴昨天的小時或分鐘任務

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

    下遊天任務會依賴上遊任務昨天產生的所有小時或分鐘周期執行個體。

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

    下遊天任務會依賴上遊任務昨天產生的最後一個小時或分鐘周期執行個體。

以天任務依賴昨天的小時任務為例。

image

分鐘任務依賴其他任務

細分情境

依賴說明

示意圖

分鐘任務依賴小時任務

  • 分鐘任務未設定自依賴

    下遊分鐘任務的周期執行個體,依賴距離其定時已耗用時間最近(在當前執行個體定時時間之前,或與當前執行個體定時時間一致)的小時周期執行個體,並且不重複依賴。

    說明

    該情境存在多個下遊分鐘周期執行個體,依賴同一個上遊小時周期執行個體的情況。

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

    下遊分鐘任務的周期執行個體,依賴自己上一周期執行個體;並且根據就近原則,依賴距離自己定時已耗用時間最近(在當前執行個體定時時間之前,或與當前執行個體定時時間一致)的上遊小時周期執行個體。

image

分鐘任務依賴天任務

  • 分鐘任務未設定自依賴

    下遊分鐘任務當天產生的所有分鐘周期執行個體依賴天任務。當天任務到達定時已耗用時間且執行完成後,分鐘任務才可執行。

    說明
    • 天任務運行完成後,定時時間已到的分鐘周期執行個體會並發執行。若不希望執行個體並發執行,可為分鐘任務設定自依賴

    • 分鐘任務不同執行個體之間的執行互不影響。

  • 分鐘任務設定自依賴

    • 僅下遊分鐘任務產生的首個周期執行個體會依賴天任務,其他周期執行個體直接依賴自己的上一周期執行個體。

    • 天任務及上一周期的分鐘執行個體執行完成後,當前周期的分鐘執行個體才會啟動調度。此時,即使定時已耗用時間已到,分鐘周期執行個體也不會並發執行。

    說明

    自依賴會跨天依賴,當昨天最後一個周期執行個體未運行完成,會導致今天的任務無法調度。

image

其他任務依賴周、月、年任務

當天、小時、分鐘任務依賴周、月、年任務時,周、月、年調度任務在非調度時間內會產生空跑執行個體。該執行個體不會真實跑資料,不佔用資源,也不阻塞下遊任務執行。

天任務依賴未設定自依賴的周任務為情境樣本:

  • 上遊周任務:每周一、周五正常調度執行;周二、周三、周四、周六、周日將產生空跑執行個體,到達定時已耗用時間後空跑執行個體將直接置為成功狀態,不會真實執行代碼邏輯。空跑執行個體不會影響下遊執行個體的正常運行。

  • 下遊天任務:每天會定時產生調度執行個體,且依賴上遊周任務每天產生的執行個體(包括空跑執行個體)。待上遊周任務每天的執行個體運行完成且成功後,將會觸發下遊對應的執行個體運行。

image

附錄二:工作流程調度說明

在DataWorks中支援將工作流程作為一個整體,添加上下遊節點,其調度說明詳情請參見:周期工作流程