【See】自動化SQL審核 SQL優化管理平臺
平臺的核心功能是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優化管理平臺