数据库自动化运维平台–自助DML

数据库自动化运维平台–自助DML今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关

大家好,又见面了,我是你们的朋友全栈君。

其实很多公司的DBA都是苦逼的,差不多一个DBA要对应几十个甚至上百个开发。半夜爬起来处理故障,上百G的数据动不动搞个迁移,升级等 这些都是很常见的,怪不得很多DBA自嘲”我是搬砖的”。为了使DBA的工作轻松,有效率很多年前各大公司就开始自动化运维平台建设,在这方面我们属于比较晚的了。

今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关键这种工比较重复,枯燥,没有技术含量,所以迫切需要一个自助的服务平台开放出去来提高工作效率,解放DBA。

接下来先上流程图:

数据库自动化运维平台--自助DML

所涉及的技术点,如下:
(1)开发语言: Python
(2)框架: Flask
(3)bootstrap,html,js,css,jQuery
(4)后端存储MySQL
(5)celery rabbitmq


平台部分截图:

1) 提交任务需要满足两个条件:(1) 元数据平台(请参考之前的元数据平台博客)集群归属部门信息不能为空    (2)提交任务的人所在部门要跟集群归属部门一致

数据库自动化运维平台--自助DML



2) 根据流程检查权限后,就会对提交的sql进行基本语法检查。为了控制对线上的影响,操作的数据量影响超过10000(可以设置)行不能提交任务。这里提交有两个按钮,其中定时是用celery实现的。

数据库自动化运维平台--自助DML



行数超过设置

数据库自动化运维平台--自助DML

没有加where条件

数据库自动化运维平台--自助DML


3) 提交后就会生成一条任务,每个任务id是唯一的 可以点击进入查看详细信息。

数据库自动化运维平台--自助DML



 4) 点击sql文本查看,就可以看到提交的sql语句

数据库自动化运维平台--自助DML



5)点击上个截图上的id号就进入此页面,这个页面可以查看,审核,备注信息等。

其主要功能是审核,审核需要满足几个条件 :  1)操作的集群要有归属业务部门  2)操作库要有归属项目名称和归属人  3)不能自己审核自己提交的任务 4)如果任务提交人跟库归属人不同则需要库归属人审核 5)如果是库归属人提交的任务则需要同部门的另一人审核        (这些条件需要结合元数据平台,请参考之前的博客)

数据库自动化运维平台--自助DML



6)审核完事就可以点击执行了,执行权限只有DBA和提交人才能执行

数据库自动化运维平台--自助DML


7) 未审核, 没有权限等等都是没有办法执行

数据库自动化运维平台--自助DML



8) 执行后查看执行结果,备份会生产反向sql,例如insert 会生产delete操作备份

数据库自动化运维平台--自助DML



9) 已经处理过的可以删除并归档到历史任务里,方便以后查阅。

数据库自动化运维平台--自助DML


10) 这个页面是DBA后台操作页面, 目前只有DML,其他平台正开发中。

数据库自动化运维平台--自助DML


总结:

此系统目前已经开放给RD使用,目前日处理需求量50+,对工作效率,安全性,RD体验等方面有了显著的提升。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145323.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月17日 下午5:40
下一篇 2022年5月17日 下午5:40


相关推荐

  • Mac datagrip 2022激活码【2022最新】

    (Mac datagrip 2022激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2KLKA7BQFO-eyJsaWN…

    2022年4月1日
    549
  • Python虚拟环境virtualenv&Pipenv(2)–Pycharm的使用

    Python虚拟环境virtualenv&Pipenv(2)–Pycharm的使用碎碎念 上一篇主要讲了 virtualenv 与 Pipenv 的使用和区别 这篇作为延续 讲讲这两种虚拟环境管理方式在 Pycharm 上使用的异同 若是在 Pycharm 上开发 可能俩没啥明显的区别 如果是 clone 代码到本地 Pycharm 使用这两种方式还是能对比出哪个更优的 所以主题是 checkout 代码到本地 Pycharm 配置虚拟环境的方法对比

    2026年3月27日
    4
  • 【软件工程】详细设计文档——详细设计说明书

    【软件工程】详细设计文档——详细设计说明书文章目录1引言1.1编写目的1.2项目背景1.3定义1.4参考资料2总体设计2.1需求概述2.2软件结构3模块描述3.1模块基本信息3.2功能概述3.3算法3.4模块处理逻辑3.5接口3.6性能3.7测试计划1引言1.1编写目的​ ​ 本报告的目的是对Asking进行详细设计说明,以便用户及项目开发人员了解产品详细的设计与实现。为开发人员提供开发参考书。以下叙述将结合文字描述、伪代码,图表等来描述Asking的详细设计和相关的模块描述。本报告的预期读者有客户、项目经

    2022年6月12日
    41
  • XSS跨站脚本攻击剖析与防御(跨站脚本攻击漏洞怎么修复)

    XSS(跨站脚本)漏洞详解XSS的原理和分类跨站脚本攻击XSS(CrossSiteScripting),为了不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户…

    2022年4月18日
    180
  • golang2021激活码_通用破解码「建议收藏」

    golang2021激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    71
  • C语言通过socket编程实现TCP通信「建议收藏」

    C语言通过socket编程实现TCP通信「建议收藏」服务端客户端通信例子:sockettcp通信1,sockettcp通信2,udp使用讲解,socketudp通信例子1.TCP/IP协议叫做传输控制/网际协议,又叫网络通信协议。实际上,它包含上百个功能的协议,如ICMP(互联网控制信息协议)、FTP(文件传输协议)、UDP(用户数据包协议)、ARP(地址解析协议)等。TCP负责发现传输的问题,一旦有问题就会发出重传信号,直到所…

    2022年7月13日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号