本文為您介紹如何在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'2017-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相容模式下的類型系統。
執行模式:
預設:穩定版本。
查詢加速:包含查詢加速(MCQA)新特性。
加速失敗重跑:支援作業在查詢加速失敗時,重新執行作業。
完成SQL指令碼編寫後,單擊工具列或側邊欄上的表徵圖,即可將SQL指令碼提交到MaxCompute服務端運行。
說明當SQL中存在變數時,例如上述指令碼程式碼範例中的${bizdate},會彈出對話方塊,提示您輸入變數值,在本樣本中您可以輸入
2017-11-11 00:00:00
,查詢當前分區的表格式資料。在SQL任務運行前,IntelliJ IDEA會向您提示預估的SQL費用。確認費用後,在Confirmation對話方塊,單擊OK。
說明在工具列上,單擊表徵圖,可以更新SQL指令碼中使用的中繼資料,例如表、UDF。如果MaxCompute服務端存在表或函數,但MaxCompute Studio提示表和函數不存在時,請嘗試使用該功能更新中繼資料。
SQL依賴於您在Project Explorer視窗中添加的專案中繼資料,系統先在本地進行編譯,無編譯錯誤後會提交到服務端執行。
SQL執行過程中會顯示作業記錄。當SQL開始在MaxCompute服務端運行時,會自動開啟任務詳情頁簽,顯示運行作業的基本資料。
顯示預估SQL費用依賴在MaxCompute SQL配置選項勾選Show sql cost confirm dialog when script submitted
在控制台結果頁簽查看SQL運行結果。
單句模式下存在多條語句時,系統會顯示每條語句的運行結果。