Azure Data Studio for DevOps

隨著SQL2017支援在Linux以及Docker on Mac的新突破,雖然產品上市之前,已經提供了CLI的console mode指令介面給非Windows平台的使用者。但是終究還是有人反應,沒有GUI可以使用,而今SQL Operations Studio這是一個輕量且跨平台的SQL Server開源管理工具,可以提供這一類新客群的存取與管理需求。
另外,這個工具除了可以存取地端的資料庫(裝在Windows、Linux、Docker…環境)、雲端的相關資料服務(Azure SQL database、Azure Data warehouse…)也是可以的。

首先在介紹這個產品之前,需要先談起它有一個叫 Visual Studio Code的表兄弟,那個產品完全是設計來滿足有 DevOps 需求的開源開發者的,直覺的滑鼠拖曳、強大的右鍵包含了開發所需的諸多重要功能、可自訂的GUI配色與快速鍵、支援多種開源的作業系統…等令人驚豔的特色。基礎於這個表兄弟的成功且高人氣,所以 SQL Operation Studio 的產品設計與目標族群也是相仿,不只是 DB開發者而已,也包含了應用程式的開發者(程式與DB是連動的,即使邏輯都是寫在程式中,當新的需求出現時,DB常常要增加Schema,所以程式佈署時,這二種的版本需要一致,才能正確地被運行)。
舉例來說,透過Monitoring widgets的功能,不同類型的開發者,登入到相同的資料庫,可以是呈現連線量、歷史校能與資料庫空間使用率的狀況給DB開發者;也可以是物件搜尋、工作、Schema版本專案狀況給程式開發者。以下將開始介紹這個工具的特色給大家:

1. 程式開發與版本控管
不需要另外開一個Terminal視窗,可以直接使用指令,存取作業系統層級,解決程式邏輯上的錯誤或是其他的故障排除
說的更細節一點,是應用了Integrated Terminal功能,針對習慣 Linux/Unix的人,Operation Studio提供了一個整合式的Terminal視窗,可以在右下角有一個嵌入式的Terminal區域,將SQL的操作與OS的操作合二為一
若各位有寫過程式,常常為了新的需求,需要去改寫已經繼承的父類別,你可以在Visual Studio很直覺的,對著某個Class類別物件,按右鍵去跳轉至父類別去瀏覽或編輯。
登入資料庫之後,編輯T-SQL就跟使用Visual Studio一樣,可以對著一個物件(此時是DB物件,不是一個Class類別或Method),省去了搜尋與開檔的時間,可以直接drill down。

2. 資料庫開發與管理
連線資料庫,跟SSMS一樣,可以支援連線到裝在 Windows、Linux、Docker…環境的SQL Server或是 Azure SQL database、Azure Data warehouse…等雲端環境
至於驗證方式,也跟SSMS一樣,有SQL與AD二種驗證方式。
連接Azure SQL Database,需要事先設定雲端的防火牆
圖解防火牆設定。建立資料庫與Table
以T-SQL存取資料庫,這邊有二個功能可以協助開發者code editor with IntelliSense + Smart T-SQL code snippets,透過貼心的智慧輸入與自定義縮寫,可以加速指令的輸入或減少打錯字的機會,增加工作的效能。有點像線上字典,逐字輸入時會帶出可能的候選單字
接下來要介紹,個人覺得還不錯的功能,Customizable Server and Database Dashboards featuring Insightful monitoring widgets可以自訂管理報表

以效能調校為例,這個功能只要三個步驟即可完成,第一準備tuning T-SQL,第二執行後以圖表方式呈現,第三加入Dashboard頁面
在上圖的T-SQL 執行結果中,找到 View as Chart 並點下去,接下來你可以嚐試各種不同的呈現方式與篩選條件,說穿了就是設計管理報表
在上圖的執行結果中找到 Create Insights 並點下去,再將管理報表的 JSON格式屬性複製出來
按 F1搜尋Settings,並選到open workspace settings,把剛才複製的JSON加入既有的Dashboard即可
3. 資料庫校能調校
除了可以將 QueryStore的歷史校能數據或是資料庫的空間使用率,釘選至 Dashboard
也可以跟SSMS一樣,檢視執行計劃
4. 系統的擴充性(以下的畫面不是SQL Operation Studio喔!)
雖然這個工具才剛釋出,還有許多改善的空間。但可以預期它的未來,會跟它的表哥一樣,有很多擴充套件可以使用。以下就是Visual Studio Code的截圖,提供給各位參考

最後,功能介紹完成,就是帶大家在不同的環境下進行安裝
1. Get SQL Operations Studio for Windows
下載並且解壓縮,然後\sqlops-windows\sqlops.exe找到執行檔就可以開工了
2. Get SQL Operations Studio for Linux
下載並且解壓縮,然後打開一個Terminla視窗,執行以下指令即可

cd ~
cp ~/Downloads/sqlops-linux-<version string>.tar.gz ~
tar -xvf ~/sqlops-linux-<version string>.tar.gz
echo 'export PATH="$PATH:~/sqlops-linux-x64"' >> ~/.bashrc
source ~/.bashrc
sqlops

3. Get SQL Operations Studio for macOS
下載並且解壓縮,然後將SQL Operations Studio 加入Launchpad,將sqlops.app拖曳到應用程式目錄(Applications folder)即可

**SQL Operation Studio 後來被改名為 Azure Data Studio,所以我只有修改標題,請包涵大部份的內文還沿用舊的名稱

李秉錡 Christian Lee
Once worked at Microsoft Taiwan