跨域的数据查询方法及装置制造方法及图纸

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

Cross domain data query method and device

【技术实现步骤摘要】
跨域的数据查询方法及装置
本文涉及数据处理领域,尤其涉及一种跨域的数据查询方法及装置。
技术介绍
相关技术中,跨域数据交换是指将分散建设的若干应用信息系统进行整合,通过计算机网络构建的信息交换平台,将若干个应用子系统进行信息/数据的传输及共享,提高信息资源的利用率,成为进行信息化建设的基本目标,以保证分布异构系统之间互联互通,建立中心数据库,完成数据的抽取、集中、加载、展现,构造统一的数据处理和交换。在相关技术中,采用基于API的跨域数据交换技术,在基于API的跨域交换技术中,不同系统将自身的数据封装成API接口,然后对外暴露API服务,使用者调用API服务即可访问到该系统的数据。基于JSON的跨域数据交换技术是基于API的跨域数据交换的一种常用实现方式。在基于JSON的跨域数据交换技术中,在进行跨域数据交换之前,如图1所示,使用方(系统A)需要封装好请求数据,然后对数据进行JSON序列化,配置好请求地址以及其他的一些参数,将序列化后的JSON数据发送到目标服务(系统B),目标服务给出响应并返回数据,使用方反序列化返回数据,获取所需数据。在上述相关技术中,使用API等技术通过网络调用以实现数据的交换。系统将数据存储在数据库或数据仓库中,然后使用编程语言编写程序,程序功能主要为接受一些参数后生成查询结构化查询语言(SQL)语句,发送查询SQL语句给数据库,数据库返回数据。因此,相关技术中的数据交换不是直接去访问数据库获取数据,而是封装程序再通过程序访问数据库,数据使用者和数据库之间增加了一层程序,一方面需要额外的开发工作和对接工作,另一方面增加了系统的复杂度。
技术实现思路
为克服相关技术中存在的问题,本文提供一种跨域的数据查询方案。根据本文的第一方面,提供一种跨域的数据查询方法,包括:对输入的结构化查询语言SQL语句进行分析,生成查询执行计划,其中,所述查询执行计划中记录了执行所述SQL语句所需要的操作;根据所述查询执行计划,生成多个子查询任务,其中,每个所述子查询任务中记录了该子查询任务所需要处理的数据源信息以及该子查询任务处理的字段,其中,所述数据源信息包括数据源的数据目录,所述数据目录记录了描述本地存储的数据库和数据表的各个库表元数据的链接地址,各个所述元数据与其描述的数据库和数据表对应;根据各个所述子查询任务记录的所述数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;接收各个所述数据系统在执行该数据系统接收到的所述子查询任务之后获得到的数据结果;将接收到的所有所述数据结果进行合并,得到查询结果。可选地,对输入的结构化查询语言SQL语句进行分析,生成查询执行计划,包括:对输入的所述SQL语句进行词法分析和语法解析,获取与所述SQL语句对应的关键信息,其中,所述关键信息包括:所述SQL语句所查询的字段列表、查询条件、所述SQL语句所查询的数据源的数据目录;根据对所述SQL语句进行词法分析和语法解析的结果,生成抽象语法树,其中,所述抽象语法树中包括多个标记对象TOKEN;遍历所述抽象语法树,记录所述抽象语法树上的不同TOKEN节点的属性,以将所述TOKEN节点转换成查询块;根据所述查询块,生成与所述查询块对应的所述查询执行计划。可选地,根据所述查询块,生成与所述查询块对应的所述查询执行计划,包括:将所述查询块转换成逻辑查询计划,以确定执行所述SQL语句的逻辑操作;对所述逻辑查询计划进行分析,将所述逻辑查询计划转成物理查询计划,以得到获取所述查询结果的路径;对所述物理查询计划进行优化,以选择出获取所述查询结果的最优路径,得到所述查询执行计划。可选地,在将所述查询块转换成逻辑查询计划之后,对所述逻辑查询计划进行分析之前,所述方法还包括:根据所述SQL语句所查询的数据源之间的关联关系,重写所述逻辑查询计划。可选地,在将接收到的所有所述数据结果进行合并,得到查询结果之后,所述方法还包括:将所述查询结果返回给查询者。根据本文的另一个方面,提供了一种跨域的数据查询装置,包括:查询计划分析模块,用于对输入的SQL语句进行分析,生成查询执行计划,其中,所述查询执行计划中记录了执行所述SQL语句所需要的操作;查询计划划分模块,用于根据所述查询执行计划,生成多个子查询任务,其中,每个所述子查询任务中记录了该子查询任务所需要处理的数据源信息以及该子查询任务处理的字段,其中,所述数据源信息包括数据源的数据目录,所述数据目录记录了用于描述本地存储的数据库和数据表的各个库表元数据的链接地址,各个所述库表元数据与其描述的数据库和数据表对应;查询任务分发模块,用于根据各个所述子查询任务记录的所述数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;查询结果接收模块,用于接收各个所述数据系统在执行该数据系统接收到的所述子查询任务之后获得到的数据结果;查询结果合并模块,用于将接收到的所有所述数据结果进行合并,得到查询结果。可选地,所述查询计划分析模块包括:语法解析单元,用于对输入的所述SQL语句进行词法分析和语法解析,获取与所述SQL语句对应的关键信息,并根据对所述SQL语句进行词法分析和语法解析的结果,生成抽象语法树,其中,所述关键信息包括:所述SQL语句所查询的字段列表、查询条件、所述SQL语句所查询的数据源的数据目录,所述抽象语法树中包括多个标记对象TOKEN;语义分析单元,用于遍历所述抽象语法树,记录所述抽象语法树上的不同TOKEN节点的属性,以将所述TOKEN节点转换成查询块;查询计划生成单元,用于根据所述查询块,生成与所述查询块对应的所述查询执行计划。可选地,所述查询计划生成单元包括:逻辑计划生成子单元,用于将所述查询块转换成逻辑查询计划,以确定执行所述SQL语句的逻辑操作;物理计划生成子单元,用于对所述逻辑查询计划进行分析,将所述逻辑查询计划转成物理查询计划,以得到获取所述查询结果的路径;计划优化子单元,用于对所述物理查询计划进行优化,以选择出获取所述查询结果的最优路径,得到所述查询执行计划。可选地,所述物理计划生成子单元还用于在将所述查询块转换成逻辑查询计划之后,根据所述SQL语句所查询的数据源之间的关联关系,重写所述逻辑查询计划。可选地,还包括:查询结果返回模块,用于在所述查询结果合并模块得到查询结果之后,将所述查询结果返回给查询者。本文的另一个方面,提供了一种计算机可读存储介质,该计算机程序被执行时实现上述跨域的数据查询方法的步骤。本文的另一个方面,提供了一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,处理器执行计算机程序时实现上述跨域的数据查询方法的步骤。本文通过使用SQL驱动跨域的数据查询方案,可以避免格外的程序开发工作和对接工作,降低系统的复杂度。并且由于数据库原生支持SQL,因此,使用SQL驱动数据查询,比较贴近数据库,且可以使得数据交换过程的方式达到统一。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不本文档来自技高网
...

【技术保护点】
1.一种跨域的数据查询方法,其特征在于,包括:/n对输入的结构化查询语言SQL语句进行分析,生成查询执行计划,其中,所述查询执行计划中记录了执行所述SQL语句所需要的操作;/n根据所述查询执行计划,生成多个子查询任务,其中,每个所述子查询任务中记录了该子查询任务所需要处理的数据源信息以及该子查询任务处理的字段,其中,所述数据源信息包括数据源的数据目录,所述数据目录记录了描述本地存储的数据库和数据表的各个库表元数据的链接地址,各个所述元数据与其描述的数据库和数据表对应;/n根据各个所述子查询任务记录的所述数据目录,将各个子查询任务分别发送给与该子查询任务记录的数据目录对应的数据系统;/n接收各个所述数据系统在执行该数据系统接收到的所述子查询任务之后获得到的数据结果;/n将接收到的所有所述数据结果进行合并,得到查询结果。/n

【技术特征摘要】
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语句所需要的操作;
查询计划划分模块...

【专利技术属性】
技术研发人员:王贺冬周雷皓龚廖安闫发腾杨乾磊龚本威林智峰毕伟
申请(专利权)人:中思博安科技北京有限公司
类型:发明
国别省市:北京;11

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

1