時間屬性用于定義節點在生產環境的周期調度方式。您可通過調度配置的時間屬性,配置節點生成周期實例的方式,實例調度周期與執行時間,是否支持重跑,任務執行超過多長時間自動退出等。本文為您介紹如何配置節點調度的時間屬性。
配置指引
您需進入數據開發節點的編輯頁面,單擊右側導航欄的調度配置,配置節點的時間屬性。
您可在調度配置中定義單個任務調度屬性,也可通過批量操作功能批量修改任務調度屬性。例如,批量修改任務調度時間,批量修改任務使用的調度資源組等。
時間屬性包含的配置類別如下表。
類別 | 描述 |
用于定義節點在生產環境生成實例的時間。 | |
用于定義節點在生產環境的運行方式。 | |
用于定義任務調度日期及調度方式。 | |
用于定義節點在生產環境中的運行頻率(生成周期實例個數及實例運行的時間)。 | |
用于定義節點運行超過多長時間會失敗退出。 | |
用于定義節點生成的實例是否可以重跑,即從數據冪等性考慮,任務是否可以重跑,或者在什么情況下可以重跑。 | |
用于定義節點正常自動調度運行的時間范圍,該時間范圍外,節點將不再自動調度。 |
使用說明
調度任務的時間屬性配置,僅定義任務預期執行時間,其實際是否執行與實際執行時間受多方因素影響,包括但不限于以下場景:
調度開關控制
僅當DataWorks工作空間開啟啟用調度周期開關后,工作空間中的任務才可以根據其配置自動調度運行。您需進入工作空間的調度設置頁面,開啟相應開關,詳情請參見調度設置。
依賴關系對任務執行時間的影響
任務定時時間基于單個節點維度定義,但任務實際運行時間與節點依賴的上游節點的定時時間有關,所以即便當前節點的定時時間早于上游節點,當前節點仍需等待上游節點的定時時間到來并且執行成功后,當前節點才會執行,詳情請參見依賴關系對任務執行的影響。
執行資源對任務執行時間的影響
當前節點的執行,除了取決于上游父節點的定時時間及運行是否成功外,還與當前節點本身執行所用的資源組有關。任務執行時間點是否存在充足的資源也將影響任務的執行,詳情請參見任務執行機制。
環境影響
DataWorks僅生產環境才會自動調度,若需要進行周期調度,您需要將任務發布至生產環境。開發環境不支持自動調度。
調度任務執行方式
DataWorks上,調度任務會根據調度類型及周期數生成相應的周期實例(例如,小時調度任務每天會根據周期數產生相應數量的小時實例),并通過實例的方式運行任務。
調度時間
在凌晨業務高峰期,所有定時時間設置為00:00點的任務(包括工作空間根節點),預計將于00:00~00:05之間調度運行。
實例生成方式
節點提交發布至生產環境調度系統后,平臺會根據節點配置的實例生成方式(包括T+1次日生成和發布后即時生成)生成自動調度的周期實例,無論使用哪種實例生成方式,都可在運維中心的周期任務界面看到任務的最新依賴情況。但周期實例何時生效或依賴關系何時更新,與您選擇的實例生成方式有關,具體如下。
無論選擇哪種實例生成方式,23:30~24:00
時間段的變更操作均會在節點發布至生產環境后的第三天生效,請盡量避免在該時間段執行任務變更操作。
實例生成方式 | 說明 |
T+1次日生成 | 節點發布至生產環境后第二天自動調度,您可在周期實例頁面查看任務的執行情況。 若您當天需執行任務,可選擇對該任務執行補數據操作。補數據選擇業務時間昨天與今天的周期實例執行情況一致。 |
節點發布至生產環境后當天自動調度,您可在周期實例頁面查看任務的執行情況。 說明 僅當節點設置的定時時間為未來時間,該實例才會正常執行;定時時間為過去時間的實例將會空跑,不真實執行任務(此處存在十分鐘時間間隔)。
|
調度類型
DataWorks支持的調度類型如下表所示。
調度類型 | 影響說明 | 使用場景 |
正常調度 | 按照調度周期配置的定時時間啟動調度,正常執行任務(即會真實跑數據)。 當前節點正常執行后,也會觸發下游節點正常調度執行,通常任務的調度類型默認選中該項。 | 正常狀態運行的周期任務,并且生成的周期實例也是正常狀態運行。 |
暫停調度 | 按照調度周期配置的定時時間啟動調度,但節點狀態被置為暫停(即不會真實跑數據)。 調度到該任務時,系統會直接返回失敗,并且會阻塞依賴當前節點的下游節點執行。 說明 暫停狀態的節點在運維中心的圖標標識為。 | 凍結狀態的周期任務,其生成的周期實例也為凍結狀態。當前節點不可執行,并且阻塞下游節點執行。 當某類業務流程在一定時間內不需要執行時,可選擇此調度類型來凍結業務流程根節點。當業務需要執行時,可再對業務流程根節點執行解凍操作。解凍任務,詳情請參見任務凍結與解凍。 |
空跑調度 | 按照調度周期配置的定時時間啟動調度,但該節點為空跑狀態(即不會真實跑數據)。 調度到該任務時,系統會直接返回成功(執行時長為 | 當某個節點在一定時間內不需要執行,并且不阻塞他的下游節點執行時,可選擇此類型調度。 |
調度日歷
用于定義任務的調度日期與調度方式,DataWorks支持如下兩種日歷:
默認日歷:平臺提供,適用于通用場景。
自定義調度日歷:用戶自定義,適用于有靈活調度日期需求的行業及場景(例如,金融行業)。可根據需要配置日歷所應用的工作空間、日歷的有效期、指定日期任務的調度方式等規則,詳情請參見配置調度日歷。
調度周期
調度周期即任務在調度場景下自動執行的周期數,用于定義在生產環境調度系統中,多久會真實執行一次節點中的代碼邏輯。調度任務會根據調度類型及周期數生成相應的周期實例(例如,小時調度任務每天會根據周期數產生相應數量的小時實例),通過周期實例的方式自動調度運行周期任務。
任務調度頻率與上游任務周期無關
任務多久調度一次與任務本身定義的調度周期有關,與上游任務調度周期無關。
DataWorks支持不同調度周期的任務互相依賴
DataWorks中,調度任務會根據調度類型及周期數生成相應的周期實例(例如,小時調度任務每天會根據周期數產生相應數量的小時實例),通過實例的方式運行任務。周期任務設置的依賴關系,其本質是任務間所生成實例的依賴。上下游任務的調度類型不同,其生成的周期實例數及實例的依賴情況不同。不同調度周期的上下游依賴情況,請參見必讀:復雜依賴場景調度配置原則與示例。
非調度時間任務會空跑
DataWorks上非每天調度的任務(例如周、月調度的任務)在非調度時間內會空跑,當到達任務定義的調度時間后立即返回成功狀態。若下游存在日調度任務,會調起該下游日調度任務正常執行。即上游空跑,下游調度任務正常根據節點定義的調度時間執行。
任務執行時間說明
此處僅設置任務預期調度時間,任務的實際執行時間受多方因素影響。例如,上游定時時間、任務執行資源情況、任務實際運行條件等,詳情請參見任務運行條件說明。
DataWorks支持的調度類型如下。
調度類型 | 說明 | 典型場景配置示例 |
分鐘調度即每天指定的時間段內,調度任務按 | 每30分鐘運行一次。 | |
小時調度即每天指定的時間段內,調度任務按 | 每小時運行一次。 | |
日調度即調度節點每天在指定的定時時間運行一次。新建周期任務時,日調度默認的時間周期為每天0點運行一次。您可根據需要自行指定運行時間點。 | 每天凌晨24點運行。 | |
周調度即調度任務每周的特定幾天,在特定時間點自動運行一次。 重要 非調度時間內任務每日仍會生成實例,實例顯示為成功狀態,但實際會空跑,不會真實執行任務。 | 每周五中午12點運行。 | |
月調度即調度任務在每月的特定幾天,在特定時間點自動運行一次。 重要 非調度時間內任務每日仍會生成實例,實例顯示為成功狀態,但實際空跑,不會真實執行任務。 | 每個月最后一天運行。 | |
年調度即調度任務在每年的特定幾天,在特定時間點自動運行一次。 重要 非調度時間內任務每日仍會生成實例,實例顯示為成功狀態,但實際會空跑,不會真實執行任務。 | 每季度首月最后一天運行。 |
超時定義
設置超時時間后,如果任務運行時長超過超時時間,任務將自動終止運行。其配置說明如下:
超時時間對周期實例、補數據實例、測試實例均生效。
超時時間默認值為3~7天,系統根據實際負載情況動態調整默認的任務超時時間,范圍為3~7天不等。
手動設定超時時間時,最大值可設置為168小時(7天)。
重跑說明
您可在時間屬性中配置節點在特定情況下重跑,以及指定重跑時間及次數。
使用重跑屬性時,應盡量保證任務的冪等性(特殊任務除外),避免在任務出錯重跑后,出現大量數據質量問題。例如,在ODPS SQL的開發過程中,使用
insert overwrite
語句來替代insert into
語句。DataWorks工作空間的調度設置頁面,用于設置重跑相關參數的默認值,設置后,新創建的任務將使用該默認配置。詳情請參見調度設置。
重跑屬性
重跑屬性不能為空,其支持的類型及應用場景如下表所示。
說明單擊去設置默認重跑屬性值,即可設置重跑屬性的默認值。
類型
應用場景
運行成功或失敗后均可重跑
如果節點多次重跑不會影響結果,可選擇使用該重跑類型。
運行成功后不可重跑,運行失敗后可以重跑
如果節點運行一次成功后,重跑后會影響運行結果,而運行失敗后重跑不會影響結果,可選擇使用該重跑類型。
運行成功或失敗后皆不可重跑
如果節點不管運行成功或失敗,重跑后都會影響運行結果(例如,某些數據同步節點),可選擇使用該重跑類型。
說明當選擇該類型時,如果系統出故障,在故障恢復后,系統也不會自動重跑相應節點。
不支持配置出錯自動重跑。
出錯自動重跑
出錯自動重跑(即任務運行失敗后會自動觸發重跑)的配置參數說明如下表所示。
參數
描述
重跑次數
周期任務調度執行失敗的情況下,默認自動重跑的次數。
重跑次數最少配置為1(即任務出錯后自動重跑1次),最多配置為10(即任務出錯后會自動重跑10次)。您可以根據業務需要進行修改。
重跑間隔
默認每次重跑的間隔為30分鐘,最小支持設置為1分鐘,最大支持設置為30分鐘。
說明當重跑屬性設置為運行成功或失敗后皆不可重跑時,則不會顯示出錯自動重跑屬性,即任務出錯不會自動重跑。
您可以在調度配置頁面,設置工作空間級別的默認重跑次數和重跑間隔。詳情請參見調度設置。
任務執行時,超過了超時時間導致的節點失敗,自動重跑配置將不生效。
生效日期
調度節點在有效日期內生效并自動調度,超過有效期的任務將不會自動調度。此類任務為過期任務,您可在運維大屏查看過期任務數量,并根據情況對其做下線等處理。
附錄:關于空跑現象說明
包含指定執行日期的周、月、年調度節點,在不真實跑數據的日期內,同樣會按照調度周期的定時時間啟動調度。但該實例的狀態為空跑狀態(即不會真實跑數據)。當調度到空跑狀態的實例時,其空跑表現如下:
系統直接返回運行成功,即執行時長為
0
秒。不會真正執行任務,即執行日志為空。
不會阻塞依賴當前節點的下游節點執行,即下游節點正常執行。
不會占用資源。