一种混合异构数据源统一查询系统及分布式查询方法与流程

文档序号:13236694阅读:237来源:国知局
一种混合异构数据源统一查询系统及分布式查询方法与流程
本发明涉及一种混合异构数据源统一查询系统及分布式查询方法,属于信息采集技术及数据库
技术领域

背景技术
:随着it技术的飞速发展,社会的信息化进程也在逐渐加快。社会信息化一方面给人们带来了极大的方便和快捷,另一方面也带来了一些问题和挑战。其中“信息孤岛”和数据访问就是较为突出的两个问题。解决“信息孤岛”问题的难点在于如何使用户以透明的方式低代价、高效率地操作异构数据;解决数据访问问题的难点在于如何提高数据资源的访问效率及安全性能。针对这两个问题,已有的解决方法都存在着一定的不足之处,例如数据没有统一的标准进行表示,硬编码过多,模块可重用度不高等,这些不足都直接制约着企业级应用的开展。技术实现要素:本发明所要解决的技术问题是提供一种能够针对跨域、跨源、异构数据,实现统一查询的混合异构数据源统一查询系统。本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种混合异构数据源统一查询系统,包括请求接收模块、数据库映射模块和数据整合模块;数据库映射模块分别与请求接收模块、数据整合模块进行信息交互;其中,数据库映射模块分别与预设各个关系数据库相连接通信,数据库映射模块针对所有关系数据库中的物理表,按预设逻辑关系,构建所对应的各个逻辑虚拟表,组建逻辑虚拟数据库;并且数据库映射模块针对各个逻辑虚拟表分别与其所包含关系数据库中物理表数据的映射关系,构建元数据信息;请求接收模块用于接收指定类型关系数据库的查询语句,并发送给数据库映射模块;以及请求接收模块用于接收来自数据库映射模块的查询结果;数据整合模块用于根据数据库映射模块所组建逻辑虚拟数据库中的各个逻辑虚拟表,以及元数据信息,针对数据库映射模块所接收到的查询语句进行解析,获得分别对应于所指定各个关系数据库中物理表的各条查询语句,并针对相应各关系数据库中物理表进行查询,获得查询结果,然后交由数据库映射模块发送给请求接收模块。作为本发明的一种优选技术方案:所述分别与数据库映射模块相连接通信的预设各个关系数据库,包括oracl数据库、db2数据库、mysql数据库、sqlserver数据库中的一种关系数据库,或多种关系数据库。作为本发明的一种优选技术方案:所述请求接收模块所接收指定类型关系数据库的查询语句为sql查询语句。本发明所述一种混合异构数据源统一查询系统采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计的一种混合异构数据源统一查询系统,支持跨域、跨源、异构的数据系统,实现统一数据访问查询,实现高性能地访问各种数据源的分布式数据访问和处理平台,为处理多种平台上的关系和非关系型数据提供了统一的访问方式和数据处理服务;并且所设计方案不仅实现了后台各种数据库和海量数据存储的统一访问,隔离了应用和数据库/存储的直接连接,在一定程度上提高了底层数据的安全性;而且支持跨库查询、聚合查询、跨库事务等应用场景,通过将多个物理数据库/存储的表按照业务的需要抽象为一个或多个逻辑数据库,为应用开发提供了统一的数据服务;本发明还提供了大数据分析服务的抽象,极大地减少了企业进行数据转移、复制和转换的工作,解决了企业进行应用开发时大量数据复制造成的资源浪费、效率低下、数据安全等问题。与上述相对应,本发明还要解决的技术问题是提供一种能够针对跨域、跨源、异构数据,实现统一查询的基于混合异构数据源统一查询系统的分布式查询方法。本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于混合异构数据源统一查询系统的分布式查询方法,所述请求接收模块接收指定类型关系数据库的查询语句,并发送给所述数据库映射模块;由所述数据整合模块采用分布式架构,按如下步骤,根据数据库映射模块所接收到的查询语句进行查询操作,获得查询结果,然后交由数据库映射模块发送给请求接收模块;其中,数据整合模块所采用的分布式架构包括一个主节点和若干从节点;步骤a.数据整合模块针对数据库映射模块所接收到的查询语句进行分解,获得各个操作指令;步骤b.数据整合模块针对所获各个操作指令,将直接对应于关系数据库物理表的操作指令划分至从节点,然后将其余操作指令划分至主节点;步骤c.数据整合模块根据数据库映射模块所组建逻辑虚拟数据库中的各个逻辑虚拟表,以及元数据信息,针对数据库映射模块所接收到的查询语句,按各个节点分别所对应的操作指令,分别进行解析,获得各个从节点分别对应相应关系数据库中物理表的查询语句,以及主节点所对应的查询语句;步骤d.由各个从节点分别按其所对应的查询语句,针对相应关系数据库中的物理表进行查询,获得各个一级查询结果,组建一级查询结果集合;步骤e.由主节点按其所对应的查询语句,针对一级查询结果集合执行查询操作,获得查询结果,交由数据库映射模块发送给请求接收模块。作为本发明的一种优选技术方案,所述步骤d至步骤e包括如下步骤:步骤de1.由各个从节点分别按其所对应的查询语句,针对相应关系数据库中的物理表进行查询,获得分别对应相应各个关系数据库的一级查询结果,并初始化n为1,然后进入步骤de2;步骤de2.选取各个一级查询结果中的第n条数据,组建局部一级查询结果集合,并进入步骤de3;步骤de3.由主节点按其所对应的查询语句,针对局部一级查询结果集合执行查询操作,获得局部查询结果,并进入步骤de4;步骤de4.分别获得各个一级查询结果中的数据条数,并选择最大条数作为判断阈值,判断n是否等于该判断阈值,是则进入步骤de5;否则用n所对应值加1的结果,针对n进行更新,并返回步骤de2;步骤de5.针对所有局部查询结果,组建查询结果,交由数据库映射模块发送给请求接收模块。本发明所述一种基于混合异构数据源统一查询系统的分布式查询方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计的一种基于混合异构数据源统一查询系统的分布式查询方法,支持跨域、跨源、异构的数据系统,实现统一数据访问查询,实现高性能地访问各种数据源的分布式数据访问和处理平台,为处理多种平台上的关系和非关系型数据提供了统一的访问方式和数据处理服务;并且所设计方案不仅实现了后台各种数据库和海量数据存储的统一访问,隔离了应用和数据库/存储的直接连接,在一定程度上提高了底层数据的安全性;而且支持跨库查询、聚合查询、跨库事务等应用场景,通过将多个物理数据库/存储的表按照业务的需要抽象为一个或多个逻辑数据库,为应用开发提供了统一的数据服务;本发明还提供了大数据分析服务的抽象,极大地减少了企业进行数据转移、复制和转换的工作,解决了企业进行应用开发时大量数据复制造成的资源浪费、效率低下、数据安全等问题。附图说明图1是本发明所设计一种混合异构数据源统一查询系统的结构示意图;图2是本发明设计中数据库映射示意图;图3是应用本发明设计实施例中查询计划示意图。具体实施方式下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。本发明设计了一种混合异构数据源统一查询系统,如图1所示,包括请求接收模块、数据库映射模块和数据整合模块;如图2所示,数据库映射模块分别与请求接收模块、数据整合模块进行信息交互;其中,数据库映射模块分别与预设各个关系数据库相连接通信,数据库映射模块针对所有关系数据库中的物理表,按预设逻辑关系,构建所对应的各个逻辑虚拟表,组建逻辑虚拟数据库;这里分别与数据库映射模块相连接通信的预设各个关系数据库,包括oracl数据库、db2数据库、mysql数据库、sqlserver数据库中的一种关系数据库,或多种关系数据库;并且数据库映射模块针对各个逻辑虚拟表分别与其所包含关系数据库中物理表数据的映射关系,构建元数据信息。请求接收模块主要提供jdbc和sdk接口,用于接收指定类型关系数据库的查询语句,并发送给数据库映射模块;以及请求接收模块用于接收来自数据库映射模块的查询结果。这里在实际应用中,所述请求接收模块所接收指定类型关系数据库的查询语句为sql查询语句。数据整合模块用于根据数据库映射模块所组建逻辑虚拟数据库中的各个逻辑虚拟表,以及元数据信息,针对数据库映射模块所接收到的查询语句进行解析,获得分别对应于所指定各个关系数据库中物理表的各条查询语句,并针对相应各关系数据库中物理表进行查询,获得查询结果,然后交由数据库映射模块发送给请求接收模块。基于上述所设计混合异构数据源统一查询系统,本发明进一步设计了一种基于混合异构数据源统一查询系统的分布式查询方法,所述请求接收模块接收指定类型关系数据库的查询语句,并发送给所述数据库映射模块;由所述数据整合模块采用分布式架构,按如下步骤,根据数据库映射模块所接收到的查询语句进行查询操作,获得查询结果,然后交由数据库映射模块发送给请求接收模块;其中,数据整合模块所采用的分布式架构包括一个主节点和若干从节点;步骤a.数据整合模块针对数据库映射模块所接收到的查询语句进行分解,获得各个操作指令。例如当用户发起查询语句时,如selectyy_idfromyoyogroupbynamelimit1000,则分解所获得各个操作指令,如下表1所示。命令名描述sort对数据进行分类。limit数字限制查询结果集数量。groupby字段名数据按字段分组。union不同表数据查询联合。表1步骤b.数据整合模块针对所获各个操作指令,将直接对应于关系数据库物理表的操作指令划分至从节点,然后将其余操作指令划分至主节点。如图3所示,对于上述查询语句实施例所对应的各个操作指令,其中,查询计划中的sort、limit、groupby这类需要数据汇总的命令在主节点执行,而select、where这类精确的数据访问操作在从节点上执行。步骤c.数据整合模块根据数据库映射模块所组建逻辑虚拟数据库中的各个逻辑虚拟表,以及元数据信息,针对数据库映射模块所接收到的查询语句,按各个节点分别所对应的操作指令,分别进行解析,获得各个从节点分别对应相应关系数据库中物理表的查询语句,以及主节点所对应的查询语句。步骤d.由各个从节点分别按其所对应的查询语句,针对相应关系数据库中的物理表进行查询,获得各个一级查询结果,组建一级查询结果集合。步骤e.由主节点按其所对应的查询语句,针对一级查询结果集合执行查询操作,获得查询结果,交由数据库映射模块发送给请求接收模块。对于步骤d至步骤e,实际执行应用过程中,具体包括如下步骤:步骤de1.由各个从节点分别按其所对应的查询语句,针对相应关系数据库中的物理表进行查询,获得分别对应相应各个关系数据库的一级查询结果,并初始化n为1,然后进入步骤de2。步骤de2.选取各个一级查询结果中的第n条数据,组建局部一级查询结果集合,并进入步骤de3。步骤de3.由主节点按其所对应的查询语句,针对局部一级查询结果集合执行查询操作,获得局部查询结果,并进入步骤de4。步骤de4.分别获得各个一级查询结果中的数据条数,并选择最大条数作为判断阈值,判断n是否等于该判断阈值,是则进入步骤de5;否则用n所对应值加1的结果,针对n进行更新,并返回步骤de2。步骤de5.针对所有局部查询结果,组建查询结果,交由数据库映射模块发送给请求接收模块。本发明所设计混合异构数据源统一查询系统及分布式查询方法,支持跨域、跨源、异构的数据系统的统一数据访问查询,可帮助众多企业解决多的业务应用系统交互时对底层海量跨源异构数据的统一管控的问题,不仅填补了国内国际厂商在对异构数据统一访问方面的技术空白,而且极大地推动了我国网信事业核心技术的发展。本发明可高性能地访问各种数据源的分布式数据访问和处理平台,为处理多种平台上的关系和非关系型数据提供了统一的访问方式和数据处理服务。该技术不仅实现了后台各种数据库和海量数据存储的统一访问,隔离了应用和数据库/存储的直接连接,应用无需关心物理数据库和存储的信息,只需关心平台提供的数据服务和应用服务即可,在一定程度上提高了底层数据的安全性;而且支持跨库查询、聚合查询、跨库事务等应用场景,通过将多个物理数据库/存储的表按照业务的需要抽象为一个或多个逻辑数据库,使得管理人员或开发人员只需关心抽象的逻辑数据库即可,无需关心物理数据库/存储,为应用开发提供了统一的数据服务;本发明还提供了大数据分析服务的抽象,极大地减少了企业进行数据转移、复制和转换的工作,解决了企业进行应用开发时大量数据复制造成的资源浪费、效率低下、数据安全等问题。上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1