1. 程式人生 > >分享一個基於小米 soar 的開源 sql 分析與優化的 WEB 圖形化工具

分享一個基於小米 soar 的開源 sql 分析與優化的 WEB 圖形化工具

tst 自己 file 圖片 pymysql 清除 cfg 線上 python

soar-web

基於小米 soar 的開源 sql 分析與優化的 WEB 圖形化工具,支持 soar 配置的添加、修改、復制,多配置切換,配置的導出、導入與導入功能。
技術分享圖片
技術分享圖片
技術分享圖片

環境需求

python3.x
Flask
pymysql

Python 環境未安裝的可參考下面操作:

Windows:
step 1 去 python 官網下載安裝 python3 (已安裝可跳過此步驟)
setp 2 pip install Flask
setp 3 pip install pymysql

Mac:
step 1 brew install python3 python3-pip (如果兩個包都有安裝可跳過此步驟)
setp 2 pip install Flask
setp 3 pip install pymysql

Ubuntu:
step 1 sudo apt-get install python3 python3-pip (如果兩個包都有安裝可跳過此步驟)
setp 2 pip install Flask
setp 3 pip install pymysql

CentOS:
step 1 yum install python36 python36-pip (如果兩個包都有安裝可跳過此步驟)
setp 2 pip install Flask
setp 3 pip install pymysql

安裝與使用

下載源碼( Windows 可略過此步驟):
sudo -y apt-get install wget 或者 sudo yum -y install wget
wget https://codeload.github.com/xiyangxixian/soar-web/zip/master -O soar-web-master.zip

解壓縮( Windows 可略過此步驟):
sudo -y apt-get install unzip 或者 sudo yum -y install unzip
unzip soar-web.zip
cd soar-web-matster

運行啟動腳本
Windows: run.bat
Linux or Mac: bash run.sh
技術分享圖片

按Ctrl + c 結束

守護進程支持:
啟動服務:bash manage.sh start
關閉服務:bash manage.sh stop
重啟服務:bash manage.sh restart

註:當主機上存在多個 python 版本時, 需自行更改 run.sh, run.bat, manage.sh 中的 python 版本指定為 3.x 以上的版本運行。

docker 支持

地址:https://hub.docker.com/r/becivells/soar-web/
Dockerfile 見根目錄 Dockerfile 文件
yum install docker -y
service docker start
docker pull becivells/soar-web
docker run -d --name soar-web -p 5077:5077 becivells/soar-web

也可以是用 Dockerfile 自行構建
docker build --no-cache -t soar-web .

訪問

在瀏覽器上輸入 http://127.0.0.1:5077 進行訪問
技術分享圖片

配置

如果需要改IP地址和端口號, 可在 config.py 中進行修改
功能相關
關於存儲: 所有的配置都是保存在瀏覽器 Local Storage 中的,多人之間使用是互補影響的,自己只能看到自己的配置,更換瀏覽器或者清除瀏覽器會造成配置丟失。
配置模板: 可以添加多數據庫連接實例及配置,方便在 sql 評估的相互切換使用,具體配置項詳情見https://github.com/XiaoMi/soar/blob/master/doc/config.md 。

下面是連接數據庫後測試效果
技術分享圖片
數據庫連接: 數據庫連接成功後,soar 可以通過表結構提供更正確優質的 sql 評估建議, 配置的正確性決定了 soar 的服務質量。
技術分享圖片
技術分享圖片
技術分享圖片

線上線下環境問題: 線上環境作為待 sql 評估環境,soar 在進行 sql 評估時,會根據 sql 語句,從 線上環境的數據庫連接實例 拷貝數據表到 測試環境的數據庫連接實例,然後在測試環境下執行 sql 語句進行分析。因此測試環境的數據庫連接實例需要有最高權限。如果無法沒有最高權限可能造成一些問題,如果沒有權限可以啟動一個空的 mysql docker 容器作為測試環境。如果僅僅做測試用,可將線上線下環境指定為一樣。
日誌等級: 日誌等級為 0 時不打印日誌,設置為 1-7 時,會將 soar 產生的日誌打印至控制臺,按 F12 或右擊網頁點擊審查元素打開調試工具,點擊 Console 按鈕查看日誌。

分享一個基於小米 soar 的開源 sql 分析與優化的 WEB 圖形化工具