一种查询请求处理方法、装置、设备以及存储介质与流程

摘要: 本发明涉及数据库,尤其涉及一种查询请求处理方法、装置、设备以及存储介质。背景技术:1、在金融业务场景下,以goldendb为代表的分布式数据库,一般采用两类方式...
一种查询请求处理方法、装置、设备以及存储介质与流程

本发明涉及数据库,尤其涉及一种查询请求处理方法、装置、设备以及存储介质。

背景技术:

1、在金融业务场景下,以goldendb为代表的分布式数据库,一般采用两类方式处理sql(structured query language,结构化查询语言)查询请求:第一类为基于代价的优化器的查询处理方式;第二类为人工智能辅助的查询处理方式。其中,基于代价的优化器依托数据库采集到的静态统计信息,通过代价估算筛选最优算子组合,生成sql查询请求对应的分布式执行计划,并将该分布式执行计划下发至sql查询请求所涉及的数据节点执行。人工智能辅助的查询处理方式,则利用人工智能模型直接修改执行计划或者重写sql语句,将处理后的查询交由数据库直接执行,实现查询计划的全自动优化。

2、但是,基于代价的优化器的查询处理方式,高度依赖静态统计信息,在金融业务数据量实时变化、业务负载峰谷波动的场景下,统计信息易发生滞后失效,无法适配业务数据分布的动态变化,进而造成复杂查询出现性能抖动。而人工智能辅助的查询处理方式,缺少人工审核环节,变更风险难以管控,无法满足金融行业数据库变更可控、风险可溯的审慎运维要求,存在线上业务运行风险。

技术实现思路

1、本发明提供了一种查询请求处理方法、装置、设备以及存储介质,以摆脱对静态统计信息的依赖,有效规避因统计信息失效引发的查询性能抖动问题,同时在满足金融行业数据库变更可控、风险可溯的审慎运维要求的同时,提高查询的整体执行效率。

2、根据本发明的一方面,提供了一种查询请求处理方法,该方法由分布式数据库中的计算节点执行,包括:

3、当接收到待处理查询请求时,获取待处理查询请求的原始sql文本,并根据原始sql文本,确定待处理查询请求对应的目标sql模式;

4、在检测到本地缓存中不存在目标sql模式对应的计划推荐报告的情况下,获取待处理查询请求对应的原始执行计划,并获取历史负载指标序列和小时级数据分布快照;

5、根据原始sql文本、原始执行计划、历史负载指标序列和小时级数据分布快照,生成待处理查询请求对应的目标计划推荐报告,并在推荐页面中对目标计划推荐报告进行可视化展示;目标计划推荐报告包括目标计划推荐列表;

6、响应于当前数据库管理员对目标计划推荐列表中推荐执行计划的选择操作,确定待处理查询请求对应的目标执行计划;

7、向待处理查询请求的关联数据节点发送目标执行计划,并接收关联数据节点反馈的目标执行结果。

8、根据本发明的另一方面,提供了一种查询请求处理装置,该装置部署在分布式数据库中的计算节点上,包括:

9、原始sql文本获取模块,用于当接收到待处理查询请求时,获取待处理查询请求的原始sql文本,并根据原始sql文本,确定待处理查询请求对应的目标sql模式;

10、查询请求相关数据获取模块,用于在检测到本地缓存中不存在目标sql模式对应的计划推荐报告的情况下,获取待处理查询请求对应的原始执行计划,并获取历史负载指标序列和小时级数据分布快照;

11、目标计划推荐报告生成模块,用于根据原始sql文本、原始执行计划、历史负载指标序列和小时级数据分布快照,生成待处理查询请求对应的目标计划推荐报告,并在推荐页面中对目标计划推荐报告进行可视化展示;目标计划推荐报告包括目标计划推荐列表;

12、目标执行计划确定模块,用于响应于当前数据库管理员对目标计划推荐列表中推荐执行计划的选择操作,确定待处理查询请求对应的目标执行计划;

13、目标执行结果确定模块,用于向待处理查询请求的关联数据节点发送目标执行计划,并接收关联数据节点反馈的目标执行结果。

14、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:

15、至少一个处理器;

16、以及与至少一个处理器通信连接的存储器;其中,

17、存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例的查询请求处理方法。

18、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本发明任一实施例的查询请求处理方法。

19、根据本发明的另一方面,提供了计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本发明任一实施例的查询请求处理方法。

20、本发明实施例的技术方案,由分布式数据库中的计算节点执行,具体是:当接收到待处理查询请求时,获取待处理查询请求的原始sql文本,并根据原始sql文本,确定待处理查询请求对应的目标sql模式;在检测到本地缓存中不存在目标sql模式对应的计划推荐报告的情况下,获取待处理查询请求对应的原始执行计划,并获取历史负载指标序列和小时级数据分布快照;根据原始sql文本、原始执行计划、历史负载指标序列和小时级数据分布快照,生成待处理查询请求对应的目标计划推荐报告,并在推荐页面中对目标计划推荐报告进行可视化展示;目标计划推荐报告包括目标计划推荐列表;响应于当前数据库管理员对目标计划推荐列表中推荐执行计划的选择操作,确定待处理查询请求对应的目标执行计划;向待处理查询请求的关联数据节点发送目标执行计划,并接收关联数据节点反馈的目标执行结果。上述技术方案,在计算节点的本地缓存中,不存在目标sql模式对应的计划推荐报告的情况下,通过对待处理查询请求的原始sql文本及其对应的原始执行计划、历史负载指标序列和小时级数据分布快照等多模态数据进行综合分析,得到目标计划推荐报告,该过程考虑了金融业务数据量实时变化和业务负载峰谷波动对查询执行计划推荐结果的影响,摆脱了对静态统计信息的依赖,从而有效规避了因统计信息失效引发的查询性能抖动问题,大幅提升了目标计划推荐报告的准确性与适配性;在得到目标计划推荐报告之后,在推荐页面中对目标计划推荐报告进行可视化展示,并响应于当前数据库管理员对目标计划推荐列表中推荐执行计划的选择操作,确定待处理查询请求对应的目标执行计划,规避了全自动查询优化的线上业务运行风险,保留了人工审核确认环节,实现了智能推荐、人工决策的半自动化查询处理机制,在满足了金融行业数据库变更可控、风险可溯的审慎运维要求的同时,提高了查询的整体执行效率。

21、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

1.一种查询请求处理方法,其特征在于,由分布式数据库中的计算节点执行,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述小时级数据分布快照包括表数据分布直方图;

3.根据权利要求2所述的方法,其特征在于,所述多模态特征提取引擎包括sql语义编码器、计划结构编码器、时序负载编码器、数据分布编码器和特征融合模块;

4.根据权利要求2所述的方法,其特征在于,所述目标计划推荐模型包括transformer编码器、计划推荐解码器、代价预测解码器、sql重写解码器和报告生成模块;

5.根据权利要求4所述的方法,其特征在于,所述报告生成模块包括预估提升幅度确定单元、计划排序单元和报告生成单元;

6.根据权利要求5所述的方法,其特征在于,在得到目标计划推荐顺序之后,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,获取所述待处理查询请求对应的原始执行计划,包括:

8.一种查询请求处理装置,其特征在于,部署在分布式数据库中的计算节点上,所述装置包括:

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的查询请求处理方法。