1. 程式人生 > >玩轉MaxCompute studio SQL編輯器

玩轉MaxCompute studio SQL編輯器

數據庫 SQL 編輯器

摘要: SQL因其簡單易學的特點,是用戶與MaxCompute服務交互的主要手段。如何幫助用戶高效愉快的編寫SQL是MaxCompute studio的核心使命,下面就讓我們來一探究竟: 忘記語法 相信大家都有過忘記SQL怎麽寫的時候,一旦忘記,恐怕只能到處去找文檔和代碼示例,被迫離開全神貫註的SQL editor,十分影響效率。

SQL因其簡單易學的特點,是用戶與MaxCompute服務交互的主要手段。如何幫助用戶高效愉快的編寫SQL是MaxCompute studio的核心使命,下面就讓我們來一探究竟:

忘記語法

相信大家都有過忘記SQL怎麽寫的時候,一旦忘記,恐怕只能到處去找文檔和代碼示例,被迫離開全神貫註的SQL editor,十分影響效率。在studio中,我們集成了大量的MaxCompute SQL語法模板,你只需一個快捷鍵就能喚出,十分方便。譬如,我現在想要在表中加入一列,但不知道SQL語法,那麽使用快捷鍵(Windows: Ctrl + J, Mac: ? + J)喚出live template,輸入column關鍵字搜索語法模板,這裏我們選擇alter table add column:

技術分享圖片
此時,SQL editor中會立刻插入添加列的語法模板,你只需繼續輸入表和列即可(使用tab鍵在待編輯元素間切換)
技術分享圖片

忘記Schema

SQL語法結構有了,接下來就是往裏填各種實體元素(主要包括表和函數)。同樣的,難道要我完整的記住表名或函數名才能完成SQL嗎?當然不需要,studio想你所想:

列表與搜索

當前project下都有哪些表和函數?

  • 在project explorer中你能獲得一個全局視圖:
    技術分享圖片

  • 通過快捷鍵(Windows: Ctrl+Alt+Shift+N mac:?+?+O)喚出navigate symbol,輸入表名或函數名搜索:
    技術分享圖片

在project explorer中雙擊實體或在navigate symbol中選擇實體,即可顯示其詳情。

智能提示

studio會根據當前光標位置的語法上下文,給出相應的智能提示,選擇即可,無需輸入:
技術分享圖片

schema關聯

  • 鼠標懸停在表名上時,會顯示表的schema:
    技術分享圖片

  • 懸停在函數名上時,會顯示函數簽名:
    技術分享圖片

定義跳轉

進一步的,如果想查看實體詳情,那麽:

  • 表:按住ctrl鍵,單擊,就會打開表詳情窗口,包括示例數據的展示。

  • 自定義函數:按住ctrl鍵單擊,則會顯示其源碼(java是jar的反編譯,python是源碼)。

  • 內置函數:(Windows: Ctrl + Q mac: Ctrl + J) 喚出幫助文檔:
    技術分享圖片

代碼檢測

SQL除了滿足語法,我們也定義了一些規則,來檢測你所寫的SQL是否有潛在問題,譬如:
技術分享圖片
全部的規則列表可在Preference - Editor - Inspections - MaxCompute 處查看。

輕松閱讀

SQL寫好了,需要閱讀並理解其含義。對此studio支持如下特性,方便用戶閱讀SQL。

語法高亮

SQL中不同類型的字符會有不同的高亮顏色,有語法錯誤時會顯示錯誤信息:
技術分享圖片

括號匹配與代碼折疊

  • 單擊左括號,與其配對的右括號也會高亮顯示,反之亦然。

  • 當SQL比較長時,可點擊左側的折疊按鈕,把子句折疊起來,便於排除幹擾。

技術分享圖片

格式化

好的格式能幫助我們更好的理解SQL結構,當遇到一個雜亂冗長的SQL,你需要做的第一步就是格式化(快捷鍵Ctrl + Alt + L)。同時,studio還支持自定義格式化規則(譬如關鍵字大小寫,是否換行等),可在如下頁面配置:
技術分享圖片

可視化

點擊SQL editor左下側的graph標簽頁,能以POT圖的方式展現SQL結構,譬如下圖(對應的SQL文本select * from hy_test):
技術分享圖片
目前此圖顏值不高,接下來我們會改進,使得與SQL運行時的Job Graph一樣美。

使用查找

有時,我們想知道某張表(或函數)都在哪些腳本中使用,以便於我們更好的理解這張表的加工邏輯。那麽,你可以在editor中選中表,右鍵菜單選 Find Usages,則會在當前IntelliJ project下搜索到所有使用該表的腳本:
技術分享圖片

運行

部分執行

如果想執行SQL中的部分語句,那麽你可以:

  • 通過鼠標選擇你要執行的文本段,然後點擊運行按鈕:
    技術分享圖片

  • 通過左側邊欄的gutter icon,執行單條語句(with set表示帶著set語句一起):
    技術分享圖片

console無縫集成

你可以直接在SQL editor中運行譬如grant語句之類的console命令,也可以點擊toolbar上的console圖標打開一個MaxCompute Console窗口輸入console命令:
技術分享圖片

運行歷史

所有通過studio提交運行的sql我們都記錄在本機了,你可以點擊toolbar上的圖標,彈出sql history窗口,查詢你曾經執行過的sql:
技術分享圖片

原文鏈接


玩轉MaxCompute studio SQL編輯器