跨域的数据查询方法及装置与流程

文档序号:20838869发布日期:2020-05-22 17:14阅读:来源:国知局

技术特征:

1.一种跨域的数据查询方法,其特征在于,包括:

对输入的结构化查询语言sql语句进行分析,生成查询执行计划,其中,所述查询执行计划中记录了执行所述sql语句所需要的操作;

根据所述查询执行计划,生成多个子查询任务,其中,每个所述子查询任务中记录了该子查询任务所需要处理的数据源信息以及该子查询任务处理的字段,其中,所述数据源信息包括数据源的数据目录,所述数据目录记录了描述本地存储的数据库和数据表的各个库表元数据的链接地址,各个所述元数据与其描述的数据库和数据表对应;

根据各个所述子查询任务记录的所述数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;

接收各个所述数据系统在执行该数据系统接收到的所述子查询任务之后获得到的数据结果;

将接收到的所有所述数据结果进行合并,得到查询结果。

2.根据权利要求1所述的方法,其特征在于,对输入的结构化查询语言sql语句进行分析,生成查询执行计划,包括:

对输入的所述sql语句进行词法分析和语法解析,获取与所述sql语句对应的关键信息,其中,所述关键信息包括:所述sql语句所查询的字段列表、查询条件、所述sql语句所查询的数据源的数据目录;

根据对所述sql语句进行词法分析和语法解析的结果,生成抽象语法树,其中,所述抽象语法树中包括多个标记对象token;

遍历所述抽象语法树,记录所述抽象语法树上的不同token节点的属性,以将所述token节点转换成查询块;

根据所述查询块,生成与所述查询块对应的所述查询执行计划。

3.根据权利要求2所述的方法,其特征在于,根据所述查询块,生成与所述查询块对应的所述查询执行计划,包括:

将所述查询块转换成逻辑查询计划,以确定执行所述sql语句的逻辑操作;

对所述逻辑查询计划进行分析,将所述逻辑查询计划转成物理查询计划,以得到获取所述查询结果的路径;

对所述物理查询计划进行优化,以选择出获取所述查询结果的最优路径,得到所述查询执行计划。

4.根据权利要求3所述的方法,其特征在于,在将所述查询块转换成逻辑查询计划之后,对所述逻辑查询计划进行分析之前,所述方法还包括:

根据所述sql语句所查询的数据源之间的关联关系,重写所述逻辑查询计划。

5.根据权利要求1至4任一项所述的方法,其特征在于,在将接收到的所有所述数据结果进行合并,得到查询结果之后,所述方法还包括:

将所述查询结果返回给查询者。

6.一种跨域的数据查询装置,其特征在于,包括:

查询计划分析模块,用于对输入的结构化查询语言sql语句进行分析,生成查询执行计划,其中,所述查询执行计划中记录了执行所述sql语句所需要的操作;

查询计划划分模块,用于根据所述查询执行计划,生成多个子查询任务,其中,每个所述子查询任务中记录了该子查询任务所需要处理的数据源信息以及该子查询任务处理的字段,其中,所述数据源信息包括数据源的数据目录,所述数据目录记录了用于描述本地存储的数据库和数据表的各个库表元数据的链接地址,各个所述库表元数据与其描述的数据库和数据表对应;

查询任务分发模块,用于根据各个所述子查询任务记录的所述数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;

查询结果接收模块,用于接收各个所述数据系统在执行该数据系统接收到的所述子查询任务之后获得到的数据结果;

查询结果合并模块,用于将接收到的所有所述数据结果进行合并,得到查询结果。

7.根据权利要求6所述的装置,其特征在于,所述查询计划分析模块包括:

语法解析单元,用于对输入的所述sql语句进行词法分析和语法解析,获取与所述sql语句对应的关键信息,并根据对所述sql语句进行词法分析和语法解析的结果,生成抽象语法树,其中,所述关键信息包括:所述sql语句所查询的字段列表、查询条件、所述sql语句所查询的数据源的数据目录,所述抽象语法树中包括多个标记对象token;

语义分析单元,用于遍历所述抽象语法树,记录所述抽象语法树上的不同token节点的属性,以将所述token节点转换成查询块;

查询计划生成单元,用于根据所述查询块,生成与所述查询块对应的所述查询执行计划。

8.根据权利要求7所述的装置,其特征在于,所述查询计划生成单元包括:

逻辑计划生成子单元,用于将所述查询块转换成逻辑查询计划,以确定执行所述sql语句的逻辑操作;

物理计划生成子单元,用于对所述逻辑查询计划进行分析,将所述逻辑查询计划转成物理查询计划,以得到获取所述查询结果的路径;

计划优化子单元,用于对所述物理查询计划进行优化,以选择出获取所述查询结果的最优路径,得到所述查询执行计划。

9.根据权利要求8所述的装置,其特征在于,所述物理计划生成子单元还用于在将所述查询块转换成逻辑查询计划之后,根据所述sql语句所查询的数据源之间的关联关系,重写所述逻辑查询计划。

10.根据权利要求5至9任一项所述的装置,其特征在于,还包括:

查询结果返回模块,用于在所述查询结果合并模块得到查询结果之后,将所述查询结果返回给查询者。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1至5中任意一项所述方法的步骤。

12.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述方法的步骤。


技术总结
本文是关于一种跨域的数据查询方法及装置。其中,该方法包括:对输入的结构化查询语言SQL语句进行分析,生成查询执行计划,其中,查询执行计划中记录了执行SQL语句所需要的操作;根据查询执行计划,生成多个子查询任务;根据各个子查询任务记录的数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;接收各个数据系统在执行该数据系统接收到的子查询任务之后获得到的数据结果;将接收到的所有数据结果进行合并,得到查询结果。

技术研发人员:王贺冬;周雷皓;龚廖安;闫发腾;杨乾磊;龚本威;林智峰;毕伟
受保护的技术使用者:中思博安科技(北京)有限公司
技术研发日:2019.12.18
技术公布日:2020.05.22
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1