全部產品
Search
文件中心

DataWorks:任務運行診斷

更新時間:Jun 19, 2024

任務實際執行時,除了受資料開發(DataStudio)中定義的定時調度時間影響外,還受多方因素影響。例如,上遊任務的定時時間、上遊任務實際執行完成時間、任務執行資源組所剩資源等。本文為您介紹如何使用運行診斷功能快速定位任務未運行成功的原因。

前提條件

請確保已存在周期執行個體。調度任務通過周期執行個體的方式自動調度運行,建立任務周期執行個體產生與您在資料開發定義的節點執行個體產生方式有關。

背景資訊

在營運中心,您可通過執行個體運行狀態、執行個體顏色及標識,判斷任務啟動並執行階段或任務未啟動並執行原因,具體可通過查看日誌定位。
  • 執行個體顏色及標識:營運中心按照不同的顏色及標識來辨識任務所處於運行流程中的哪個階段,不同顏色及標識表示不同的運行狀態。具體如下表所示。
  • 執行個體運行狀態:您也可查看執行個體詳情,通過執行個體的屬性 > 任務狀態,檢查任務未啟動並執行原因。

序號

狀態類型

狀態標識

運行流程圖

1

運行成功狀態

運行成功

運行流程圖

2

未運行狀態

未運行

3

運行失敗狀態

運行失敗

4

執行狀態

正在運行

5

等待狀態

等待狀態

6

暫停/凍結狀態

暫停凍結狀態

說明 若上遊一直處於運行中的狀態,您可以參考以下解決方案。
  • 非離線同步任務一直處於運行中的狀態,如果需要查看具體原因您可以單擊申請連結或掃描下方二維碼加入DataWorksDingTalk交流群進行售前售後諮詢,諮詢可直接@智能機器人,值班時間段內也可直接聯絡值班人員。DataWorksDingTalk交流群二維碼如下。支援人員二維碼
  • 離線同步任務一直處於運行中的狀態,可能處於長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務已耗用時間長的問題

進入運行診斷

任務未運行或運行失敗情境下,您可在營運中心找到問題執行個體(周期執行個體補資料執行個體測試執行個體),進入運行診斷,快速定位任務未啟動並執行原因。步驟如下圖。運行診斷入口

任務運行診斷流程

任務是否能成功運行,受其上遊依賴、定時時間、資源群組、任務本身執行情況等多方因素影響。當任務長時間未運行或運行失敗時,您可通過DataWorks提供的運行診斷功能,按照如下流程檢查導致任務未運行成功的原因。
檢查項說明
一、檢查上遊依賴節點依賴關係設定完成後,需當前節點依賴的所有任務均執行完成,該節點才會運行。您可通過運行診斷 > 上遊依賴定位上遊存在問題的執行個體。
二、檢查定時時間在資料開發(DataStudio)定義的節點調度時間為任務的預期執行時間。您可通過運行診斷 > 定時檢查定位是否到達任務啟動並執行定時時間。

若當前節點依賴的上遊任務均已執行成功(即當前節點所依賴的資料均已產出),當前節點才會校正是否已滿足自己定義的調度時間,通過校正結果判斷是否立即執行任務。

三、檢查調度資源

通常,滿足當前節點所依賴的上遊任務均已執行完成當前節點的定時時間已到達兩個條件後,該節點才會啟動調度。

但由於調度資源有限,若任務所使用的調度資源群組所剩資源不足以運行當前任務,該任務將處於等待調度資源的狀態。您可通過運行診斷 > 調度資源定位資源使用方式。
四、檢查任務執行情況當滿足上述運行條件時,DataWorks會將任務下發至對應的執行資源或服務執行。若任務處於運行失敗狀態,您可通過運行診斷 > 任務執行快速定位失敗原因。
五、任務警示診斷(可選)對於配置了監控警示的任務,可在該任務的運行診斷頁面,查看將當前任務納入監控的規則或基準列表,以及各個規則或基準的觸發情況。

檢查上遊依賴

您可通過以下內容瞭解上遊任務對當前任務執行影響,並通過檢查上遊依賴,定位阻塞當前任務執行的關鍵上遊任務。

上遊任務對當前任務執行影響

節點依賴關係設定完成後,需當前節點依賴的所有任務均執行完成,該節點才會啟動運行。上遊任務對當前任務執行的影響如下:
  • 上遊任務是否為成功狀態,決定當前任務是否執行

    節點依賴關係設定後,預設當前任務與當前任務依賴的上遊存在資料依賴(即上遊任務未執行,將導致當前節點依賴的上遊資料未產出,當前節點執行會產生資料品質問題)。因此,當前任務除了要到達自己設定的任務調度時間外,還需檢查當前依賴的所有上遊任務是否均執行完成。

  • 上遊任務的定時時間,決定當前任務的最早開始執行時間

    上遊任務存在自己的定時時間,到達該時間後,上遊任務才會執行。下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,下遊任務也不會調度,需等待上遊任務運行完成後才會調度運行。因此,上遊任務的定時時間,將決定當前任務最早開始執行時間。詳情請參見依賴關係對任務執行的影響

定位上遊未啟動並執行任務

若任務處於未運行狀態(即執行個體為未運行標識),您可單擊運行診斷,快速跳轉至上遊依賴頁面,自動通過上遊分析功能快速定位上遊未啟動並執行執行個體。
說明 上遊分析功能預設向上遍曆六層,尋找上遊未運行成功的任務。若未找到,可單擊介面的上遊分析,繼續分析。
上遊依賴檢查
特殊情況說明:
  • 孤立節點:若展開上遊節點時,未運行任務無任何上遊,則該任務為情境:節點孤立。孤立節點不會自動調度,請及時為當前節點設定上遊依賴。
  • 上遊凍結:若上遊任務被凍結,凍結的上遊將阻塞下遊任務執行。請聯絡上遊任務責任人,確認凍結原因,及時調整業務。

檢查定時時間

在資料開發定義的節點調度時間為任務預期的執行時間。若當前節點依賴的上遊任務均已執行成功(即當前節點所依賴的資料均已產出),當前節點才會校正是否已滿足自己定義的調度時間,進而通過校正結果判斷是否立即執行任務。通常,校正存在如下兩種情況:
  • 已到達當前任務的定時時間,但上遊任務仍處於執行中狀態。

    該情境下,一旦上遊任務均執行完成後,若任務使用資源群組充足,當前任務會立即執行。

  • 上遊任務均已執行完成,但未到達當前任務的定時時間。
    該情境下,需等待任務的定時時間到達後,任務才可執行。若任務處於等待時間狀態(即執行個體為等待標識),您可單擊運行診斷,快速跳轉至定時檢查頁面查看詳情。定時檢查

檢查調度資源

當滿足當前節點所依賴的上遊任務均已執行完成當前節點的定時時間已到達條件時,當前任務會開始調度。但由於調度資源有限,若任務所使用的調度資源群組所剩資源不足以運行當前任務,則該任務將處於等待調度資源狀態。
說明 通常,調度資源與任務執行資源為不同的資源,調度資源僅負責將任務下發至引擎的執行資源上。若任務長時間執行佔用引擎資源,即使調度資源下發任務至引擎,也會由於引擎資源不足而導致任務阻塞。您可以通過DataWorks任務下發機制圖示輔助理解該說明。

定位佔用資源的任務

若任務處於等待資源狀態(即執行個體為等待標識),您可單擊運行診斷,快速跳轉至調度資源頁面,查看哪些任務正在佔用資源並及時調整。

可能出現等待資源的情境

若長期調度正常的任務突然出現等待資源的情況,請確認是否存在以下情境。
情境描述
是否存在異常任務長時間佔用資源未釋放,導致任務阻塞

請通過運行診斷 > 調度資源頁面,確認是否存在長時間佔用資源的任務,通過查看任務執行日誌定位長時間佔用資源的原因。

該資源群組上執行的任務是否增加

當前使用的資源群組所執行的任務增加,會導致當前任務出現等待資源情況。您可根據需要調整任務的優先順序或任務使用的資源群組。

存在大量記憶體的任務

請在團隊內確認是否存在Shell、PyODPS任務使用大量獨享資源群組記憶體的情況存在。

重要
  • 公用調度資源群組租戶共用,高峰期(通常為00:00~09:00)將出現資源搶佔情況,無法保障任務執行時效性。若使用公用調度資源群組出現等待資源情況,建議將任務遷移至獨享調度資源群組執行,詳情請參見獨享調度資源群組
  • 獨享調度資源群組最大支援的任務並行數,與您所購買的資源群組規格有關。獨享調度資源群組各規格支援執行的任務數,詳情請參見獨享調度資源群組

檢查任務執行情況

當滿足以上運行條件時,DataWorks會將任務下發至對應的執行資源或服務上執行。DataWorks任務下發機制,詳情請參見任務下發機制

若任務處於運行失敗狀態(即執行個體為運行失敗標識),您可單擊運行診斷,快速跳轉至任務執行頁面,查看任務執行失敗的原因。運行失敗通常,任務執行失敗存在以下幾種情況:
  • 任務代碼執行失敗(資料同步邏輯或資料加工邏輯執行失敗)。
  • 任務中產出表配置的資料品質規則校正失敗(即任務關聯的資料品質規則校正失敗)。
  • 任務被凍結。

檢查SQL任務代碼執行情況

SQL任務可直接在運行診斷 > 任務執行頁面查看任務的詳細執行日誌。DataWorks會將任務下發至對應的引擎執行,若SQL語句執行失敗,您可查看相應引擎文檔定位原因。

檢查同步任務執行情況

若Data Integration同步任務開始執行,表示DataWorks的調度系統已經開始調度該任務。但任務是否已經開始同步資料,需根據詳細的執行日誌進行判斷。Data Integration任務日誌分析,詳情請參見離線同步處理記錄分析。常見的同步任務執行問題如下:
  • 資料同步日誌長時間列印WAIT

    若資料同步日誌長時間列印WAIT,表示DataWorks的調度系統已將同步任務下發,由於當前任務所使用的同步資源群組剩餘資源無法支援當前任務執行,正在等待其他任務執行完成釋放資源。

    例如,4C8G獨享Data Integration資源群組最大支援8個並發數同時執行,若當前存在3個並發數為3的任務,其中2個任務同時執行,則機器剩餘的並發數為2,此時另一個並發數為3的任務將由於資源群組剩餘資源不足,導致當前任務進入等待狀態,日誌顯示wait。該情境,可通過運行診斷 > 任務執行 > Data Integration頁簽,查看任務等待Data Integration資源時,哪些任務正在佔用該資源,以及單個任務佔用的資源量。
    說明
    • 一個Data Integration任務將佔用一個調度資源,若任務長時間未運行成功,可能會阻塞其他任務運行。
    • 如果資源使用率高但實際無任務執行或資源群組上可執行任務數未達資源群組上限但仍無法執行任務,您可以單擊申請連結或掃描下方二維碼加入DataWorksDingTalk交流群進行售前售後諮詢,諮詢可直接@智能機器人,值班時間段內也可直接聯絡值班人員。DataWorksDingTalk交流群二維碼如下。二維碼
    同步任務執行檢查
    說明 獨享Data Integration資源群組最大支援多少並發同時執行,與您所購買的資源群組規格有關。詳情請參見獨享Data Integration資源群組
  • 資料同步失敗

    若同步任務執行失敗,您可參考詳細報錯與具體外掛程式說明定位原因。詳情請參見Data Integration常見問題

任務警示診斷

對於配置了監控警示的任務,您可在該任務運行診斷頁面的提示資訊地區,單擊查看詳情,在監控詳情對話方塊查看將當前任務納入監控的規則或基準列表,以及各個規則或基準的觸發情況。
說明 僅當任務配置了監控警示時,才會出現該診斷資訊。詳情請參見任務警示資訊診斷
監控警示