【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后请求到数据库,得到数据库的结果做进一步的处理。

  这个是权限逻辑部分,开发、经理,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或提供支持。

 

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值