全部產品
Search
文件中心

MaxCompute:開發及提交SQL指令碼

更新時間:Jun 19, 2024

本文為您介紹如何在MaxCompute Studio上開發SQL指令碼。包括編寫和運行SQL指令碼。

前提條件

建立SQL指令檔

  1. Project地區下,按右鍵scripts,選擇New > MaxCompute SQL指令碼

    建立

  2. New MaxCompute SQL Script對話方塊,配置參數資訊,單擊OK

    指令碼名稱

    • Script Name:指令碼名稱。

    • MaxCompute Project:目標MaxCompute專案。單擊+即可建立一個MaxCompute專案串連,配置詳情請參見管理專案串連

  3. 在指令碼編輯介面中編寫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)新特性。

    • 加速失敗重跑:支援作業在查詢加速失敗時,重新執行作業。

  1. 完成SQL指令碼編寫後,單擊工具列或側邊欄上的運行表徵圖,即可將SQL指令碼提交到MaxCompute服務端運行。

    說明

    當SQL中存在變數時,例如上述指令碼程式碼範例中的${bizdate},會彈出對話方塊,提示您輸入變數值,在本樣本中您可以輸入2017-11-11 00:00:00,查詢當前分區的表格式資料。

  2. 在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

  3. 在控制台結果頁簽查看SQL運行結果。

    單句模式下存在多條語句時,系統會顯示每條語句的運行結果。

    運行結果