如何閱讀數據集成日誌?
第一部分:系統參數信息。記錄運行機器、地域信息、項目名、節點信息、參數值等。
需要關注點:參數值是否已經被實際值替換,運行的調度資源組是什麼類型?
group_xxxxxxx_xxx:公共調度資源組
S_res_group_xxx:獨享調度資源組
xxxxx:自定義調度資源組
數據集成資源組:
運行在默認的資源組上: in Pipeline[basecommon_ group_xxxxxxxxx]
運行在數據集成自定義資源組上: in Pipeline[basecommon_xxxxxxxxx]
運行在獨享數據集成資源上: in Pipeline[basecommon_S_res_group_xxx]
需注意資源組的選擇。
數據集成任務從提交到結束,共分為四個狀態。分別為submit、wait、run、success或者failed。
submit:提交任務,將數據集成任務提交到服務器執行。
數據集成任務不允許同一個任務同時提交兩次,所以當一個任務同時提交了多個實例時僅有一個會被服務器接收,另一個會提交失敗(補數據和週期實例衝突、補數據和手動運行衝突、週期實例間隔時間段衝突、週期實例和手動觸發任務提交衝突這些情況都會導致任務提交失敗)。所以當有多實例job衝突時,會造成submit failed的現象。
wait:等待服務器分配資源使該任務運行。若數據集成資源組資源不足,則運行日誌中會有長時間處於wait狀態的現象且stage為0%。
run:表示數據集成任務已經在資源組上運行了。run狀態包含多個部分,包括預執行preSql(刪除表數據等)、同步數據、數據寫入目的端後執行postSql(同步完成後執行的sql,刪除部分重複數據等)等。
數據集成任務日誌分為兩個部分,第一部分主要為任務渲染、提交、運行、執行完畢的日誌,不記錄各個子線程的執具體執行情況,僅粗略表達任務的執行狀態、時間。對應的結束標誌為:
DI Finish at : xxxxxx
第二部分為各線程具體執行的細則,主要包含任務的切分、切分的結果、執行的詳情、數據量、最終狀態等。
從日誌表現上看,DI Finish at : xxxxxx之後便可認為是第二部分的詳細日誌了。
例如我們配置切分鍵將一個rds表數據切分成數份進行同步,日誌中會有明顯的切分標誌並且根據所配置的切分鍵的最大最小值進行等分為數份。
且每一個在源端進行查詢的sql和其最終的結構都會打印出來。
長時間處於run狀態但是進度一直是0%?
這種情況極大的概率是由於任務配置了preSql且preSql執行邏輯較為複雜或者數據量過大,導致preSql在數據庫端執行的時候耗用的時間過長從而任務進度一直是0%;
這種情況日誌中請到第二部分日誌中搜preSql,會有明顯的presql執行日誌且其與下一條日誌的時間間隔相差較久。
長時間處於run狀態但是進度一直在某個百分比?
這種情況可能是個子線程所執行的讀取數據庫數據的sql在數據庫端執行異常,遲遲不返回結果,一般伴隨著數據庫連接超時、時間參數超過閾值而報error的情況。
長時間處於run狀態且進度為99%?
這種情況請檢查下是否配置了postsql,即同步完成後執行postsql對數據進行後處理耗用了比較久的時間。同presql的一樣。
DataWorks百問百答歷史記錄 請點擊這裡查看>>
更多DataWorks技術和產品信息,歡迎加入【DataWorks釘釘交流群】