MaxCompute編譯器基於MaxCompute 2.0新一代的SQL引擎,顯著提升了SQL語言編譯過程的易用性與語言的表達能力。本文將為您介紹如何利用MaxCompute編譯器的報錯和警示進行排障。
背景資訊
- 為了充分展示MaxCompute編譯器的易用性,推薦您使用MaxCompute Studio。如何安裝請參見安裝 MaxCompute Studio。
- 建議您在提交任何指令碼之前,使用MaxCompute編譯器對指令碼進行靜態編譯檢查。推薦您在MaxCompute SQL配置選項選中Enable syntax coloring,啟動文法高亮功能。如何配置請參見MaxCompute SQL配置選項。
報錯樣本
- 編譯器顯示滑鼠移至上方如下圖所示紅色報錯標記處,編譯器顯示expect 1 columns, actually have 2。
- 運行結果
- 報錯說明
由於src表定義參數為兩列,而利用insert語句插入資料時,values中有一組資料缺少一列參數,故編譯器報錯。
警示樣本
- 編譯器顯示滑鼠移至上方如下圖所示警示標記處,編譯器顯示implicit conversion from STRING to DOUBLE, potential data loss, use CAST function to suppress。
- 警示說明從STRING到DOUBLE的隱式轉換,有可能造成資料丟失,需要使用CAST函數處理。資料轉換詳情請參見資料類型轉換。說明
- 在運行指令碼之前建議修改所有的警示,避免浪費時間和資源。
- 提交有錯誤的指令碼會扣您的計算健康分,會導致以後提交任務的優先順序下調,未來沒有修改的警示也會被納入到健康分體系。所以,充分利用MaxCompute編譯器的錯誤和警示提示,可以避免降低優先順序。