数据库自动化运维平台–自助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体验等方面有了显著的提升。


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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • spring boot 过滤器_拦截器和过滤器的区别面试

    spring boot 过滤器_拦截器和过滤器的区别面试原文地址:https://www.tsanyang.top/share-detail/739784336139616256.html最近实现一个权限控制功能,想通过拦截器进行实现,当业务一切按预期一样完成,有一个特别控制需要再拦截器对参数进行解析使用,但是发现当我们再拦截器读取了输入流,再控制器是无法获取到参数的,这个是由于输入流只能被读取一次,然后通过问题搜索了一把,看见网上通过重写HttpServletRequestWrapper实现输入流读取后,再写入回去,这样解决控制器无法获取参数问题,故在此做记

  • Go适合做什么?为何这么多人偏爱Go语言?

    Go作为Google2009年推出的语言,其被设计成一门应用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。到现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。哪些大公司在使用Go语言:1、Goog…

  • extern用法总结!

    extern用法总结!

  • u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办

    u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办JonTargaryen24872017-04-30如何解决移动硬盘/U盘无法打开并在电脑上显示为“本地磁盘”的问题qq_3259947986672018-11-23Toshiba8GU盘量产修复工具atlim32017-01-18u盘打开之后就只有一个快捷方式code_AC122812016-11-20联想8G移动U盘量产工具shaotingqiang2122011-12-13无法打开U盘中…

  • C++滑动窗口算法_最短连续包含子串

    C++滑动窗口算法_最短连续包含子串滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。如下题给你两个长度相同的字符串,s和t。将s中的第i个字符变到t中的第i个字符需要|s[i]-t[i]|的开销(开销可能为0),也就是两个字符的ASCII码值的差的绝对值。用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将s的子字符串转

    2022年10月28日
  • 关于sstream的灵活使用

    关于sstream的灵活使用问题有10000个队伍参加。经过工作人员认真负责的统计,本来已经统计好了这一万个队伍的分数和排名,并按照排名从高到低依次进行了编号(从1到10000)但是由于一个非常偶然的因素,导致其中三个编号的数据丢失,而且剩余编号的顺序也全被打乱了。你需要编写一个程序,根据还保留的统计数据,来判断哪些编号的数据丢失了,并将这些编号按照从小到大的顺序重新拼接为一个新数字,然后计算这个新数字除以11的余数。如…

发表回复

您的电子邮箱地址不会被公开。

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