数据查询方法、装置、存储介质及电子设备与流程

文档序号:37270821发布日期:2024-03-12 20:59阅读:10来源:国知局
数据查询方法、装置、存储介质及电子设备与流程

本发明涉及数据库运维,具体而言,涉及一种数据查询方法、装置、存储介质及电子设备。


背景技术:

1、随着业务量的增长,数据库表的数据量越来越大,前端人员需要对数据做数据统计分析,数据的统计分析需要用到数据库的聚合查询。传统的数据库的聚合查询性能存在性能隐患,大数据的统计分析存在数据延时无法实时统计,es聚合查询性能强大且数据相对实时,es聚合查询是elasticsearch(es数据库)中的一种功能,用于对文档进行聚合分析和统计,可以根据指定的条件和字段进行分组、计数、求和、平均值等操作,从而能够快速生成各种数据分析报表和图表。但是由于数据库聚合查询的语法与es语法差异很大,相关技术中没有提供语句转换方式实现聚合查询功能,导致每受理一个需求需要特定开发,整个过程开发成本大。

2、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种数据查询方法、装置、存储介质及电子设备,以至少解决相关技术中未提供语法转换的聚合查询方法的技术问题。

2、根据本发明实施例的一个方面,提供了一种数据查询方法,包括:获取查询请求,其中,所述查询请求为采用第一语法得到的;对于所述查询请求进行解析,确定所述查询请求中包括的索引名称,查询条件,以及聚合对象;采用所述索引名称,在采用第二语法的查询数据库中获取与所述查询条件指示查询对象对应的数据桶集合;在所述数据桶集合中包括多个分桶的情况下,基于所述聚合对象指示的分桶聚合查询信息,确定目标分桶,其中,所述多个分桶分别用于存储不同处理周期的周期数据;在所述目标分桶中包括多个子桶的情况下,基于所述聚合对象指示的子桶聚合查询信息,确定目标子桶,其中,所述多个子桶分别用于存储不同业务类型的业务数据;生成所述目标分桶和所述目标子桶的上下级信息;基于所述分桶聚合查询信息,所述子桶聚合查询信息,以及所述上下级信息,生成数据查询语句,发送所述数据查询语句至所述查询数据库,其中,所述数据查询语句为采用所述第二语法得到的;接收由所述查询数据库返回的数据查询结果。

3、可选地,所述分桶聚合查询信息包括分桶名称,分桶类型,以及分桶统计字段,所述基于所述聚合对象指示的分桶聚合查询信息,确定目标分桶,包括:在所述多个分桶中确定与所述分桶名称匹配,并且与所述分桶类型匹配的所述目标分桶;所述基于所述分桶聚合查询信息,所述子桶聚合查询信息,以及所述上下级信息,生成所述数据查询语句,包括:所述基于所述分桶统计字段,所述子桶聚合查询信息,以及所述上下级信息,生成所述数据查询语句。

4、可选地,所述子桶聚合查询信息包括子桶名称,子桶类型,以及子桶统计字段,所述基于所述聚合对象指示的子桶聚合查询信息,确定目标子桶,包括:在所述多个子桶中确定与所述子桶名称匹配,并且与所述子桶类型匹配的所述目标子桶;所述基于所述分桶聚合查询信息,所述子桶聚合查询信息,以及所述上下级信息,生成所述数据查询语句,包括:所述基于所述子桶统计字段,所述分桶聚合查询信息,以及所述上下级信息,生成所述数据查询语句。

5、可选地,所述方法还包括:在所述数据桶集合为空集的情况下,向发出所述查询请求的业务系统返回无查询结果的提示信息;或是,在所述目标分桶不存在子桶的情况下,生成用于查询所述目标分桶中存储的周期数据的第一查询语句;将所述第一查询语句,作为所述数据查询语句。

6、可选地,所述查询数据库中包括数据桶集合中指示的数据桶,在所述发送所述数据查询语句至采用第二语法的查询数据库之后,由所述查询数据库执行以下处理:接收所述数据查询语句;根据所述数据查询语句指示的上下级信息,确定待执行查询处理的所述目标分桶和所述目标子桶;根据所述数据查询语句指示的子桶聚合查询信息,在所述目标子桶中进行数据查询,得到子聚合查询结果;根据所述数据查询语句指示的分桶聚合查询信息,以及所述子聚合查询结果,在所述目标分桶中进行数据查询,得到所述数据查询结果。

7、可选地,在所述接收由所述查询数据库返回的数据查询结果之后,所述方法还包括:对所述数据查询结果进行代码转换,得到采用所述第一语法的转换查询结果;将所述转换查询结果发送至采用所述第一语法的业务系统,其中,所述业务系统发出了所述查询请求。

8、可选地,所述分桶聚合查询信息和所述子桶聚合查询信息分别指示采用对应的聚合函数执行数据查询,所述聚合函数包括以下至少之一:求和函数,平均值函数,以及最值函数。

9、根据本发明实施例的另一方面,提供了一种数据查询装置,包括:请求获取模块,用于获取查询请求,其中,所述查询请求为采用第一语法得到的;请求解析模块,用于对于所述查询请求进行解析,确定所述查询请求中包括的索引名称,查询条件,以及聚合对象;数据桶集合获取模块,用于采用所述索引名称,在采用第二语法的查询数据库中获取与所述查询条件指示查询对象对应的数据桶集合;分桶查询模块,用于在所述数据桶集合中包括多个分桶的情况下,基于所述聚合对象指示的分桶聚合查询信息,确定目标分桶,其中,所述多个分桶分别用于存储不同处理周期的周期数据;子桶查询模块,用于在所述目标分桶中包括多个子桶的情况下,基于所述聚合对象指示的子桶聚合查询信息,确定目标子桶,其中,所述多个子桶分别用于存储不同业务类型的业务数据;上下级关系生成模块,用于生成所述目标分桶和所述目标子桶的上下级信息;语句转换查询模块,用于基于所述分桶聚合查询信息,所述子桶聚合查询信息,以及所述上下级信息,生成数据查询语句,发送所述数据查询语句至所述查询数据库,其中,所述数据查询语句为采用所述第二语法得到的;结果接收模块,用于接收由所述查询数据库返回的数据查询结果。

10、根据本发明实施例的另一方面,提供了一种非易失性存储介质,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行任意一项所述的数据查询方法。

11、根据本发明实施例的另一方面,提供了一种电子设备,包括:一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现任意一项所述的数据查询方法。

12、在本发明实施例中,通过获取查询请求,其中,所述查询请求为采用第一语法得到的;对于所述查询请求进行解析,确定所述查询请求中包括的索引名称,查询条件,以及聚合对象;采用所述索引名称,在采用第二语法的查询数据库中获取与所述查询条件指示查询对象对应的数据桶集合;在所述数据桶集合中包括多个分桶的情况下,基于所述聚合对象指示的分桶聚合查询信息,确定目标分桶,其中,所述多个分桶分别用于存储不同处理周期的周期数据;在所述目标分桶中包括多个子桶的情况下,基于所述聚合对象指示的子桶聚合查询信息,确定目标子桶,其中,所述多个子桶分别用于存储不同业务类型的业务数据;生成所述目标分桶和所述目标子桶的上下级信息;基于所述分桶聚合查询信息,所述子桶聚合查询信息,以及所述上下级信息,生成数据查询语句,发送所述数据查询语句至所述查询数据库,其中,所述数据查询语句为采用所述第二语法得到的;接收由所述查询数据库返回的数据查询结果。达到了实现语法转换的聚合查询的目的,实现了从代码层将聚合查询能力统一封装,减少开发成本的技术效果,进而解决了相关技术中未提供语法转换的聚合查询方法的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1