任務實際執行時,除了受資料開發(DataStudio)中定義的定時調度時間影響外,還受多方因素影響。例如,上遊任務的定時時間、上遊任務實際執行完成時間、任務執行資源組所剩資源等。本文為您介紹如何使用運行診斷功能快速定位任務未運行成功的原因。
前提條件
請確保已存在周期執行個體。調度任務通過周期執行個體的方式自動調度運行,建立任務周期執行個體產生與您在資料開發定義的節點執行個體產生方式有關。背景資訊
- 執行個體顏色及標識:營運中心按照不同的顏色及標識來辨識任務所處於運行流程中的哪個階段,不同顏色及標識表示不同的運行狀態。具體如下表所示。
- 執行個體運行狀態:您也可查看執行個體詳情,通過執行個體的 ,檢查任務未啟動並執行原因。
序號 | 狀態類型 | 狀態標識 | 運行流程圖 |
1 | 運行成功狀態 | ||
2 | 未運行狀態 | ||
3 | 運行失敗狀態 | ||
4 | 執行狀態 | ||
5 | 等待狀態 | ||
6 | 暫停/凍結狀態 |
- 非離線同步任務一直處於運行中的狀態,如果需要查看具體原因您可以單擊申請連結或掃描下方二維碼加入DataWorksDingTalk交流群進行售前售後諮詢,諮詢可直接@智能機器人,值班時間段內也可直接聯絡值班人員。DataWorksDingTalk交流群二維碼如下。
- 離線同步任務一直處於運行中的狀態,可能處於長時間等待任務執行資源,或實際運行過程中部分邏輯處理較慢,詳情請參見如何排查離線同步任務已耗用時間長的問題。
進入運行診斷
任務運行診斷流程
檢查項 | 說明 |
一、檢查上遊依賴 | 節點依賴關係設定完成後,需當前節點依賴的所有任務均執行完成,該節點才會運行。您可通過 | 定位上遊存在問題的執行個體。
二、檢查定時時間 | 在資料開發(DataStudio)定義的節點調度時間為任務的預期執行時間。您可通過 定位是否到達任務啟動並執行定時時間。 若當前節點依賴的上遊任務均已執行成功(即當前節點所依賴的資料均已產出),當前節點才會校正是否已滿足自己定義的調度時間,通過校正結果判斷是否立即執行任務。 |
三、檢查調度資源 | 通常,滿足當前節點所依賴的上遊任務均已執行完成、當前節點的定時時間已到達兩個條件後,該節點才會啟動調度。 但由於調度資源有限,若任務所使用的調度資源群組所剩資源不足以運行當前任務,該任務將處於等待調度資源的狀態。您可通過 定位資源使用方式。 |
四、檢查任務執行情況 | 當滿足上述運行條件時,DataWorks會將任務下發至對應的執行資源或服務執行。若任務處於運行失敗狀態,您可通過 | 快速定位失敗原因。
五、任務警示診斷(可選) | 對於配置了監控警示的任務,可在該任務的運行診斷頁面,查看將當前任務納入監控的規則或基準列表,以及各個規則或基準的觸發情況。 |
檢查上遊依賴
您可通過以下內容瞭解上遊任務對當前任務執行影響,並通過檢查上遊依賴,定位阻塞當前任務執行的關鍵上遊任務。上遊任務對當前任務執行影響
- 上遊任務是否為成功狀態,決定當前任務是否執行
節點依賴關係設定後,預設當前任務與當前任務依賴的上遊存在資料依賴(即上遊任務未執行,將導致當前節點依賴的上遊資料未產出,當前節點執行會產生資料品質問題)。因此,當前任務除了要到達自己設定的任務調度時間外,還需檢查當前依賴的所有上遊任務是否均執行完成。
- 上遊任務的定時時間,決定當前任務的最早開始執行時間
上遊任務存在自己的定時時間,到達該時間後,上遊任務才會執行。下遊任務的定時已耗用時間若早於上遊任務,即便到達下遊任務的定時時間,下遊任務也不會調度,需等待上遊任務運行完成後才會調度運行。因此,上遊任務的定時時間,將決定當前任務最早開始執行時間。詳情請參見依賴關係對任務執行的影響。
定位上遊未啟動並執行任務
- 孤立節點:若展開上遊節點時,未運行任務無任何上遊,則該任務為情境:節點孤立。孤立節點不會自動調度,請及時為當前節點設定上遊依賴。
- 上遊凍結:若上遊任務被凍結,凍結的上遊將阻塞下遊任務執行。請聯絡上遊任務責任人,確認凍結原因,及時調整業務。
檢查定時時間
- 已到達當前任務的定時時間,但上遊任務仍處於執行中狀態。
該情境下,一旦上遊任務均執行完成後,若任務使用資源群組充足,當前任務會立即執行。
- 上遊任務均已執行完成,但未到達當前任務的定時時間。該情境下,需等待任務的定時時間到達後,任務才可執行。若任務處於等待時間狀態(即執行個體為標識),您可單擊運行診斷,快速跳轉至定時檢查頁面查看詳情。
檢查調度資源
定位佔用資源的任務
若任務處於等待資源狀態(即執行個體為標識),您可單擊運行診斷,快速跳轉至調度資源頁面,查看哪些任務正在佔用資源並及時調整。
可能出現等待資源的情境
情境 | 描述 |
是否存在異常任務長時間佔用資源未釋放,導致任務阻塞 | 請通過查看任務執行日誌定位長時間佔用資源的原因。 頁面,確認是否存在長時間佔用資源的任務,通過 |
該資源群組上執行的任務是否增加 | 當前使用的資源群組所執行的任務增加,會導致當前任務出現等待資源情況。您可根據需要調整任務的優先順序或任務使用的資源群組。 |
存在大量記憶體的任務 | 請在團隊內確認是否存在Shell、PyODPS任務使用大量獨享資源群組記憶體的情況存在。 |
檢查任務執行情況
當滿足以上運行條件時,DataWorks會將任務下發至對應的執行資源或服務上執行。DataWorks任務下發機制,詳情請參見任務下發機制。
- 任務代碼執行失敗(資料同步邏輯或資料加工邏輯執行失敗)。
- 任務中產出表配置的資料品質規則校正失敗(即任務關聯的資料品質規則校正失敗)。
- 任務被凍結。
檢查SQL任務代碼執行情況
SQL任務可直接在
頁面查看任務的詳細執行日誌。DataWorks會將任務下發至對應的引擎執行,若SQL語句執行失敗,您可查看相應引擎文檔定位原因。檢查同步任務執行情況
- 資料同步日誌長時間列印WAIT
若資料同步日誌長時間列印WAIT,表示DataWorks的調度系統已將同步任務下發,由於當前任務所使用的同步資源群組剩餘資源無法支援當前任務執行,正在等待其他任務執行完成釋放資源。
例如,4C8G獨享Data Integration資源群組最大支援8個並發數同時執行,若當前存在3個並發數為3的任務,其中2個任務同時執行,則機器剩餘的並發數為2,此時另一個並發數為3的任務將由於資源群組剩餘資源不足,導致當前任務進入等待狀態,日誌顯示wait
。該情境,可通過 頁簽,查看任務等待Data Integration資源時,哪些任務正在佔用該資源,以及單個任務佔用的資源量。說明- 一個Data Integration任務將佔用一個調度資源,若任務長時間未運行成功,可能會阻塞其他任務運行。
- 如果資源使用率高但實際無任務執行或資源群組上可執行任務數未達資源群組上限但仍無法執行任務,您可以單擊申請連結或掃描下方二維碼加入DataWorksDingTalk交流群進行售前售後諮詢,諮詢可直接@智能機器人,值班時間段內也可直接聯絡值班人員。DataWorksDingTalk交流群二維碼如下。
說明 獨享Data Integration資源群組最大支援多少並發同時執行,與您所購買的資源群組規格有關。詳情請參見獨享Data Integration資源群組。 - 資料同步失敗
若同步任務執行失敗,您可參考詳細報錯與具體外掛程式說明定位原因。詳情請參見Data Integration常見問題。