全部產品
Search
文件中心

MaxCompute:使用MaxCompute編譯器檢查指令碼

更新時間:Feb 28, 2024

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編譯器的錯誤和警示提示,可以避免降低優先順序。