CN110263054B - Sql工单的审核系统、审核方法、装置及计算机设备 - Google Patents
Sql工单的审核系统、审核方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN110263054B CN110263054B CN201910462333.9A CN201910462333A CN110263054B CN 110263054 B CN110263054 B CN 110263054B CN 201910462333 A CN201910462333 A CN 201910462333A CN 110263054 B CN110263054 B CN 110263054B
- Authority
- CN
- China
- Prior art keywords
- sql
- work order
- database
- auditing
- machine room
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2438—Embedded query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及SQL工单的审核系统、审核方法、装置及计算机设备,属于数据库技术领域。所述系统包括:包括:第一客户端、系统服务模块和配置在多个机房中的审核模块;系统服务模块分别与第一客户端和审核模块网络连接;第一客户端,用于获取待审核SQL工单,将待审核SQL工单发送给系统服务模块;系统服务模块,用于接收第一客户端发送的待审核SQL工单,向目标机房的审核模块发送待审核SQL工单;目标机房中的审核模块,用于对待审核SQL工单进行审核,得到审核结果,向系统服务模块返回审核结果;系统服务模块,还用于向第一客户端返回审核结果。能实现对待审核SQL工单的自动审核,有效提高SQL工单的审核效率。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及SQL工单的审核系统、基于SQL工单的审核系统的审核方法、装置、计算机设备及存储介质。
背景技术
为了数据库安全,企业大多通过数据库管理员(Database Administrator,简称为DBA)来管理数据库。DBA为避免数据库更新及查询等任务对数据库性能带来的风险,所以需要审核与评估研发人员提交的SQL(Structured Query Language,结构化查询语言)工单是否合理有效,评估通过后方可在对应数据库上安全执行该SQL工单对应的任务(增、删、改、查、创建、批量等)。
在实现本发明的过程中,发明人发现现有SQL审核过程中存在如下问题:1、SQL的标准越多,人工审核越费力;2、审核效果取决于DBA的个人能力和检测方法;3、从审核到执行需要手动在对应数据库上执行(并且通常是半夜或周末实施操作),当数据库为分布式数据库时,难以保证人工方式操作的无误性与及时性。以上这些都导致现有人工审核方式对DBA的依赖性太大,使得SQL工单的审核效率低下。
发明内容
基于此,本发明实施例提供了SQL工单的审核系统、基于SQL工单的审核系统的审核方法、装置、计算机设备及存储介质,能有效提高SQL工单的审核效率。
本发明实施例的内容如下:
第一方面,本发明实施例提供一种SQL工单的审核系统,包括:第一客户端、系统服务模块和配置在多个机房中的审核模块;所述系统服务模块分别与所述第一客户端和所述审核模块网络连接;所述第一客户端,用于获取待审核SQL工单,将所述待审核SQL工单发送给系统服务模块;其中,所述待审核SQL工单中包含有机房标识;所述系统服务模块,用于接收第一客户端发送的待审核SQL工单,向目标机房的审核模块发送所述待审核SQL工单;其中,所述目标机房为根据所述机房标识从所述多个机房中确定;所述目标机房中的审核模块,用于对所述待审核SQL工单进行审核,得到审核结果,向所述系统服务模块返回所述审核结果;所述系统服务模块,还用于向所述第一客户端返回所述审核结果。
在一个实施例中,还包括:代理模块,所述代理模块配置在所述多个机房中,并与所述系统服务模块网络连接;所述目标机房中的代理模块,用于接收所述系统服务模块发送的待审核SQL工单,并将所述待审核SQL工单发送给所述目标机房中的审核模块。
在一个实施例中,所述待审核SQL工单中包含有数据库标识;所述数据库用于执行与所述待审核SQL工单对应的SQL任务;所述目标机房中的审核模块,还用于根据所述数据库标识从多个数据库中确定目标数据库,对目标数据库的环境指标进行检测,根据检测结果确定所述目标数据库是否适合执行与所述待审核SQL工单对应的SQL任务,若是,控制所述目标数据库执行所述SQL任务,若否,驳回与所述待审核SQL工单对应的SQL任务,通过所述系统服务模块向第二客户端输出驳回提示信息,所述驳回提示信息用于指示数据库管理员和/或系统管理员调整所述目标数据库的环境指标;其中,所述SQL任务包括:增加、删除、修改、查询、创建、批量操作所述目标数据库中的数据;所述环境指标包括:当前负载CPULOAD、CPU IDLE程度、SWAP交换内存使用情况、可用内存、磁盘IOPS的繁忙程度、程序所在目录的使用可行性、TPS、QPS、QUEUE、DML、DDL、批量任务执行状态、定时JOB执行状态以及备份任务执行状态。
在一个实施例中,所述目标机房中的审核模块,还用于若接收到业务变更指令,执行回滚语句,所述回滚语句用于控制所述目标数据库恢复到执行所述SQL任务前的状态。
在一个实施例中,所述目标机房中的审核模块,还用于判断与所述目标数据库对应的中间件是否发生故障,若是,确定新的中间件,将所述待审核SQL工单通过所述新的中间件发送至所述目标数据库中;其中,所述中间件所支持的语法规则包括以下至少一项:MYCAT、KINGSHARD以及MONGOS。
在一个实施例中,所述目标机房中的审核模块,还用于通过预先设定的接口与所述目标数据库进行数据传输;其中,所述预先设定的接口能兼容多种类型的目标数据库。
在一个实施例中,所述目标数据库包括以下至少一种类型:MYSQL、ORACLE、SQLSERVER、MONGODB和POSTGRESQL。
在一个实施例中,所述第一客户端,还用于在接收到用户的登录信息时,获取所述用户的角色,根据所述角色获取所述用户的权限,根据用户的权限响应所述用户对所述SQL工单的审核系统的操作请求。
在一个实施例中,所述角色包括:普通用户、数据库管理员以及系统管理员。
在一个实施例中,所述普通用户对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询和操作手册查询。
在一个实施例中,所述数据库管理员对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询、操作手册查询、SQL工单审核、用户权限管理、数据库管理、告警级别设置、数据库模式定义语言访问、数据库操纵语言访问、数据库控制语言访问、索引重建、索引修改、可视化报表统计和问题解决历史记录。
在一个实施例中,所述系统管理员对应的权限包括:驳回业务不支持的SQL任务。
第二方面,本发明实施例提供基于SQL工单的审核系统的审核方法,所述审核方法包括以下步骤:接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块;根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果;接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。
第三方面,本发明实施例提供基于SQL工单的审核系统的审核装置,包括:工单接收单元,用于接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;机房确定模块,用于根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块;审核单元,用于根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果;以及,结果接收单元,用于接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。
第四方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块;根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果;接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。
第五方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块;根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果;接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。
上述技术方案中的一个技术方案具有如下优点或有益效果:包括第一客户端、系统服务模块和审核模块,系统服务模块在接收到第一客户端发送的待审核SQL工单时,确定目标机房并将待审核SQL工单发送至目标机房的审核模块中,以对待审核SQL工单进行审核得到审核结果,并将审核结果返回给第一客户端。能实现对待审核SQL工单的自动审核,有效提高SQL工单的审核效率。
附图说明
图1为一个实施例中SQL工单的审核系统的结构框图;
图2为另一个实施例中SQL工单的审核系统的结构框图;
图3为一个实施例中基于SQL工单的审核系统的审核方法的应用环境图;
图4为一个实施例中SQL工单的审核方法的流程示意图;
图5为一个实施例中SQL工单的审核装置的结构框图;
图6为一个实施例中计算机设备的内部结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种SQL工单的审核系统、基于SQL工单的审核系统的审核方法、装置、计算机设备及存储介质。以下分别进行详细说明。
在一个实施例中,如图1所示,提供了一种SQL工单的审核系统,包括:第一客户端101、系统服务模块102(也可以称为系统服务端)和配置在多个机房中的审核模块103(也可以称为审核服务端);系统服务模块102分别与所述第一客户端101和审核模块103网络连接。
第一客户端101,用于获取待审核SQL工单,将所述待审核SQL工单发送给系统服务模块;其中,所述待审核SQL工单中包含有机房标识。
其中,SQL工单指的是用户(可以为研发人员等)需要对机房数据库中的数据进行操作时所提交的工单,该工单中可以包括机房标识(可以由系统服务模块生成并发送给客户端)、所要执行的SQL任务等,而SQL任务可以指增加、删除、修改、查询、创建、批量操作与目标机房对应的目标数据库中的数据,即实现对数据库的更新和查询等。为了避免数据库更新及查询等SQL任务对数据库性能带来的风险,所以需要对提交的SQL工单的合理性与有效性进行审核,此时可以将用户所提交的SQL工单称为待审核SQL工单。
系统服务模块102,用于接收第一客户端发送的待审核SQL工单,向目标机房中的审核模块发送待审核SQL工单;其中,目标机房为根据机房标识从多个机房中确定。
其中的多个机房(如图1中的机房1、机房2、……、机房N,此时1、2、…、N就可以认为是机房标识)可以设置在与系统服务模块不同的位置上,即可以为异地机房。确定目标机房的过程可以为:系统服务模块102根据待审核SQL工单中的机房标识访问各个机房,将其中与该机房标识对应的机房确定为目标机房。
在一些实施例中,SQL工单的审核系统还包括:代理模块,代理模块配置在多个机房中(即一个机房中配置一个审核模块以及一个代理模块),并与系统服务模块网络连接;目标机房中的代理模块,用于接收系统服务模块发送的待审核SQL工单,并将待审核SQL工单发送给目标机房中的审核模块(即发送给同一机房中的审核模块)。具体的,代理模块用于接收系统服务模块的指令,例如需要控制审核模块路由到对应的数据库进行SQL检测与执行,还用于将检测和执行结果发送给系统服务模块,相当于系统服务模块与各机房通信的信使。
可以理解,一个机房中可以配置一个审核模块以及一个代理模块,当然,也可以配置数量更多或更少的审核模块和代理模块,即审核模块和代理模块也可以不是一一对应的关系。
进一步地,对SQL工单进行审核和执行的整个系统框图可以如图2所示,图2中包括客户端、服务集群(配置有系统服务模块)、Agent代理(其中包括多个代理程序,这些代理程序分别配置在不同的异地机房中)、异地机房、中间件以及分布式数据库集群(包括多个数据库,每个机房都可以对应有一个或多个数据库)。其中,系统服务模块可以根据与异地机房的连接信息以及机房标识找到对应的目标机房,进而实现与目标机房的远程安全连接。其中,中间件能实现各个异地机房与对应数据库的通信连接。
目标机房中的审核模块103,用于对待审核SQL工单进行审核,得到审核结果,向系统服务模块返回审核结果。
具体的,审核模块103可以按照设定的审核规范对待审核SQL工单进行审核。其中,设定的审核规范可以是系统预先生成的规范,也可以是用户自定义的规范(用户可以通过调整系统参数的方式自定义审核规范)。其中,系统预先生成的规范可以是针对不同版本的系统生成不同的审核规范(例如:中间件低版中不能存在LIMIT M,N,而高版本对此不做限制),还可以针对数据库源码级的语法语义生成审核规范。另外,用户除了可以自定义审核规范,还可以自定义SQL任务以及数据库字典查询等的执行规范。
在审核过程中,目标机房中的审核模块,还用于按照设定的审核规范对待审核SQL工单进行语法检测,语义检测,中间件规则检测等,并根据检测结果得到审核结果。其中的语义分析可以是对库、表、列字符集、对象等进行语义分析,具体的,在以下情况下可以报错:库或者表、列的信息不正确或者不符合规范,字符集使用不规范,使用了不存在的对象,等。
中间件与数据库不同,它有自己的执行规范,对SQL任务有更高的要求;该中间件规则可以包括机房的指派信息,即是哪个机房对应的数据库就将待审核SQL工单分派到哪个机房对应的数据库上去。
另外,除了通过审核模块自动对待审核SQL工单进行审核(通过审核模块自动对待审核SQL工单进行审核可以认为是自动检测的过程),还可以发送给客户端进行人工审核,即由普通用户、数据库管理员等来进行SQL语法、语义等审核,此时自动检测和人工审核实现了对待审核SQL的多级审核。在审核结果为有问题时,系统服务模块可以通过向客户端返回审核结果的方式输出错误提示信息。
上述实施例提供的SQL工单的审核系统,包括第一客户端、系统服务模块和审核模块,系统服务模块在接收到第一客户端发送的待审核SQL工单时,确定目标机房并将待审核SQL工单发送至目标机房的审核模块中,以对待审核SQL工单进行审核得到审核结果,并将审核结果发送给第一客户端。能实现以下功能:1)能实现对待审核SQL工单的自动审核,有效提高SQL工单的审核效率。2)只需要部署一套SQL审核模块,就能在异地机房中实现SQL工单的自动提交、自动审核以及自动执行,极大提高了SQL工单的审核效率以及SQL任务的执行效率。3)目前市面上的SQL发布系统只能在单个数据库上发布SQL任务,表现为单实例(无分布式)、单一类型、无流程,这就使得SQL工单的审核和发布效率低下;上述实施例提供的SQL工单的审核系统能实现跨机房分布式数据库的自动SQL发布(即,将SQL任务发送给对应的目标数据库进行任务执行),相对于现有在单一机房上的操作,达到效率与准确率上百倍的效果。
在一些实施例中,在SQL审核和执行过程中出现任何问题或者得到任何执行结果,都可以通过向客户端发送指示信息的方式通知使用该客户端的用户,该用户可以是需要知晓本次SQL任务相关信息的研发人员、审核人员、项目负责人等。这样的处理方式使得SQL工单的审核系统具有自动验收的功能。
在一个实施例中,SQL工单的审核系统包括第一客户端、服务集群(配置有系统服务模块)、代理程序、中间件以及部署在多个不同机房的不同类型数据库。网络互通的机房视为一个集合,在所属集合中的一台主机部署SQL审核模块以及与系统服务模块通信的代理程序。
第一客户端只需要对系统服务模块发送待审核SQL工单(可以为对数据库进行更新、查询的指令),由系统服务模块传达指令给异地机房的代理程序,再由代理程序控制SQL审核模块进行审核,把审核结果返回给系统服务模块。
以下对SQL工单的审核系统中的各个组成部分进行详细说明:
客户端可以通过Web浏览器访问系统的可视化管理界面,管理员通过客户端对系统的配置进行管理,研发人员通过客户端提交SQL工单、发布SQL任务。客户端将任务发送给系统服务模块,由系统服务模块统一进行处理。
系统服务模块是系统的中枢部分,主要负责收集客户端发布的任务与请求,将异地机房的任务分发到对应机房的代理程序,处理返回的结果信息,通过邮件与短信通知相关人员。
部署在各地机房中的代理程序,用于接收系统服务模块的指令,控制SQL审核服务模块路由到对应的数据库进行SQL检测与执行。还用于将检测和执行结果发送给系统服务模块,相当于系统服务模块与各机房通信的信使。
SQL审核模块是系统的基础组件,自动定位到对应的中间件或不同类型数据库集群架构中,用于SQL发布的自动检测、自动执行以及回滚生成。SQL任务执行成功后将回滚语句保存在专用数据库中,如果需要恢复数据库原貌,可以一键提交回滚进行自动恢复。
部署有中间件的数据库集群,能基于中间件的语法规则及分片规则自动审核执行及回滚语句生成。特别地,当中间件配置文件有修改或更新时,会实时同步到系统服务模块,同时触发邮件与短信通知相关负责人,确保系统服务模块与中间件的实时同步。
在一个实施例中,待审核SQL工单中包含有数据库标识;其中,数据库用于执行与所述待审核SQL工单对应的SQL任务;目标机房中的审核模块,还用于根据所述数据库标识从多个数据库中确定目标数据库,对目标数据库的环境指标进行检测,根据检测结果确定目标数据库是否适合执行与待审核SQL工单对应的SQL任务,若是,控制目标数据库执行SQL任务,若否,驳回与待审核SQL工单对应的SQL任务,通过系统服务模块向第二客户端输出驳回提示信息(可以通过邮件、短信等方式),驳回提示信息用于指示数据库管理员和/或系统管理员调整目标数据库的环境指标;其中,SQL任务包括:增加、删除、修改、查询、创建、批量操作目标数据库中的数据;环境指标包括:当前负载CPU LOAD、CPU IDLE程度、SWAP交换内存使用情况、可用内存、磁盘IOPS的繁忙程度、程序所在目录的使用可行性(可以通过目录使用率来确定)、TPS、QPS、QUEUE、DML、DDL、批量任务执行状态、定时JOB执行状态以及备份任务执行状态。
在对环境指标进行检测之后,可以根据这些环境指标的检测结果得到一个综合值,将综合值与设定阈值(这个阈值可以根据实际情况确定)进行比较以判断目标数据库的当前环境是否支持SQL任务的执行,只有在当前环境指标是处在一个正常的标准范围时,SQL任务才能执行,若任何一项指标(或者部分指标)不符合规范,都可以触发驳回提示信息的发送。在环境支持SQL任务执行时进行SQL的发布;在环境不支持SQL任务执行时不进行SQL的发布,并实时对目标数据库的环境指标进行检测,如果发现能支持SQL任务执行了,则可以通过人工补充或重新走流程完成SQL自动发布的方式(自动将待审核SQL工单发送至目标数据库)完成SQL任务的执行。
其中,第二客户端可以但不限于是各种类型的智能手机、电脑。
进一步地,该目标机房中的审核模块,还用于在驳回与所述待审核SQL工单对应的SQL任务后的设定时间,再次对目标数据库的环境指标进行检测,如果环境检测通过,则SQL自动发布任务正常自动执行。
其中,设定时间可以是5分钟、10分钟、15分钟等。另外,如果当前的数据库环境不满足执行SQL的需求,而且通过发送驳回提示信息的方式告警通知但相关人员没有及时处理,系统可以自动采取延迟5分钟、10分钟、15分钟不等的延迟机制再次进行环境指标的检测,以唤醒该SQL自动发布任务。
上述实施例在进行SQL任务执行之前对目标数据库进行环境检测,在环境检测不通过时停止SQL任务的发布并通知相应的负责人,能保证SQL发布仅在环境检测通过时才进行,及时阻止无用的SQL发布。之后,还能实时对目标数据库的环境进行检测,在环境状态符合执行条件时,恢复SQL的发布过程,使得SQL发布更加智能。
需要说明的是,向第二客户端发送信息(如:审核结果、驳回提示信息、执行时间、任务不可执行信息等),可以通过邮件、短信等方式进行。另外,可以通过不同的第二客户端来分别接收审核结果、驳回提示信息、执行时间、任务不可执行信息等信息,当然,也可以用同一个第二客户端来接收这些信息。同时这些第二客户端与提交待审核SQL工单的第一客户端可以相同也可以不同。
在一个实施例中,SQL工单的审核系统还提供生成回滚语句的功能,对应的操作记录及回滚语句会被存储在专用机器上,在需要回滚的场景下,一键就能完成回滚提交。具体的,目标机房中的审核模块,还用于若接收到业务变更指令(可以在出现误操作或任务需求下线时由系统服务模块发送),执行回滚语句,回滚语句用于控制目标数据库恢复到执行SQL任务前的状态。
随着SQL变更需求的增多,DBA承载的压力也越来越大,如果出现误操作或任务需求下线,对批量SQL没有手动生成回滚语句,将很难快速解决此场景出现的问题,应急预案也难以短期与快速恢复数据库原貌,而本实施例能在出现误操作或任务需求下线时,对数据库进行恢复操作,防止对数据库造成不必要的修改,也能提高DBA对误操作的解决效率。
在一个实施例中,目标机房中的审核模块,还用于判断目标数据库是否发生故障,若是,确定能够执行所述SQL任务的新的目标数据库,将待审核SQL工单发送至新的目标数据库中,并控制新的目标数据库执行对应的SQL任务。
其中,新的目标数据库可以是同一异地机房对应的数据库,也可以是不同异地机房对应的数据库,能执行对应的SQL任务即可。
另外,目标机房中的审核模块,还用于判断与目标数据库对应的中间件是否发生故障,若是,确定新的中间件,将待审核SQL工单通过新的中间件发送至目标数据库中;其中,中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。本发明实施例的SQL工单的审核系统支持不同类型的中间件,不同类型的中间件都能使用本发明实施例的审核系统实现SQL工单的发布和执行。中间件所支持的语法规则包括以下至少一项:MYCAT、KINGSHARD以及MONGOS。
上述实施例中,审核模块能在目标数据库和中间件出现故障时,实现SQL任务的迁移,保证SQL任务的顺利执行。
在一个实施例中,目标机房中的审核模块,还用于通过预先设定的接口与多种类型的目标数据库进行数据传输;其中,所述预先设定的接口能兼容多种类型的目标数据库。举例说明,目标数据库包括以下至少一种类型:MYSQL、ORACLE、SQL SERVER、MONGODB和POSTGRESQL。
可以通过一定的编码程序设定接口,实现审核模块与多种类型的目标数据库的数据传输。
现有技术只能实现在单个机房对应数据库的SQL审核和发布,本发明实施例通过设置接口,能实现多种数据库的SQL审核和发布,有效提高SQL工单的审核系统的扩展性。
在一个实施例中,目标机房中的审核模块,还用于若待审核SQL工单对应的SQL任务为对目标数据库的危险操作,根据待审核SQL工单通过系统服务模块向第二客户端发送第一审核指令;第一审核指令用于触发第二客户端指示普通用户、数据库管理员和/或系统管理员对待审核SQL工单进行审核。
具体的,当对应的SQL任务为危险操作时,由审核模块对待审核SQL工单进行审核(认为是自动检测的过程);如果审核通过,则发送给第二客户端进行人工审核;如果审核不通过,则可以驳回待审核SQL工单对应的SQL任务。
本实施例在SQL任务为危险操作且通过SQL检测时,自动选择开启多级审核(系统自动审核以及人工审核)功能任务,能防止对数据库的危险操作,保证数据库的安全性。
在一个实施例中,目标机房中的审核模块,还用于通过机器学习的方式预测目标数据库的环境状态;在环境状态可执行对应的SQL任务时确定执行时间,向第一客户端返回执行时间,以使第一客户端在执行时间到达时发送待审核SQL工单;在环境状态不可执行对应的SQL任务时,通过系统服务模块向第一客户端发送任务不可执行信息,此时第一客户端可以推迟待审核SQL工单的发送。
其中,发送待审核SQL工单的客户端1与接受任务不可执行信息的客户端2可以相同也可以不同,例如客户端1可以是研发人员使用的客户端,而客户端2既可以是研发人员使用的客户端,也可以是其他用户(如:审核人)使用的客户端。
另外,预测目标数据库的环境状态也可以在接收到发送的待审核SQL工单甚至在对待审核SQL工单进行审核结束之后进行,如果预测到的执行时间未到达,则等待执行时间达到,若执行时间达到,就进行待审核SQL工单的审核或者进行SQL任务的发布。
其中,通过机器学习的方式预测数据库环境的实现过程可以为:获取某个历史时间段内的数据库环境状态,通过对数据库环境状态进行监督学习或者非监督学习的方式确定其中适合的执行时间。
进一步地,通过机器学习的方式预测数据库环境,推荐合适的定时执行时间或者给需求人说明执行SQL是否可行等,如果不可行,则直接推送邮件与短信至对应数据库管理员及时解决数据库环境问题,如果可行,直接执行所提交的SQL工单。能使得待审核SQL工单提交之后能立刻被审核,有效提高SQL审核的效率。
在一个实施例中,系统服务模块,包括主库和从库;系统服务模块,还用于将写数据库的待审核SQL工单分发到对应的主库,将读数据库的待审核SQL工单分发到对应的从库。
其中,从库是主库的热备,即时可以增量同步。因存在中间件,微服务架构中存在读写分离的情况,将读和写的SQL工单分发到不同的库中,能有效均衡微服务架构中的各个服务,提高对SQL工单的响应效率。
本实施例通过设置主库和从库的高可用模式,能保证客户端发送的各种交互请求都能得到快速响应。
在一个实施例中,第一客户端,还用于在接收到用户的登录信息时,获取用户的角色,根据角色获取用户的权限,根据用户的权限响应用户对SQL工单的审核系统的操作请求。其中的角色包括:普通用户、数据库管理员以及系统管理员。
具体的,普通用户对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询和操作手册查询;数据库管理员对应的权限包括:所述数据库管理员对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询、操作手册查询、SQL工单审核、用户权限管理、数据库管理、告警级别设置、数据库模式定义语言访问、数据库操纵语言访问、数据库控制语言访问、索引重建、索引修改、可视化报表统计和问题解决历史记录;系统管理员对应的权限包括:驳回业务不支持的SQL任务。其中,业务不支持的SQL任务可以指分布式数据库中(带中间件),SQL谓词未带分片字段。
需要说明的是,数据库管理员的权限可以包括普通用户的权限,系统管理员的权限也可以包括数据库管理员的权限。其中的普通用户可以是:研发工程师、产品经理、客服人员、运营管理员等。用户登录之后,系统服务模块还可以根据其角色对用户进行验证。
其中,用户权限管理可以指数据库管理员或系统管理员根据用户的角色为用户对应的账号配置对应的权限。数据库管理员或系统管理员还能将实现用户权限管理任务的转发,例如:数据库管理员A在接收到普通用户的权限申请信息时,可以将该权限申请信息转发给数据库管理员B。
另外,数据字典查询可以与项目负责人一一对应,项目负责人可以通过客户端查询并导出相应的数据字典查询结果。需要说明的是,对一个待审核SQL工单进行处理可以认为是一个项目,则该待审核SQL工单的提交人、审核人就可以认为是项目负责人。
数据库配置可以指添加、修改数据库配置以及用户组配置等。其中,可以将普通用户、数据库管理员、系统管理员分别建立为不同的用户组。
本实施例为不同用户配置不同的权限,能使得整个系统有序进行;同时,非数据库管理人员和数据库负责人无权限操作该系统的配置,能保证系统的安全运行。
在一个实施例中,可以辅助DBA分析查询语句的性能(执行计划),如果没有使用索引或者某些原因导致查询很慢的情况,可以检查并自动定位问题。具体的,目标机房中的审核模块,还用于若用户的角色为数据库管理员,当接收到查询语句时,定位查询语句中的问题语句,这样的方式能有效提高数据库管理员的工作效率。另外,该用户角色可以替换为普通用户、系统管理员等,查询语句也可以替换成其他的操作,如:SQL工单提交、规范查询、FAQ查询、操作手册查询等。
具体的,查询语句包括与数据库字典查询、规范查询、FAQ查询、操作手册查询中的至少一项对应的语句。
在一个实施例中,系统服务模块,还用于若待审核SQL工单对应的SQL任务为定时执行任务,判定定时时间是否到达,若到达,向目标机房中的审核模块发送待审核SQL工单;其中,定时执行任务包括数据库模式定义语言、数据库操纵语言、数据库控制语言以及索引重建中至少一项对应的任务。
本实施例通过判定待审核SQL工单的定时时间是否到达来自动启动SQL工单审核以及SQL任务执行过程,使得SQL工单的审核系统更加智能。
在一个实施例中,系统服务模块,包括多个微服务,此时的系统架构属于微服务架构;系统服务模块,还用于若待审核SQL工单对应的SQL任务为定时执行任务,在定时时间到达时将待审核SQL工单发送给第一微服务,若第一微服务无法执行对应的SQL任务,确定可执行对应的SQL任务的第二微服务,将待审核SQL工单发送给第二微服务。还可以,将不能正常提供服务的故障信息和切换到新的微服务的告警信息通过邮件与短信的方式发送至客户端,以通知管理员。
采用微服务集群架构,即SQL工单的审核系统部署有多个微服务,每个微服务可以独立部署,它们之间是松耦合关系,微服务内部是高内聚,外部是低耦合,为该SQL工单的审核系统提供高可用服务。
上述实施例提供的SQL工单的审核系统,SQL任务需求发布人员发布定时任务,由于网络、机房等故障,导致该定时任务不能按预期执行,这时微服务架构将会把该SQL任务发布到其他微服务,提供持续不断的正常服务,确保SQL任务的发布不受服务影响,避免单点问题的发生。
在一个实施例中,系统服务模块,还用于控制第一微服务执行自愈脚本。具体的,微服务集群架构中的一个服务挂掉,如果是由于网络抖动、机器重启等不影响服务的因素造成,会通过执行定时自愈脚本,将服务重新恢复正常,保证新的SQL任务能被正常执行。
在一个实施例中,第一客户端,还用于根据所述审核结果输出所述待审核SQL工单的可视化报表。当然,输出可视化报表的也可以是第二客户端。
具体的,SQL发布人员申请可视化报表功能,通过数据库管理员同意后,SQL发布人员可以根据所负责的项目,输入筛选条件,控制客户端输出可视化报表。
此外,数据库管理员以及系统管理员也能使用客户端导出可视化报表。数据库管理员通过可视化报表的信息,可以清楚地获知所负责项目在数据库层需要进行哪些优化,也可以进行后续SQL发布的预测。还能通过可视化报表信息,从不同维度决策数据库与应用系统的优化,并在内部组织培训,提升数据库设计与优化等方面的邢恩能够,将SQL的发布率降到最低,从而有效保护数据库有效、健康、安全地运行。
该审核系统还可以根据报表统计结果自动进行分析,在统计结果出现问题时对系统进行修复,以完善系统功能。
本申请提供的基于SQL工单的审核系统的审核方法可以应用于如图3所示的应用环境中。该应用环境包括审核系统301和客户端302,其中审核系统301包括系统服务模块3011和配置在多个机房(图3中仅示出了2个)中的审核模块3012,客户端302和系统服务模块3011网络连接,系统服务模块3011与审核模块3012网络连接。系统服务模块3011在接收到客户端302发送的待审核SQL工单时,从多个机房中确定目标机房,并将待审核SQL工单发送至审核模块进行审核,得到审核结果。系统服务模块3011和审核模块3012均可以通过终端和服务器实现,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图4所示,提供了一种基于SQL工单的审核系统的审核方法。该审核方法可以执行本发明任意实施例所提供的SQL工单的审核系统中的相关操作,且具备相应的功能和有益效果,再次不再赘述。以下以该方法应用于系统服务模块为例进行说明,包括以下步骤:S401、接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识。S402、根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块。S403、根据所述待审核SQL工单向目标机房中的审核模块发送第二审核指令;所述第二审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果。S404、接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。
本实施例,能实现对待审核SQL工单的自动审核,有效提高SQL工单的审核效率。采用微服务架构,和云计算平台结合,实现纳管跨机房的各种类型数据库。在SQL自动化发布系统中,SQL的审核、执行与回滚都由系统自动完成,替代传统的人工方式,极大地提高了工作效率,并且保障了SQL的规范性以及操作的安全性。
需要说明的是,对于前述的方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的SQL工单的审核方法相同的思想,本发明还提供SQL工单的审核装置,该装置可用于执行上述SQL工单的审核方法。为了便于说明,SQL工单的审核装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,SQL工单的审核装置包括工单接收单元501、机房确定单元502、审核单元503和结果接收单元504,详细说明如下:工单接收单元501,用于接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;机房确定单元502,用于根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块;审核单元503,用于根据所述待审核SQL工单向目标机房中的审核模块发送第二审核指令;所述第二审核指令用于控制所述目标机房中的审核模块对所述待审核SQL工单进行审核,得到审核结果;以及,结果接收单元504,用于接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果。本实施例,能实现对待审核SQL工单的自动审核,有效提高SQL工单的审核效率。
需要说明的是,本发明的SQL工单的审核装置与本发明的SQL工单的审核方法一一对应,在上述SQL工单的审核方法的实施例阐述的技术特征及其有益效果均适用于SQL工单的审核装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述示例的SQL工单的审核装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述SQL工单的审核装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
本申请提供的SQL工单的审核方法可以应用于如图6所示的计算机设备中。该计算机设备可以是服务器,也可以是终端设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,处理器用于提供计算和控制能力;存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统、计算机程序(该计算机程序被处理器执行时实现一种SQL工单的审核方法)和数据库,该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境;数据库用于存储待审核SQL工单等数据;网络接口用于与外部的终端通过网络连接通信,例如与客户端连接,用于接收客户端发送的待审核SQL工单。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收第一客户端发送的待审核SQL工单;其中,待审核SQL工单中包含有机房标识;根据机房标识从多个机房中确定目标机房;多个机房中配置有审核模块;根据待审核SQL工单向目标机房中的审核模块发送第二审核指令;第二审核指令用于控制目标机房中的审核模块对待审核SQL工单进行审核,得到审核结果;接收目标机房中的审核模块返回的审核结果,并向第一客户端返回审核结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收第一客户端发送的待审核SQL工单;其中,待审核SQL工单中包含有机房标识;根据机房标识从多个机房中确定目标机房;多个机房中配置有审核模块;根据待审核SQL工单向目标机房中的审核模块发送第二审核指令;第二审核指令用于控制目标机房中的审核模块对待审核SQL工单进行审核,得到审核结果;接收目标机房中的审核模块返回的审核结果,并向第一客户端返回审核结果。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种SQL工单的审核系统,其特征在于,包括:第一客户端、系统服务模块、配置在多个机房中的审核模块、代理程序以及部署在多个不同机房的数据库;所述系统服务模块分别与所述第一客户端和所述审核模块网络连接;
所述第一客户端,用于获取待审核SQL工单,将所述待审核SQL工单发送给系统服务模块;其中,所述待审核SQL工单中包含有机房标识;所述系统服务模块,用于接收第一客户端发送的待审核SQL工单,并将所述待审核SQL工单发送至目标机房中的代理程序,通过所述目标机房中的代理程序向所述目标机房中的审核模块发送所述待审核SQL工单;其中,所述目标机房为根据所述机房标识从所述多个机房中确定;
所述目标机房中的审核模块,用于按照设定的审核规范对所述待审核SQL工单进行语法检测、语义检测、中间件规则检测中的至少一种检测,得到检测结果,并根据检测结果得到审核结果,向所述系统服务模块返回所述审核结果;所述审核规范为针对不同版本的系统或者针对数据库源码级的语法语义生成的审核规范;其中,所述语义检测是对库、表、列字符集、对象中的至少一种进行语义分析,且当库或者表、列的信息不正确或者不符合规范,或者字符集使用不规范,或者使用了不存在的对象时,进行报错处理;所述中间件规则检测指的是基于中间件的语法规则和分片规则进行审核;
所述系统服务模块,还用于向所述第一客户端返回所述审核结果;
待审核SQL工单中包含有数据库标识;其中,数据库用于执行与所述待审核SQL工单对应的SQL任务;目标机房中的审核模块,还用于根据所述数据库标识从多个数据库中确定目标数据库,对所述目标数据库的环境指标进行检测,根据检测结果,确定所述目标数据库是否适合执行与所述待审核SQL工单对应的SQL任务,若是,确定执行时间,向所述第一客户端返回所述执行时间,以使第一客户端在执行时间到达时发送待审核SQL工单,并控制所述目标数据库执行与所述待审核SQL工单对应的SQL任务;若否,驳回与所述待审核SQL工单对应的SQL任务,并通过所述系统服务模块向所述第一客户端发送任务不可执行信息,以使第一客户端推迟待审核SQL工单的发送;
所述目标机房中的审核模块,还用于在环境不支持SQL任务执行时不进行SQL的发布,在驳回与所述待审核SQL工单对应的SQL任务后的设定时间内,对所述目标数据库的环境指标进行检测,若所述目标数据库的环境指标检测通过,则SQL自动发布任务正常自动执行;
所述系统服务模块,还用于在驳回与所述待审核SQL工单对应的SQL任务时,向第二客户端输出驳回提示信息;所述驳回提示信息用于指示数据库管理员和/或系统管理员调整所述目标数据库的环境指标;
所述目标机房中的审核模块还用于判断所述目标数据库是否发生故障,若是,从同一异地机房对应的数据库中确定能够执行所述SQL任务的新的目标数据库,将待审核SQL工单发送至新的目标数据库中,并控制新的目标数据库执行对应的SQL任务。
2.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述代理模块配置在所述多个机房中,并与所述系统服务模块网络连接。
3.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述SQL任务包括:增加、删除、修改、查询、创建、批量操作所述目标数据库中的数据;
所述环境指标包括:当前负载CPU LOAD、CPU IDLE程度、SWAP交换内存使用情况、可用内存、磁盘IOPS的繁忙程度、程序所在目录的使用可行性、TPS、QPS、QUEUE、DML、DDL、批量任务执行状态、定时JOB执行状态以及备份任务执行状态。
4.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述目标机房中的审核模块,还用于若接收到业务变更指令,执行回滚语句,所述回滚语句用于控制所述目标数据库恢复到执行所述SQL任务前的状态。
5.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述目标机房中的审核模块,还用于判断与所述目标数据库对应的中间件是否发生故障,若是,确定新的中间件,将所述待审核SQL工单通过所述新的中间件发送至所述目标数据库中;
其中,所述中间件所支持的语法规则包括以下至少一项:MYCAT、KINGSHARD以及MONGOS。
6.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述目标机房中的审核模块,还用于通过预先设定的接口与所述目标数据库进行数据传输;其中,所述预先设定的接口能兼容多种类型的目标数据库;所述目标数据库包括以下至少一种类型:MYSQL、ORACLE、SQL SERVER、MONGODB和POSTGRESQL。
7.根据权利要求1所述的SQL工单的审核系统,其特征在于,所述第一客户端,还用于在接收到用户的登录信息时,获取所述用户的角色,根据所述角色获取所述用户的权限,根据用户的权限响应所述用户对所述SQL工单的审核系统的操作请求;
其中,所述角色包括:普通用户、数据库管理员以及系统管理员;
所述普通用户对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询和操作手册查询;
和/或,
所述数据库管理员对应的权限包括:SQL工单提交、数据库字典查询、规范查询、FAQ查询、操作手册查询、SQL工单审核、用户权限管理、数据库管理、告警级别设置、数据库模式定义语言访问、数据库操纵语言访问、数据库控制语言访问、索引重建、索引修改、可视化报表统计和问题解决历史记录;
和/或,
所述系统管理员对应的权限包括:驳回业务不支持的SQL任务。
8.一种基于SQL工单的审核系统的审核方法,其特征在于,所述SQL工单的审核系统为权利要求1至7任一项所述;所述审核方法包括以下步骤:
接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;
根据所述机房标识从多个机房中确定目标机房;所述多个机房中配置有审核模块和代理程序;
将所述待审核SQL工单发送至目标机房中的代理程序,通过所述目标机房中的代理程序根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块按照设定的审核规范对所述待审核SQL工单进行语法检测、语义检测、中间件规则检测中的至少一种检测,得到检测结果,并根据检测结果得到审核结果;所述审核规范为针对不同版本的系统或者针对数据库源码级的语法语义生成的审核规范;其中,所述语义检测是对库、表、列字符集、对象中的至少一种进行语义分析,且当库或者表、列的信息不正确或者不符合规范,或者字符集使用不规范,或者使用了不存在的对象时,进行报错处理;所述中间件规则检测指的是基于中间件的语法规则和分片规则进行审核;接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果;
待审核SQL工单中包含有数据库标识;其中,数据库用于执行与所述待审核SQL工单对应的SQL任务;目标机房中的审核模块,还用于根据所述数据库标识从多个数据库中确定目标数据库,对所述目标数据库的环境指标进行检测,根据检测结果,确定所述目标数据库是否适合执行与所述待审核SQL工单对应的SQL任务,若是,确定执行时间,向所述第一客户端返回所述执行时间,以使第一客户端在执行时间到达时发送待审核SQL工单,并控制所述目标数据库执行与所述待审核SQL工单对应的SQL任务;若否,驳回与所述待审核SQL工单对应的SQL任务,并通过系统服务模块向所述第一客户端发送任务不可执行信息,以使第一客户端推迟待审核SQL工单的发送,以及通过系统服务模块向第二客户端输出驳回提示信息;所述驳回提示信息用于指示数据库管理员和/或系统管理员调整所述目标数据库的环境指标;
其中,所述目标机房中的审核模块,还用于在环境不支持SQL任务执行时不进行SQL的发布,在驳回与所述待审核SQL工单对应的SQL任务后的设定时间内,对所述目标数据库的环境指标进行检测,若所述目标数据库的环境指标检测通过,则SQL自动发布任务正常自动执行;
其中,所述目标机房中的审核模块还用于判断所述目标数据库是否发生故障,若是,从同一异地机房对应的数据库中确定能够执行所述SQL任务的新的目标数据库,将待审核SQL工单发送至新的目标数据库中,并控制新的目标数据库执行对应的SQL任务。
9.一种基于SQL工单的审核系统的审核装置,其特征在于,所述SQL工单的审核系统为权利要求1至7任一项所述;所述审核装置包括:
工单接收单元,用于接收第一客户端发送的待审核SQL工单;其中,所述待审核SQL工单中包含有机房标识;
机房确定单元,用于根据所述机房标识从多个机房中确定目标机房,将所述待审核SQL工单发送至目标机房中的代理程序;所述多个机房中配置有审核模块和代理程序;
审核单元,用于通过所述目标机房中的代理程序根据所述待审核SQL工单向目标机房中的审核模块发送审核指令;所述审核指令用于控制所述目标机房中的审核模块按照设定的审核规范对所述待审核SQL工单进行语法检测、语义检测、中间件规则检测中的至少一种检测,得到检测结果,并根据检测结果得到审核结果;所述审核规范为针对不同版本的系统或者针对数据库源码级的语法语义生成的审核规范;其中,所述语义检测是对库、表、列字符集、对象中的至少一种进行语义分析,且当库或者表、列的信息不正确或者不符合规范,或者字符集使用不规范,或者使用了不存在的对象时,进行报错处理;所述中间件规则检测指的是基于中间件的语法规则和分片规则进行审核;
以及,结果接收单元,用于接收所述目标机房中的审核模块返回的审核结果,并向所述第一客户端返回所述审核结果;
待审核SQL工单中包含有数据库标识;其中,数据库用于执行与所述待审核SQL工单对应的SQL任务;目标机房中的审核模块,还用于根据所述数据库标识从多个数据库中确定目标数据库,对所述目标数据库的环境指标进行检测,根据检测结果,确定所述目标数据库是否适合执行与所述待审核SQL工单对应的SQL任务,若是,确定执行时间,向所述第一客户端返回所述执行时间,以使第一客户端在执行时间到达时发送待审核SQL工单,并控制所述目标数据库执行与所述待审核SQL工单对应的SQL任务;若否,驳回与所述待审核SQL工单对应的SQL任务,并通过系统服务模块向所述第一客户端发送任务不可执行信息,以使第一客户端推迟待审核SQL工单的发送,以及通过系统服务模块向第二客户端输出驳回提示信息;所述驳回提示信息用于指示数据库管理员和/或系统管理员调整所述目标数据库的环境指标;
所述目标机房中的审核模块,还用于在环境不支持SQL任务执行时不进行SQL的发布,在驳回与所述待审核SQL工单对应的SQL任务后的设定时间内,对所述目标数据库的环境指标进行检测,若所述目标数据库的环境指标检测通过,则SQL自动发布任务正常自动执行;
所述目标机房中的审核模块还用于判断所述目标数据库是否发生故障,若是,从同一异地机房对应的数据库中确定能够执行所述SQL任务的新的目标数据库,将待审核SQL工单发送至新的目标数据库中,并控制新的目标数据库执行对应的SQL任务。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910462333.9A CN110263054B (zh) | 2019-05-30 | 2019-05-30 | Sql工单的审核系统、审核方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910462333.9A CN110263054B (zh) | 2019-05-30 | 2019-05-30 | Sql工单的审核系统、审核方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110263054A CN110263054A (zh) | 2019-09-20 |
CN110263054B true CN110263054B (zh) | 2021-11-09 |
Family
ID=67916023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910462333.9A Active CN110263054B (zh) | 2019-05-30 | 2019-05-30 | Sql工单的审核系统、审核方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110263054B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080058B (zh) * | 2019-11-07 | 2023-04-11 | 云南电网有限责任公司昆明供电局 | 一种便携式二次安全措施单快速标准化系统和方法 |
CN111078468A (zh) * | 2019-11-21 | 2020-04-28 | 贝壳技术有限公司 | 微服务架构下的服务回滚方法及装置 |
CN111177181A (zh) * | 2019-12-11 | 2020-05-19 | 天翼电子商务有限公司 | Sql文本审核方法、系统、存储介质及装置 |
CN111339184A (zh) * | 2020-02-16 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种Hive的同步方法、系统、设备以及介质 |
CN111078675B (zh) * | 2020-03-23 | 2021-08-10 | 绿城科技产业服务集团有限公司 | 一种多维度的综合数据库sql审核及优化方法和系统 |
CN113449944A (zh) * | 2020-03-27 | 2021-09-28 | 中国移动通信集团山东有限公司 | 一种基于硬件共享的工单处理方法、装置和计算机设备 |
CN111680900A (zh) * | 2020-06-01 | 2020-09-18 | 广东电网有限责任公司 | 一种工单发布方法、装置、电子设备及存储介质 |
CN111628859B (zh) * | 2020-06-05 | 2021-01-05 | 上海创蓝文化传播有限公司 | 一种基于分布式高并发条件下审核短信文本的方法及装置 |
CN111651431B (zh) * | 2020-06-09 | 2023-06-27 | 中国雄安集团数字城市科技有限公司 | 一种面向数据库服务的管理流程标准化方法 |
CN111897872A (zh) * | 2020-07-03 | 2020-11-06 | 杭州浮云网络科技有限公司 | 基于服务中心的大规模mssql管理方法、系统和计算机设备 |
CN112100647A (zh) * | 2020-07-21 | 2020-12-18 | 上海瀚银信息技术有限公司 | 一种数据库工单自动化处理系统及方法 |
CN112783917A (zh) * | 2021-01-04 | 2021-05-11 | 广州海量数据库技术有限公司 | 工单审核方法及装置、存储介质及电子设备 |
TWI749992B (zh) * | 2021-01-06 | 2021-12-11 | 力晶積成電子製造股份有限公司 | 晶圓製造的管理方法及系統 |
CN112783979A (zh) * | 2021-01-28 | 2021-05-11 | 北京读我网络技术有限公司 | 分布式数据库访问方法、装置及分布式数据库管理系统 |
CN113111066A (zh) * | 2021-04-20 | 2021-07-13 | 长沙市到家悠享网络科技有限公司 | 一种数据库操作工单自动上线方法、装置、系统和计算机设备 |
CN113127520B (zh) * | 2021-05-11 | 2023-07-21 | 中国电信股份有限公司江西分公司 | 一种基于代理模式的分布式数据库sql审核拦截方法及装置 |
CN113343272A (zh) * | 2021-06-30 | 2021-09-03 | 重庆富民银行股份有限公司 | 一种应用于数据库的自动化数据提取系统及方法 |
CN113918996B (zh) * | 2021-11-24 | 2024-03-26 | 企查查科技股份有限公司 | 分布式数据处理方法、装置、计算机设备和存储介质 |
CN114125054B (zh) * | 2021-11-29 | 2024-03-15 | 百果园技术(新加坡)有限公司 | 一种内容审核系统、方法、装置、设备及介质 |
CN114528514B (zh) * | 2022-04-24 | 2022-07-12 | 飞狐信息技术(天津)有限公司 | 一种内容处理方法、系统、存储介质及电子设备 |
CN115330337B (zh) * | 2022-08-04 | 2024-01-02 | 北京百度网讯科技有限公司 | 数据内容的处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018360A (zh) * | 2007-02-09 | 2007-08-15 | 中国移动通信集团福建有限公司 | 业务服务交换平台的计算机系统实现方法 |
CN103403707A (zh) * | 2010-12-28 | 2013-11-20 | 思杰系统有限公司 | 用于数据库代理请求交换的系统和方法 |
CN104391995A (zh) * | 2014-12-15 | 2015-03-04 | 北京趣拿软件科技有限公司 | 一种sql语句审核的方法、数据库运维的方法及系统 |
CN107153950A (zh) * | 2017-06-21 | 2017-09-12 | 广州智萃电子科技有限公司 | 一种基于工作流的工单管理系统 |
CN108768707A (zh) * | 2018-05-17 | 2018-11-06 | 北京森鑫云科技有限公司 | 一种运维工单自动化处理系统、终端和服务器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118534A1 (en) * | 2005-11-18 | 2007-05-24 | Database-Brothers, Inc. | Auditing database end user activity in one to multi-tier web application and local environments |
US8495056B2 (en) * | 2009-09-21 | 2013-07-23 | At&T Intellectual Property I, L.P. | System and method for caching database reports |
US20140230070A1 (en) * | 2013-02-14 | 2014-08-14 | Microsoft Corporation | Auditing of sql queries using select triggers |
CN109697118A (zh) * | 2017-10-20 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 流式计算任务管理方法、装置、电子设备及存储介质 |
CN108415991A (zh) * | 2018-02-12 | 2018-08-17 | 广州市贝聊信息科技有限公司 | 一种sql审核方法与系统 |
CN108628954B (zh) * | 2018-04-10 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 一种海量数据自助查询方法和装置 |
-
2019
- 2019-05-30 CN CN201910462333.9A patent/CN110263054B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018360A (zh) * | 2007-02-09 | 2007-08-15 | 中国移动通信集团福建有限公司 | 业务服务交换平台的计算机系统实现方法 |
CN103403707A (zh) * | 2010-12-28 | 2013-11-20 | 思杰系统有限公司 | 用于数据库代理请求交换的系统和方法 |
CN104391995A (zh) * | 2014-12-15 | 2015-03-04 | 北京趣拿软件科技有限公司 | 一种sql语句审核的方法、数据库运维的方法及系统 |
CN107153950A (zh) * | 2017-06-21 | 2017-09-12 | 广州智萃电子科技有限公司 | 一种基于工作流的工单管理系统 |
CN108768707A (zh) * | 2018-05-17 | 2018-11-06 | 北京森鑫云科技有限公司 | 一种运维工单自动化处理系统、终端和服务器 |
Non-Patent Citations (1)
Title |
---|
SQL自动审核;justin01;《https://www.cnblogs.com/chenshengqun/p/9078229.html》;20180523;1 * |
Also Published As
Publication number | Publication date |
---|---|
CN110263054A (zh) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263054B (zh) | Sql工单的审核系统、审核方法、装置及计算机设备 | |
US10048996B1 (en) | Predicting infrastructure failures in a data center for hosted service mitigation actions | |
US10379838B1 (en) | Update and rollback of code and API versions | |
US11196627B1 (en) | Managed remediation of non-compliant resources | |
US9411969B2 (en) | System and method of assessing data protection status of data protection resources | |
US9887889B1 (en) | State reconciliation using event tracking and polling | |
US10725763B1 (en) | Update and rollback of configurations in a cloud-based architecture | |
CN110995511A (zh) | 基于微服务架构的云计算运维管理方法、装置和终端设备 | |
CN111861140A (zh) | 一种业务处理方法、装置、存储介质和电子装置 | |
CN110673933A (zh) | 基于ZooKeeper的分布式异步队列实现方法、装置、设备及介质 | |
CN115186304B (zh) | 一种基于区块链的交易数据校验方法和系统 | |
US20210176315A1 (en) | Cross Storage Protocol Access Response for Object Data Stores | |
CN108418859B (zh) | 写数据的方法和装置 | |
CN112818056A (zh) | 一种区块链的日志安全共享方法、系统与装置 | |
CN110291505A (zh) | 减少应用的恢复时间 | |
US10248508B1 (en) | Distributed data validation service | |
CN116302716A (zh) | 一种集群部署方法、装置、电子设备及计算机可读介质 | |
CN114385498A (zh) | 性能测试方法、系统、计算机设备及可读存储介质 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN114461957A (zh) | 一种道具发放方法、装置、设备及存储介质 | |
KR102669668B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102668325B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102669665B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102668343B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
CN113282431B (zh) | 异常数据处理方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220222 Address after: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200040 Patentee after: Tianyi Digital Life Technology Co.,Ltd. Address before: 1 / F and 2 / F, East Garden, Huatian International Plaza, 211 Longkou Middle Road, Tianhe District, Guangzhou, Guangdong 510630 Patentee before: Century Dragon Information Network Co.,Ltd. |
|
TR01 | Transfer of patent right |