1. 程式人生 > >【See】自動化SQL審核 SQL優化管理平臺

【See】自動化SQL審核 SQL優化管理平臺

得到 size ffffff 運維 前端 不同 acf min 工具

緣起於上家公司DBA同學的執著意願,在他們的感染和幫助下開發了這套MySQL上線平臺。

平臺的核心功能是SQL操作,SQL語句優化。可以做到這些點,得益於開源力量的強大,在此感謝開源項目Inception及SQLAdvisor團隊!

1 開源項目簡介
Inception:一個集審核、執行、備份及生成回滾語句於一身的MySQL自動化運維工具。

SQLAdvisor:基於MySQL原生態詞法解析,結合分析SQL中的where條件、聚合條件、多表Join關系 給出索引優化建議。
關於inception的意義,inception作者的一段話講的很棒:

DBA從此就從繁重的審核、登上去執行,出錯了很難回滾(如果提前沒有備份的話)的被動局面解放了出來,突然發現,做DBA原來可以這麽輕松,工作可以不飽和了,那就有更多的自由時間學習、進一步向自動化運維平臺的實現等更智能化的方向去發展,是具有裏程碑意義的。

2 See項目介紹

開發環境
後端:
Python 3.6
Django 2.0

前端:
Vue.js 2.9
iview-admin 1.3

以一張簡圖開始,圖片中django web即是See項目,它接收用戶處理SQL的請求,交給inception或者sqladvisor後請求到數據庫,得到數據庫的結果做進一步的處理。

技術分享圖片

這個是權限邏輯部分,開發、經理,DBA會略有不同, 都是傻瓜式的操作,點點點即可完成。inception審核過的工單,經理確認即為審批,審批後DBA可以在生產上執行。另外還提供了一個測試環境,此環境無需審批流程,發起工單的人即可執行,用於在上線前可以先在測試環境跑一遍sql,之後再生產環境操作。邏輯圖如下:

技術分享圖片

See平臺功能
1, SQL審核,選擇目標數據庫,點擊提交即可,語法正確或錯誤的SQL都會返回相應的信息,成功後生成一個SQL工單
技術分享圖片
2, 工單處理頁,審批人可以審批SQL工單,執行人可以對審批過的SQL工單做執行操作
技術分享圖片
3, SQL工單詳情頁
技術分享圖片

4, 權限規則,不同角色的人員擁有不同的權限
技術分享圖片
5, 流程設置,可以開啟或關閉流程
技術分享圖片
6, 設置目標數據庫(需要進行操作的數據庫)
技術分享圖片
7, 用戶管理頁,用戶信息特別是身份在此設置
技術分享圖片
8, 組管理
技術分享圖片
9, 表結構,SQL語句查詢
技術分享圖片
10, 數據報表展示
技術分享圖片

後續功能規劃
一. 日誌功能,用ELK收集mysql慢日誌,接入ELK做日誌數據分析展示功能 。
二. 監控功能,接入監控系統數據,做監控狀態的頁面端展示,報警仍由監控系統去做。

三. ...

開源
See項目已開源啦,地址:
https://github.com/myide/see

歡迎start或提供支持。

【See】自動化SQL審核 SQL優化管理平臺