本文為您介紹如何在MaxCompute Studio上開發SQL指令碼。包括編寫和運行SQL指令碼。
前提條件
-
已串連MaxCompute專案,詳情請參見管理專案串連。
-
已建立MaxCompute Script Module,詳情請參見建立MaxCompute Script Module。
建立SQL指令檔
-
在Project地區下,按右鍵scripts,選擇。
-
在New MaxCompute SQL Script對話方塊,配置參數資訊,單擊OK。
-
Script Name:指令碼名稱。
-
MaxCompute Project:目標MaxCompute專案。單擊+即可建立一個MaxCompute專案串連,配置詳情請參見管理專案串連。
-
-
在指令碼編輯介面中編寫SQL。SQL文法詳情請參見SQL概述。
以下為一個指令碼程式碼範例。
CREATE TABLE table_5( col1 BIGINT, col2 BIGINT, col3 BIGINT, ds DATETIME ); INSERT INTO TABLE table_5 VALUES (1, 2, 3, DATETIME'2025-11-11 00:00:00'); SELECT * FROM table_5 WHERE ds='${bizdate}';說明-
指令碼模式支援跨專案空間資源依賴。例如,指令碼綁定了專案A的同時,允許訪問專案B下的table1(ProjectB.table1)。
-
MaxCompute Studio支援設定SQL指令碼編輯器,詳情請參見概述。
-
提交SQL指令碼
在提交SQL指令碼前您需要根據自身需求進行相關設定。MaxCompute Studio提供了豐富的設定功能,您可以在編輯器頁面上方的工具列中快速設定。設定主要分為以下三種:
-
編輯器模式:
-
單句模式:會將提交的指令檔按
;分隔,逐條提交到MaxCompute服務端執行。 -
指令碼模式:為最新開發模式,可將整條指令碼一次提交到MaxCompute服務端,由MaxCompute服務端提供整體最佳化,效率更高,推薦使用此模式。
-
-
類型系統:類型系統主要解決SQL語句的相容性問題。分為以下三種類型:
-
舊有類型系統:MaxCompute舊類型的系統。
-
MaxCompute類型系統:MaxCompute 2.0引入的新類型系統。
-
Hive類型系統:MaxCompute 2.0引入的Hive相容模式下的類型系統。
-
-
執行模式:
-
預設:穩定版本。
-
MaxQA:使用MaxQA查詢加速功能。
-
查詢加速:包含查詢加速(MCQA)新特性。
-
加速失敗重跑:支援作業在查詢加速失敗時,重新執行作業。
-
-
完成SQL指令碼編寫後,單擊工具列或側邊欄上的
表徵圖,即可將SQL指令碼提交到MaxCompute服務端運行。說明當SQL中存在變數時,例如上述指令碼程式碼範例中的${bizdate},會彈出對話方塊,提示您輸入變數值,在本樣本中您可以輸入
2017-11-11 00:00:00,查詢當前分區的表格式資料。 -
在SQL任務運行前,IntelliJ IDEA會向您提示預估的SQL費用。確認費用後,在Confirmation對話方塊,單擊OK。
Confirmation 對話方塊中顯示 Cost Estimate 資訊,包括 Inputs(輸入位元組數)、UDF Count(UDF 數量)和 Complexity(複雜度)等費用估算指標,並提供 Do not show this dialog again 複選框用於關閉後續提示。
說明-
在工具列上,單擊
表徵圖,可以更新SQL指令碼中使用的中繼資料,例如表、UDF。如果MaxCompute服務端存在表或函數,但MaxCompute Studio提示表和函數不存在時,請嘗試使用該功能更新中繼資料。 -
SQL依賴於您在Project Explorer視窗中添加的專案中繼資料,系統先在本地進行編譯,無編譯錯誤後會提交到服務端執行。
-
SQL執行過程中會顯示作業記錄。當SQL開始在MaxCompute服務端運行時,會自動開啟任務詳情頁簽,顯示運行作業的基本資料。
-
顯示預估SQL費用依賴在MaxCompute SQL配置選項勾選Show sql cost confirm dialog when script submitted
-
-
在控制台结果頁簽查看SQL運行結果。
單句模式下存在多條語句時,系統會顯示每條語句的運行結果。
在結果頁簽中,
select * from table_2;和select * from table_3;的查詢結果分別顯示在獨立地區中,各地區標示對應SQL語句及返回的列資訊,兩表當前均無資料。