【See】自动化SQL审核 SQL优化管理平台

缘起于上家公司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后请求到数据库,得到数据库的结果做进一步的处理。

【See】自动化SQL审核 SQL优化管理平台

这个是权限逻辑部分,开发、经理,DBA会略有不同, 都是傻瓜式的操作,点点点即可完成。inception审核过的工单,经理确认即为审批,审批后DBA可以在生产上执行。另外还提供了一个测试环境,此环境无需审批流程,发起工单的人即可执行,用于在上线前可以先在测试环境跑一遍sql,之后再生产环境操作。逻辑图如下:

【See】自动化SQL审核 SQL优化管理平台

See平台功能
1, SQL审核,选择目标数据库,点击提交即可,语法正确或错误的SQL都会返回相应的信息,成功后生成一个SQL工单
【See】自动化SQL审核 SQL优化管理平台
2, 工单处理页,审批人可以审批SQL工单,执行人可以对审批过的SQL工单做执行操作
【See】自动化SQL审核 SQL优化管理平台
3, SQL工单详情页
【See】自动化SQL审核 SQL优化管理平台

4, 权限规则,不同角色的人员拥有不同的权限
【See】自动化SQL审核 SQL优化管理平台
5, 流程设置,可以开启或关闭流程
【See】自动化SQL审核 SQL优化管理平台
6, 设置目标数据库(需要进行操作的数据库)
【See】自动化SQL审核 SQL优化管理平台
7, 用户管理页,用户信息特别是身份在此设置
【See】自动化SQL审核 SQL优化管理平台
8, 组管理
【See】自动化SQL审核 SQL优化管理平台
9, 表结构,SQL语句查询
【See】自动化SQL审核 SQL优化管理平台
10, 数据报表展示
【See】自动化SQL审核 SQL优化管理平台

后续功能规划
一. 日志功能,用ELK收集mysql慢日志,接入ELK做日志数据分析展示功能 。
二. 监控功能,接入监控系统数据,做监控状态的页面端展示,报警仍由监控系统去做。
三. ...

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

欢迎start或提供支持。

猜你喜欢

转载自blog.51cto.com/5053795/2175628