DataWorks支援分鐘、小時、日、周、月、年等類型的調度任務互相依賴,調度類型不同,任務執行的周期數不同。任務各周期是通過執行個體的方式執行,當上下遊調度依賴的類型不同時,您可通過該文檔瞭解上下遊各周期執行個體如何掛載依賴,即上下遊任務不同周期執行個體的依賴情況。
背景資訊
DataWorks中,調度任務會根據調度類型及周期數產生相應的周期執行個體(例如,小時調度任務每天會根據周期數產生相應數量的小時執行個體),通過執行個體的方式運行任務。周期任務設定的依賴關係,其本質是任務間所產生執行個體的依賴。上下遊任務的調度類型不同,其產生的周期執行個體數及執行個體的依賴情況不同。
DataWorks支援多種調度依賴情境,不同情境的調度任務,可選擇同周期依賴或依賴上一周期。同周期依賴及依賴上一周期,詳情請參見周期依賴配置、調度依賴方式選擇(跨周期依賴)。
對於天任務依賴小時/分鐘任務的跨時區情境,除了通過自依賴+就近原則間接實現外,還可啟用調度依賴進階配置,直接使用指定區間依賴配置所需的依賴範圍(如 [-5, 19]),或者使用指定集合依賴精確配置依賴的固定時間的執行個體,無需為上遊小時任務設定自依賴。詳情請參見周期依賴配置。
配置調度依賴前,您需先瞭解以下內容。
序號 | 描述 | 相關文檔 |
1 | DataWorks支援多種調度類型(即分鐘、小時、天、周、月、年),當上下遊調度類型不一致時,DataWorks根據任務定時已耗用時間的就近原則設定調度依賴。 說明
| |
2 | DataWorks上任務一旦設定依賴,即表示上下遊任務間存在資料依賴。無論下遊任務定時已耗用時間為幾點,均需等上遊任務執行完成後,下遊任務才滿足可執行條件。 | |
3 | 您可通過具體情境樣本,進一步理解設定依賴的就近原則。 | 情境包括: |
掛載依賴:就近原則
DataWorks的周期任務運行時會產生多個周期執行個體,下遊周期執行個體會依賴上遊周期執行個體,通常若不指定需掛載至某個周期執行個體,下遊周期執行個體掛載依賴時會遵循就近原則,即與下遊周期執行個體已耗用時間最近,且未被其他周期執行個體依賴的上遊周期執行個體。不同情境的依賴原則具體如下:
下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,該任務也不會被調度,需等待上遊任務運行完成後才會被調度運行。
根據就近原則掛載依賴時,對於下遊任務當天的第一個執行個體,如果上遊沒有比它更早的執行個體,則下遊預設依賴上遊當天的第一個執行個體。
情境 | 說明 | 示意圖 |
小時、分鐘任務相互依賴情境 |
| 小時、分鐘任務相互依賴的細分情境概覽如下圖: 舉例: 小時任務依賴小時任務。
|
天任務依賴小時或分鐘任務 | 預設情況:天任務預設依賴小時、分鐘任務當天所有周期執行個體,即待小時、分鐘任務當天所有周期執行個體的資料加工完成後,天任務才會對其當天所有資料進行加工清洗。 其他情況:若天任務只需依賴距離自己已耗用時間最近的小時、分鐘周期執行個體,您可為小時、分鐘任務設定自依賴。設定後,該小時、分鐘周期執行個體運行完成後,天任務便會啟動執行。 |
各細分調度情境的依賴及運行情況詳情介紹,請參見:附錄一:複雜依賴情境匯總。
依賴關係對任務執行的影響
下遊任務一旦掛載依賴,若上遊任務非運行成功狀態,即使到達下遊任務的定時已耗用時間,該任務也不會執行。
例如,小時任務B依賴天任務A,小時任務未設定自依賴。
天任務A:定時已耗用時間設定為
07:00。小時任務B:定時已耗用時間設定為
00:00、08:00、16:00。
若天任務A未運行完成,即便到了下遊小時任務B的定時已耗用時間00:00,該任務也不會運行。下遊任務B的最早實際已耗用時間為07:00。
附錄一:複雜依賴情境匯總
下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,該任務也不會被調度,需等待上遊任務運行完成後才會調度運行,對於下遊任務當天的第一個執行個體,如果上遊沒有比它更早的執行個體,則下遊預設依賴上遊當天的第一個執行個體。
小時任務依賴其他任務
天任務依賴其他任務
分鐘任務依賴其他任務
其他任務依賴周、月、年任務
附錄二:工作流程調度說明
在DataWorks中支援將工作流程作為一個整體,添加上下遊節點,其調度說明詳情請參見:周期工作流程編排。
附錄三:跨時區全球資料彙總情境(指定區間依賴)
當中國數倉統一處理全球多地區資料時,各地區上遊小時任務按當地時間運行,下遊天任務按中國時區統計每日資料。由於時區差異,下遊天任務需通過指定區間依賴上遊各地區小時任務在特定時間視窗內的全部執行個體。
情境樣本(業務日期 2026-01-22)
地區 | 與中國時差 | 依賴類型 | 位移配置 | 實際依賴執行個體 |
印度 | 晚 2.5 小時 | 指定區間 | [-3, 21] | 01-21 21:00 ~ 01-22 21:00(24個執行個體) |
沙特 | 晚 5 小時 | 指定區間 | [-5, 19] | 01-21 19:00 ~ 01-22 19:00(24個執行個體) |
補資料情境下的跨天依賴行為
補資料任務產生的執行個體,其跨天依賴行為與日常調度執行個體有所不同。
1. 指定區間與指定集合的跨天依賴
在執行補資料時,通過指定區間或指定集合配置的跨天依賴將不生效。
具體行為:當為多個業務日期產生補資料執行個體時,系統在解析依賴關係時,會自動忽略掉所有跨越業務日期邊界的依賴。即,補資料執行個體只會掛載其業務日期當天的上遊執行個體,而不會掛載配置中指向前一天或後一天的上遊執行個體。
樣本:一個天任務配置了對上遊小時任務
[-4h, 0]的區間依賴(即依賴當天0點前的4個執行個體)。在日常調度中,5月11日的執行個體會依賴5月10日 20:00-23:00的執行個體。但在補5月11日的資料時,這一跨天依賴會被忽略,該執行個體將不會掛載任何上遊。
2. 補資料的預設跨天依賴(串列機制)
預設情況下,執行不分組的批量補資料時,不同業務日期的執行個體之間存在隱式的串列依賴。
具體行為:業務日期為
D的所有補資料執行個體,會整體等待業務日期為D-1的所有補資料執行個體全部運行成功後,才開始執行。這意味著,若D-1日期中有任何一個執行個體運行失敗,D日期的所有執行個體都不會被調度。例外情況:若補資料時選擇了分組執行,則該串列機制不生效。每個執行組內的任務執行個體將獨立運行,不受其他組執行個體狀態的影響。