数据查询方法、装置、设备及存储介质制造方法及图纸

技术编号:33783293 阅读:61 留言:0更新日期:2022-06-12 14:38
本发明专利技术涉及大数据领域,揭露了一种数据查询方法,包括:获取至少两个数据源的信息,根据数据源的信息构建元数据库;在接收到数据查询语句时,对数据查询语句进行解析,得到语法树;对所述语法树进行语法校验,并转换为数据查询语句对应的逻辑关系语法树;获取预定义的查询优化规则,基于预定义的查询优化规则对逻辑关系语法树进行优化,得到最优逻辑关系语法树;将所述最优逻辑关系语法树转换为可执行的物理执行语句,利用所述物理执行语句在元数据库中进行数据查询,得到数据查询结果。本发明专利技术还提出一种数据查询装置、电子设备以及存储介质。本发明专利技术可以提高跨数据源数据查询的效率。本发明专利技术可以提高跨数据源数据查询的效率。本发明专利技术可以提高跨数据源数据查询的效率。

【技术实现步骤摘要】
数据查询方法、装置、设备及存储介质


[0001]本专利技术涉及大数据领域,尤其涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]随着业务复杂程度的提高以及数据规模的增长,越来越多的企业需要对企业本身的在线业务数据库进行垂直或水平拆分,又或者是选择不同的数据库也满足不同的业务需求,但需要跨多个数据库实例才能完成不同数据库的查询,导致业务数据不能进行汇总关联而形成数据孤岛。
[0003]现有的数据关联方法主要是用户提前将所需的数据汇集到同一处,然后再进行离线数据查询分析或采用spark或者presto等多个计算引擎来实现多数据源混合查询,需要进行数据迁移以及计算引擎的多次计算分析后再进行数据的汇总关联,导致跨数据源数据查询时效率低下。

技术实现思路

[0004]本专利技术提供一种数据查询方法、装置及计算机可读存储介质,其主要目的在于解决跨数据源数据查询时效率较低的问题。
[0005]为实现上述目的,本专利技术提供的一种数据查询方法,包括:
[0006]获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
[0007]在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
[0008]利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
[0009]获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
[0010]根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
[0011]利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
[0012]可选地,所述获取至少两个数据源的信息,根据所述数据源的信息构建元数据库,包括:
[0013]获取至少两个数据源接入业务数据的接入方式,并对所述接入方式进行封装,得到每个所述数据源的数据接入接口;
[0014]通过每个所述数据源的数据接入接口获取每个所述数据源的信息,并将每个所述数据源的数据接入接口进行封装,得到元数据库的数据接入接口;
[0015]根据所述元数据库的数据接入接口及每个所述数据源的信息构建元数据库。
[0016]可选地,所述对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树,包括:
[0017]提取所述数据查询语句中的查询指令及函数,根据所述查询指令及函数将所述数据查询语句划分为语法节点,得到所述数据查询语句的节点串;
[0018]利用预设的解析器对所述数据查询语句的节点串进行语法解析,得到所述数据查询语句的语法树。
[0019]可选地,所述利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,包括:
[0020]获取所述语法树中的每个语法节点中的查询指令或函数;
[0021]将所述查询指令或所述函数与所述预设的语法规则相匹配;
[0022]将所述匹配成功的查询指令或所述函数保留以及将所述匹配不成功的查询指令或函数删除,得到规范语法树。
[0023]可选地,所述获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树,包括:
[0024]提取所述逻辑关系语法树中的每个逻辑执行语法节点,并逐个选取一个所述逻辑执行语法节点作为目标节点;
[0025]校验所述目标节点是否符合所述预定义的查询优化规则;
[0026]在所述目标节点不符合所述预定义的查询优化规则时,删除所述目标节点;
[0027]在所述目标节点符合所述预定义的查询优化规则时,利用预设的规则优化器对所述目标节点进行优化,得到最优逻辑关系语法树。
[0028]可选地,所述根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句,包括:
[0029]识别所述最优逻辑关系语法树的逻辑框架代码,其中,所述逻辑框架代码为所述最优逻辑关系语法树中的所有节点的代码;
[0030]利用SparkSQL对所述逻辑框架代码进行基于规则的优化,得到优化后的逻辑框架代码;
[0031]利用Spark转换器将所述优化后的逻辑框架代码转换为所述数据查询语句对应可执行的物理执行语句。
[0032]可选地,所述利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果,包括:
[0033]根据所述元数据库中至少两个数据源的数据接入接口信息将所述物理执行语句进行拆分,得到所述数据源对应的数据查询算子及其它数据算子;
[0034]利用所述数据查询算子在对应的数据源进行数据查询,得到所述数据源数据查询结果,及利用所述其它数据算子在所述元数据库进行数据查询,得到其它数据查询结果;
[0035]汇总所述数据源数据查询结果及所述其它数据查询结果,得到所述元数据库的数据查询结果。
[0036]为了解决上述问题,本专利技术还提供一种数据查询装置,所述装置包括:
[0037]构建元数据库模块,用于获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;
[0038]语法解析模块,用于在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;
[0039]语法校验模块,用于利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;
[0040]语法优化模块,用于获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;
[0041]执行语句转换模块,用于根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;
[0042]数据查询模块,用于利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。
[0043]为了解决上述问题,本专利技术还提供一种电子设备,所述电子设备包括:
[0044]至少一个处理器;以及,
[0045]与所述至少一个处理器通信连接的存储器;其中,
[0046]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的数据查询方法。
[0047]为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据查询方法。
[0048]本专利技术实施例通过构建元数据库,将数据源信息整合,以实现跨数据源数据查询效率的提高;接收到数据查询语句时,将数据查询语句解析得到语法树并利用预设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:获取至少两个数据源的信息,根据所述数据源的信息构建元数据库;在接收到数据查询语句时,对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树;利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,并将所述规范语法树转换为所述数据查询语句的逻辑关系语法树;获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树;根据所述最优逻辑关系语法树的逻辑框架将所述逻辑关系语法树转换为所述数据查询语句对应可执行的物理执行语句;利用所述可执行的物理执行语句在所述元数据库中进行数据查询,得到数据查询结果。2.如权利要求1所述的数据查询方法,其特征在于,所述获取至少两个数据源的信息,根据所述数据源的信息构建元数据库,包括:获取至少两个数据源接入业务数据的接入方式,并对所述接入方式进行封装,得到每个所述数据源的数据接入接口;通过每个所述数据源的数据接入接口获取每个所述数据源的信息,并将每个所述数据源的数据接入接口进行封装,得到元数据库的数据接入接口;根据所述元数据库的数据接入接口及每个所述数据源的信息构建元数据库。3.如权利要求1所述的数据查询方法,其特征在于,所述对所述数据查询语句进行语法解析,得到所述数据查询语句的语法树,包括:提取所述数据查询语句中的查询指令及函数,根据所述查询指令及函数将所述数据查询语句划分为语法节点,得到所述查询语句的节点串;利用预设的解析器对所述数据查询语句的节点串进行语法解析,得到所述数据查询语句的语法树。4.如权利要求1所述的数据查询方法,其特征在于,所述利用预设的语法规则对所述语法树进行语法校验,得到规范语法树,包括:获取所述语法树中的每个语法节点中的查询指令或函数;将所述查询指令或所述函数与所述预设的语法规则相匹配;将所述匹配成功的查询指令或所述函数保留以及将所述匹配不成功的查询指令或函数删除,得到规范语法树。5.如权利要求1所述的数据查询方法,其特征在于,所述获取预定义的查询优化规则,基于所述查询优化规则利对所述逻辑关系语法树进行优化,得到最优逻辑关系语法树,包括:提取所述逻辑关系语法树中的每个逻辑执行语法节点,并逐个选取一个所述逻辑执行语法节点作为目标节点;校验所述目标节点是否符合所述预定义的查询优化规则;在所述目标节点不符合所述预定义的查询优化规则时,删除所述目标节点;在所述目标节点符合所述预定义的查询优化规则时,利用预设的规则优化器对所述目
标节点...

【专利技术属性】
技术研发人员:杜均凌海挺张茜
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1