DataWorks周期調度節點配置生效預設採用T+1模式,即任務發布次日產生的執行個體為根據新發布的內容產生。如需讓新發布或變更的任務在當天生效運行,可使用發布後即時產生模式。
工作原理
在DataWorks中,對節點進行變更並執行提交(發布)操作後,新配置對執行個體產生的影響方式主要分為以下兩種。這兩種方式決定了變更是在當天立即生效,還是在下一個調度周期(次日)才生效。
方式A:T+1次日產生 (系統預設)
此方式為系統預設推薦選項,旨在通過將變更與當天的運行執行個體隔離,最大限度地保障當天生產環境的穩定性。
運行原理:
發佈動作在當天(T日)僅作為一次定義變更,不干預當天的執行個體運行。當天(T日)影響:
行為:僅更新節點的代碼與屬性定義,不影響當天任何已產生或即將產生的執行個體。T日的所有執行個體仍將按照發布前的舊配置運行。
建議:若希望新邏輯在當天對資料生效,建議在發布後手動對T日執行個體執行“補資料”操作。
次日(T+1)影響:
所有變更將在發布次日(T+1)的第一個周期執行個體開始,統一按新配置產生和運行。
方式B:發布後及時產生
此方式旨在讓節點變更儘快在發布當天生效。其核心邏輯是:系統以“任務發布時間點”為基準,判斷髮布當天(T日)的周期執行個體應如何處理。
運行原理:
系統會將T日每個周期執行個體的定時時間與“發布點 + 10分鐘系統緩衝期”進行比較。定時時間 < 目前時間 + 10分鐘
現象:新任務-空跑,舊任務-不產生執行個體
行為:對於從未提交過的新任務,該執行個體被視為“到期”,會變為空白跑狀態,不執行其內部的商務邏輯。防止在發布前的舊執行個體上錯誤地運行新代碼;對於修改後重新提交的舊任務,已到期的執行個體不會產生。
定時時間 > 發布時間 + 10分鐘
現象:正常執行
行為:系統會立即根據新配置產生並執行該執行個體。
次日(T+1)影響:
發布次日(T+1)的所有周期執行個體,將全部基於新配置產生。
為確保跨天調度邏輯的確定性,存在一個特殊的“跨天視窗期”(如圖中的 23:30 - 24:00)。在此時間視窗內提交的發布,無論選擇何種生效方式,其變更都將在 T+2 日 才開始生效。
使用限制
變更生效時間:每日
23:30至24:00為系統批量產生執行個體的時間。在此期間提交的發佈動作,其變更將在T+2產生的周期執行個體中生效。資料來源變更限制:如果僅修改節點關聯的資料來源,即使選擇
發布後即時產生,當天已產生的周期執行個體也不會更新,仍會使用變更前的資料來源執行。如需立即生效,需使用補資料功能。
發布後即時產生情境分析
發布後即時產生風險較高,使用不當可能導致依賴關係錯亂、執行個體被意外刪除或替換,影響當天任務的穩定性。
推薦情境
建議僅在以下情境謹慎使用:
建立並需當天啟動並執行節點:建立且無複雜上下遊依賴的節點,需在發布後當天運行。
替換已有執行個體:使用新配置替換當天已產生但尚未啟動並執行周期執行個體。
高風險情境(不推薦)
不建議在以下情境使用此功能,否則可能導致當天依賴關係複雜化,甚至引發調度異常:
修改發行任務的調度配置:尤其是有複雜上下遊依賴的任務。修改調度周期(如從天調度改為小時調度)並即時發布,可能導致部分舊執行個體被保留,部分新執行個體被建立,依賴關係錯亂。
上下遊執行個體產生方式不一致:例如,上遊節點使用
T+1模式,而下遊節點使用發布後即時產生。此操作會導致下遊節點當天產生的執行個體找不到上遊依賴,成為孤立節點且無法自動運行。
替代方案
對於修改發行任務的情境,更安全的操作是:
使用預設的
T+1模式發布任務。發布成功後,對該任務執行補資料操作,手動觸發當天需要啟動並執行執行個體。
發布後即時產生情境實踐
情境一:建立節點選擇發布後即時產生執行個體
新節點發布後,其執行個體執行情況取決於定時時間與發布時間的關係(需考慮10分鐘延遲)。
定時時間 | 執行個體狀態與行為 |
晚於(發布時間 + 10分鐘) | 系統將產生一個可正常調度的周期執行個體,並在到達定時時間後執行。 |
早於或等於(發布時間 + 10分鐘) | 系統將產生一個執行個體狀態為即時產生的到期執行個體。該執行個體為空白跑狀態,不會實際執行。 若需執行當天資料,可選擇進行補資料操作,補業務時間昨天的資料。該操作產生執行個體時也會存在10分鐘的時間差,詳情請參見工作原理。 |

樣本:假設任務發布至生產環境的時間為12:00,則即時轉執行個體生效時間點為12:10。
若任務的定時時間在
12:10後,則任務將真實調度執行。若任務的定時時間在
12:10前,則任務將空跑,其執行個體狀態為即時產生的到期執行個體。
情境二:更新發行任務的調度周期
更新生產任務B的調度時間(即調度頻率與定時時間),並將變更操作發布至生產環境,該任務當天周期執行個體可能會出現變更前與變更後的執行個體同時存在,因此,會導致任務當天的依賴關係比較複雜。
此情境僅發生在即時轉執行個體任務發布的當天,發布第二天任務會正常根據配置組建循環執行個體。
具體如下:
任務的定時時間為未來時間
DataWorks將根據最新調度配置替換已產生的未來時間段的執行個體。
任務的定時時間為過去時間
DataWorks會保留定時時間之前的執行個體,替換或刪除定時時間之後的執行個體。
情境三:上下遊任務執行個體產生方式不一致
若上下遊均為建立節點,並且上下遊任務的執行個體產生方式不一致。例如,上遊選擇T+1次日產生,下遊選擇發布後即時產生,則會導致產生情境:節點孤立。孤立節點不會自動調度運行,如果該孤立節點下遊依賴較多,會導致下遊任務均不能正常調度,對下遊業務造成嚴重影響。
情境四:變更上遊任務調度時間,對下遊依賴關係的影響
不同周期頻率的上下遊任務互相依賴的情況下修改調度時間,會按照上遊節點最新的調度配置(天、月、小時依賴)來設定下遊依賴。
變更調度時間的生產任務,其下遊執行個體會按照最新的調度配置,為新產生的執行個體和未替換的舊執行個體掛載依賴,小時、分鐘各情境依賴情況,詳情請參見必讀:複雜依賴情境調度配置原則與樣本。待發布的節點版本,其執行個體產生方式為發布後即時產生,且存在調度時間變更時,才會出現該情境。
樣本情境如下:
情境一:上遊節點從每6小時調度一次,變更為每8小時調度一次(0:00,08:00,16:00),並且選擇即時產生執行個體。

情境二:上遊節點從每6小時調度一次,變更為每日16點調度一次,並且選擇即時產生執行個體。
