在數據開發過程當中,咱們一般須要將兩個做業進行對比從而定位做業運行性能或者結果有差別的問題,可是對比做業時須要同時打開兩個studio 的tab頁,或者兩個Logview頁,不停切換進行對比,使用起來很是的不方便。MaxCompute Studio從3.1.0版本開始支持做業對比,能夠在一個頁面同時比較兩個做業,而且能自動標註出做業的差別點。sql
本文我以查找同個做業執行兩次用時差異很大的緣由爲例,經過MaxCompute Studio的對比功能對兩次執行的job進行對比,找出執行時間差異大的緣由。工具
MaxCompute Studio的Maxcompute 工具菜單中進入做業對比。性能
輸入兩個須要對比的job的logview url 地址,點擊「OK」按鈕就能夠開始對比:url
做業一運行了01:11:08 ,做業二運行了00:45:59,想知道是什麼致使了相差近半個小時。先看基本信息對比:spa
經過基本信息能夠看到studio 標註出做業一的耗時明顯上升,其餘項目,如IO Bytes 等相差很少, 輸入輸出表徹底相同。基本能夠判定是同一做業,爲了確保是同一個做業還能夠對比執行計劃和腳本。3d
打開執行圖 Tab ,能夠一目瞭然看到兩個做業的執行計劃,執行圖沒法進行標註,能夠經過查看text diff查看。blog
點擊text diff 後能夠對比fuxi task 的執行時間, 輸入輸出等詳細信息。能夠比較絕對值,能夠按比例比較,不一致的地方都會進行有效標註。ip
這裏能夠發現執行計劃是徹底一致的。資源
點擊腳本對比Tab 後,能夠對比settings 和script ,settings 很是關鍵,不一樣的參數可能會致使徹底不一樣的結果。這裏須要使用text diff 功能比較sql 腳本。開發
能夠看到腳本對比功能很方便使用,即使是很複雜的sql 腳本均可以快速發現區別,這裏發現只有分區日期不一樣,其餘徹底一致。
經過前面幾個對比,肯定兩個做業徹底一致, 再回到執行圖中, 經過回放能夠發現運行瓶頸在J4, 查看text diff 發現做業一的J4 用時52分, 做業二28分,由此判斷做業一主要是J4用時長致使總體運行變慢。
接下來重點分析J4 ,打開J4的 Operation Graph, Studio 在Operation 層新添加了Metric 信息, 能夠看到每一個operation 的執行時間,inner_time_ms, 這個時間指Operation 執行完全部行的平均時間(每一個fuxi instance 都會用這個operation執行, 當這個operation 處理完全部分配給他的數據後就得出一個時間,這裏的inner_time_ms 指的是這些fuxi instance 對應的Operation 執行的平均時間) ,經過這個時間能夠發現某個Operation 執行時間是否過長,例如自定義udf 是否有性能問題。
對比J4 的實際運行時間相差很少,而且執行的都比較快,由此能夠考慮J4 是否存在等待資源狀況, 致使fuxi instance 並無及時開始運行。
打開做業分析tab的時序圖子頁面,能夠明顯發現做業一的J4_2_3 task 運行時間大於做業二的, 與前面看到的執行計劃圖一致。
鼠標放到J4上點擊展開做業後,能夠看出fuxi instance 開始執行時間很是晚,這進一步驗證了資源不足致使做業等待狀況。
經過Studio 的做業對比功能,調查了資源等待致使的做業運行變慢狀況, 而且排查的效率更高。做業對比還有不少其餘功能,各位能夠自行嘗試。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。