本发明专利技术公开分布式数据库SQL稽核及优化建议方法及系统,通过客户端捕获每个通过数据库接口执行的SQL语句上传至服务端并格式化SQL语句;服务端基于格式化SQL语句查询是否存在稽核结果;否则,将SQL语句利用语法解析器提取需要的关键信息;获取分布式数据元信息并结合关键信息进行分布式数据库稽核优化;对SQL语句语法改写、SOAR优化得到SQL语句评分,客户端获取SQL评分和稽核结果并进行展示,判断SQL语句评分与稽核结果是否相符合;是则,允许SQL语句执行;否则,阻止SQL语句执行。本发明专利技术将SOAR与TeleDB融合,降低分布式数据库SQL调优难度,提升工作效率。提升工作效率。提升工作效率。
【技术实现步骤摘要】
分布式数据库SQL稽核及优化建议方法及系统
[0001]本专利技术涉及云计算与大数据
,尤其涉及分布式数据库SQL稽核及优化建议方法。
技术介绍
[0002]分布式数据库TeleDB在各大业务系统的应用也越来越多。分布式数据库作为基础数据支撑层的核心部分,对整个平台和应用的性能表现起着决定性的影响,数据库的高可用、高并发对业务系统的日常稳定运行有着举足轻重的影响。为了确保分布式数据库平稳高效运行,电信企业一般投入专人对数据库进行监控,对脚本进行稽核和优化。
[0003]需要投入较多的人力对各个系统的分布式数据库进行监控、对脚本进行稽核和优化。研发人员对于分布式数据库特性方面的理解和熟练程度参差不齐,编写的脚本存在不规范、不合理、性能差等问题。
技术实现思路
[0004]本专利技术的目的在于提供分布式数据库SQL稽核及优化建议方法及系统,加深研发人员对分布式数据库特性的理解,提高SQL优化效率,避免数据库出现可用性降低、并发度不够、性能差等情况,进而提升系统稳定性。
[0005]本专利技术采用的技术方案是:
[0006]分布式数据库SQL稽核及优化建议方法,其包括以下步骤:
[0007]步骤1,通过客户端捕获每个通过数据库接口执行的SQL语句上传至服务端,并格式化SQL语句;
[0008]步骤2,服务端基于格式化SQL语句查询是否存在稽核结果;是则,执行步骤6;否则,执行步骤3;
[0009]步骤3,将SQL语句利用语法解析器提取需要的关键信息(表名、列名、关联关系、条件等);
[0010]步骤4,获取分布式数据元信息并结合关键信息进行分布式数据库稽核优化;
[0011]步骤5,对SQL语句语法改写、SOAR优化得到SQL语句评分,
[0012]步骤6,客户端获取SQL评分和稽核结果并进行展示,判断SQL语句评分与稽核结果是否相符合;是则,允许SQL语句执行;否则,阻止SQL语句执行。
[0013]进一步地,步骤2中通过监听ZooKeeper的更新元信息,获取ZooKeeper的TeleDB配置信息以强制更新Redis稽核结果和元信息;或者通过定时刷新稽核结果以更新Redis稽核结果和元信息。
[0014]进一步地,步骤3中首先sql语句流经过词法解析器后变成token流,语法解析器根据token流生成一棵语法树,最后根据语法树提取需要的关键信息。
[0015]进一步地,关键信息包括表名、列名、关联关系、执行条件。
[0016]进一步地,步骤4中的分布式数据元信息包括MySQL元信息、Redis稽核结果及其元
信息。
[0017]进一步地,步骤5的具体步骤为:
[0018]步骤5
‑
1,对分布式规则稽核解析的每个物理真正执行的SQL语句进行基于SOAR优化建议,
[0019]步骤5
‑
2,对可优化的SQL语句进行改写,提高SQL语句执行效率;
[0020]步骤5
‑
3,利用执行计划解读功能将route2\explain里面的信息更直白的展示出来,帮助写出更加优质的SQL语句;
[0021]步骤5
‑
4,SQL语句评分将不同类型的建议指定的安全等级不同,严重程度数字由低到高依次排序。
[0022]分布式数据库SQL稽核及优化建议系统,其包括客户端、中间组件和服务端,客户端与数据库底层接口绑定以捕获每个通过数据库接口执行的SQL语句以及获取SQL评分和稽核结果并进行展示;中间组件与服务端交互,中间组件包括ZooKeeper、Redis和分布式数据库,服务端包括SQL语法树解析单元、TeleDB稽核优化单元、SOAR优化单元、执行计划解读单元和SQL评分单元,SQL语法树解析单元通过Druid SQL Parser实现对SQL有效性及语法进行解析为后续稽核优化奠定根基;TeleDB稽核优化单元通过ZooKeeper获取分布式数据库信息并实时监听更新规则,将SQL解析出来语法和对应规则进行稽核;语法改写建议单元对稽核的SQL的语法提供改写建议;SOAR优化单元包括启发式规则建议、索引优化、SQL改写建议;执行计划解读单元用于route2、route、explain执行计划的解读;SQL评分单元对稽核后对每条SQL进行评分,以根据评分规则对SQL进行拦截。
[0023]进一步地,分布式数据库信息包括TeleDB分区规则、分区字段、全局索引。
[0024]本专利技术采用以上技术方案,对分布式数据库TeleDB SQL进行自动稽核、改写及提供启发性优化建议;对SQL进行执行计划解读及评分,对于评分低的SQL在研发环境拒绝执行;引入缓存,减少总体稽核优化时间,进而提升工作效率。
[0025]本专利技术从底层接口提取SQL进行智能自动稽核,对这些SQL进行评分,拦截评分低的SQL在研发环境中执行,进行部分改写并给出启发式的优化建议,避免问题SQL逃逸到生产环境;将SOAR与TeleDB融合,降低分布式数据库SQL调优难度,提升工作效率。
附图说明
[0026]以下结合附图和具体实施方式对本专利技术做进一步详细说明;
[0027]图1为本专利技术分布式数据库SQL稽核及优化建议方法的流程示意图;
[0028]图2为本专利技术分布式数据库SQL稽核及优化建议系统的结构示意图;
[0029]图3为SQL语法树生成流程示意图。
具体实施方式
[0030]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述。
[0031]如图1至3之一所示,本专利技术公开了分布式数据库SQL稽核及优化建议方法,其包括以下步骤:
[0032]步骤1,通过客户端捕获每个通过数据库接口执行的SQL语句上传至服务端,并格
式化SQL语句;
[0033]步骤2,服务端基于格式化SQL语句查询是否存在稽核结果;是则,执行步骤6;否则,执行步骤3;
[0034]步骤3,将SQL语句利用语法解析器提取需要的关键信息(表名、列名、关联关系、条件等);
[0035]步骤4,获取分布式数据元信息并结合关键信息进行分布式数据库稽核优化;
[0036]步骤5,对SQL语句语法改写、SOAR优化得到SQL语句评分,
[0037]步骤6,客户端获取SQL评分和稽核结果并进行展示,判断SQL语句评分与稽核结果是否相符合;是则,允许SQL语句执行;否则,阻止SQL语句执行。
[0038]进一步地,步骤2中通过监听ZooKeeper的更新元信息,获取ZooKeeper的TeleDB配置信息以强制更新Redis稽核结果和元信息;或者通过定时刷新稽核结果以更新Redis稽核结果和元信息。
[0039]进一步地,步骤3中首先sql语句流经过词法解析器后变成token流,语法解析器根据token本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.分布式数据库SQL稽核及优化建议方法,其特征在于:其包括以下步骤:步骤1,通过客户端捕获每个通过数据库接口执行的SQL语句上传至服务端,并格式化SQL语句;步骤2,服务端基于格式化SQL语句查询是否存在稽核结果;是则,执行步骤6;否则,执行步骤3;步骤3,将SQL语句利用语法解析器提取需要的关键信息;步骤4,获取分布式数据元信息并结合关键信息进行分布式数据库稽核优化;步骤5,对SQL语句语法改写、SOAR优化得到SQL语句评分;步骤6,客户端获取SQL评分和稽核结果并进行展示,判断SQL语句评分与稽核结果是否相符合;是则,允许SQL语句执行;否则,阻止SQL语句执行。2.根据权利要求1所述的分布式数据库SQL稽核及优化建议方法,其特征在于:步骤2中通过监听ZooKeeper的更新元信息,获取ZooKeeper的TeleDB配置信息以强制更新Redis稽核结果和元信息;或者通过定时刷新稽核结果以更新Redis稽核结果和元信息。3.根据权利要求1所述的分布式数据库SQL稽核及优化建议方法,其特征在于:步骤3中首先sql语句流经过词法解析器后变成token流,语法解析器根据token流生成一棵语法树,最后根据语法树提取需要的关键信息。4.根据权利要求1所述的分布式数据库SQL稽核及优化建议方法,其特征在于:关键信息包括表名、列名、关联关系、执行条件。5.根据权利要求1所述的分布式数据库SQL稽核及优化建议方法,其特征在于:步骤4中的分布式数据元信息包括MySQL元信息、Redis稽核结果及其元信息。6.根据权利要求1所述的分布式数据库SQL稽核及优化建议方法,其特征在于:步骤5的具体步骤为:步骤5
‑
1,对分布式规则稽核解析的每个物理真正执行的SQL语句进...
【专利技术属性】
技术研发人员:严奇辉,邱茂进,
申请(专利权)人:中电福富信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。