全部產品
Search
文件中心

DataWorks:提交節點時提示:輸入輸出和代碼血緣分析不匹配

更新時間:Jun 19, 2024

問題現象

提交節點時,系統出現提示:輸入輸出和代碼血緣分析不匹配。血緣檢查現象

可能原因

當代碼中SELECT的表與節點的依賴的父節點配置不一致,或代碼中INSERT、CREATE的表與節點的本節點的輸出不一致時,會出現該提示。

以上圖為例,說明:

  • 您提交的節點代碼中有SELECT名稱為table2的資料,但是table2並沒有配置為節點的依賴的父節點。

  • 您提交的節點中有將doc_test配置為節點的本節點的輸出,但是節點代碼中並沒有INSERT或CREATE名稱為doc_test的表。

解決方案

  • 非周期性產生資料的表可以忽略提示直接提交。

    由於DataWorks的調度依賴主要保障調度節點定時更新的表資料,所以非DataWorks平台上調度更新的表,平台無法監控。當節點代碼中SELECT非周期性調度生產的表資料時,您需要刪除通過SELECT自動產生的依賴的上遊節點配置。非周期性調度生產資料的表包括:

    • 從本地上傳到DataWorks的表

    • 維表

    • 非DataWorks調度產出的表

    • 手動任務產出的表

  • 對於周期性產生資料的表,您需要仔細檢查表資料的血緣關係與調度依賴關係是否一致。

    如果您不檢查直接強制提交節點,可能會導致以下影響:

    • 例如,代碼中SELECT一張表A,並且表A是個調度節點每天定時產出的表(即表A不是非周期性產生資料的表),如果沒有將表A添加為本節點的依賴的父節點,形成依賴關係的時,某次產生表A的節點沒有執行成功的話,下遊節點取表A的資料即取用的表A上一次運行結果的資料,可能會有問題。

    • 例如,在代碼中CREATE或INSERT一張表B,沒有將表B作為本節點的輸出,則如果有節點SElECT表B,自動解析會自動將表B作為節點的輸入,形成依賴關係,但是系統無法通過這個依賴關係找到產出表B的節點,提交節點時會報錯:當前節點依賴的父節點輸出名不存在。詳情可參見提交節點報錯:當前節點依賴的父節點輸出名不存在