全部產品
Search
文件中心

DataWorks:情境2:依賴上一周期的結果時,如何配置調度依賴

更新時間:Jun 19, 2024

依賴上一周期是指依賴某個節點的上一周期執行個體,即跨周期依賴某節點上一周期執行個體是否正常執行。

DataWorks支援以下三種跨周期依賴形式:

  • 一層子節點

    • 節點依賴關係:依賴當前節點的下遊。例如節點A存在B、C、D三個下遊節點,依賴一層子節點是指節點A依賴B、C、D三個節點的上一周期,即本次節點是否運行取決於上一周期下遊節點是否運行成功。

    • 業務情境:本次(本周期)節點的運行,依賴下遊節點上一周期對本節點上一周期結果表(即本節點輸出表)的資料清洗結果是否成功。如果您需要查看下遊節點對當前節點資料的清洗結果是否符合預期,可以對下遊節點產出的結果表配置資料品質規則。

  • 本節點

    • 節點依賴關係:跨周期自依賴(依賴當前節點的上一周期),即本次節點是否運行取決於上一周期本節點是否運行成功。

    • 業務情境:本周期節點運行依賴上一周期該節點業務資料的產出情況。如果需要查看節點資料清洗結果是否符合預期,可以對節點產出的結果表配置資料品質監控規則。

  • 自訂:手動輸入需要依賴的其他節點,此處需要輸入節點ID。如果存在多個節點,需要使用英文逗號(,)分隔,例如12345,23456:

    • 節點依賴關係:手動輸入需要依賴的節點,本周期節點運行取決於自訂依賴的節點上一周期該是否運行成功。

    • 業務情境:商務邏輯上需要依賴其它業務的資料正常產出,但本節點中沒有操作該業務資料。

依賴上一周期和依賴本周期的區別:在營運中心中查看節點依賴關係時,所有跨周期依賴的節點都會以虛線的形式展示。

下線節點時需要刪除節點依賴關係,需要刪除的依賴關係包括跨周期依賴(①)和同周期依賴(②)。刪除

您可以根據業務需求選擇需要依賴的上遊節點的周期。通常同周期依賴和跨周期依賴只需要選擇一個,自動解析預設依賴上遊同周期。如果需要修改,請刪除同周期依賴,再添加跨周期依賴。詳情請參見調度依賴邏輯說明

下圖為商務程序節點的依賴關係。依賴關係

營運中心頁面為您展示商務程序的依賴關係。依賴關係

以配置xc_create節點代碼為例。節點

如上圖中的SQL節點內容所示,xc_create節點建立xc_1、xc_2兩張表(或產出兩張表的資料),並將xc_1、xc_2作為本節點的輸出。

以配置xc_select節點代碼為例。節點樣本

如上圖中的SQL節點內容所示,xc_select節點查詢xc_create節點中的表資料,通過自動解析功能,自動將xc_create節點解析為本節點依賴的上遊。

依賴上一周期:一層子節點

節點依賴:依賴當前節點的下遊。例如,下遊節點的上一周期是否運行成功。比如節點A存在下遊節點B、C、D三個節點,依賴一層子節點是節點A依賴B、C、D三個節點的上一周期。

業務情境:本周期該節點是否進行資料清洗取決於下遊節點上一周期對本節點的結果表(即本節點輸出表)資料清洗的結果。如果下遊節點的上一周期運行成功,本周期的節點執行個體開始運行,否則將不能運行。

xc_create選擇依賴一層子節點。一層子節點

營運中心頁面為您展示各節點的依賴關係。依賴關係

依賴上一周期:本節點

節點依賴:本周期節點是否運行取決於上一周期本節點是否運行成功。如果上一周期本節點未完成,將阻礙本周期節點運行。

業務情境:本次節點是否進行資料清洗取決於上一周期本節點資料清洗情況。此處設定節點為小時調度以便查看。

您可以進入營運中心 > 周期任務營運 > 周期執行個體頁面,查看節點的依賴情況。

說明

小時節點設定自依賴(依賴上一周期:本節點)的情況下,如果本節點上一周期執行個體未成功運行,則該節點下一個小時執行個體也不會執行。

例如,每小時調度的任務,如果第一個執行個體執行失敗了或者未運行,則當天該節點的其它小時執行個體也不會運行。

依賴上一周期:自訂節點

節點依賴:代碼中沒有用到1000374815節點的產出表,但業務上需要依賴該1000374815節點的上一周期是否正常產出資料。從節點關係來說,xc_create節點需要依賴1000374815節點的上一周期。

業務情境:商務邏輯上需要依賴1000374815節點正常產出的業務資料,但本節點(xc_create)中沒有操作該業務資料(沒有select1000374815節點產出的結果表)。

xc_create節點依賴的上遊自訂選擇1000374815節點。節點

您可以進入營運中心 > 周期任務營運 > 周期執行個體頁面,查看節點的依賴情況。周期執行個體

依賴上一周期進階配置

考慮到某些分支節點的下遊有兩個節點,通常只有一個節點被選中,另外一個節點會被置為空白跑,同時該空跑屬性會不斷向下傳導至其子節點的情況,DataWorks新增了上遊節點空跑屬性不進行跨周期傳導的調度特性。

但如果下遊分支節點中,某一個分支節點依賴自身的上一周期,同時上一周期節點未被選中,則該節點會永遠空跑。

例如,節點(我是左邊)被置為空白跑,則其下遊節點也會被置為空白跑。分支節點

為了滿足下一周期的節點是否運行由下一周期的分支節點決定,而不是上一周期的空跑屬性來決定的需求,您可以進行以下操作:

  1. 單擊節點編輯頁面右側的調度配置

  2. 時間屬性地區,選中依賴上一周期

  3. 單擊進階配置

  4. 選中上遊節點空跑屬性不進行跨周期傳導,該任務將不被上一周期分支節點的空跑屬性影響。空跑屬性

說明

普通節點上一周期的空跑屬性不適用該選項,僅分支節點未被選中導致的空跑屬性會被影響。

跨周期依賴的典型情境

  • 即時情境一:

    • 情境描述:天任務依賴小時任務,但不想等24個小時任務執行個體運行結束才運行天任務,希望天任務能夠在定時時間12:00時運行。

    • 解決方案:上遊小時任務配置為依賴上一周期 > 本節點,設定下遊天任務的定時調度時間為12:00,且天任務無需設定跨周期依賴。

      待上遊小時任務定時時間12點的執行個體運行成功後,下遊天任務便會運行。

  • 即時情境二:

    • 即時情境:天任務依賴小時任務昨天的資料。

    • 解決方案:下遊天任務配置為依賴上一周期 > 自訂,輸入上遊小時任務的ID。

  • 即時情境三:

    • 即時情境:小時任務依賴天任務,當上遊天任務運行結束,下遊小時任務多個周期定時時間已到,導致小時任務多周期並發調起,該如何處理?

    • 解決方案:下遊小時任務配置為依賴上一周期 > 本節點

  • 即時情境四:

    • 即時情境:本節點依賴自己上一周期產出的資料,如何確認上一周期產出的時間?

    • 解決方案:本節點配置為依賴上一周期 > 本節點