掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及异构数据智能处理技术领域,尤其涉及一种多源异构数据的联合查询方法与系统。

背景技术

在互联网时代,企业对于数据的存储、使用、安全等方面非常重视,因为很多业务展开是基于数据驱动的,数据就是企业的核心。大数据环境下,企业面临多样的数据结构:关系型的数据库、文件数据、No-SQL类型、流式数据、倒排索引;数据源也是丰富的:一个企业通常会存在Oracle,SQL server,MySQL等多个关系型数据库;不同部门的CSV,Parquet,Json类型的文件会存储在不同地方。在数据存储方面有很多技术可以选择,常见的关系型数据库和非关系型数据库具有各自的适用场景,使得企业在技术选型时有更多的选择。在某些情况下,多个团队需要多种数据库并存,甚至云数据库,而在业务上查询需求更多。多源异构数据的存在,对数据的查询造成了困难,所以,有些业务层面需要一种联合查询方法。

目前,Apache ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由JDBC、Proxy和Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。Apache ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。

但Apache ShardingSphere虽然支持异构语言,但是对差异性较大的数据系统无法完全同构化,比如关系型数据库和非关系型数据库,或者不同数据结构的联合查询。无法完全满足对于拥有多样的数据源与数据结构的企业的数据查询需求。

发明内容

本发明针对上述的多源异构数据无法完全同构化的技术问题,提出一种多源异构数据的联合查询方法与系统。

第一方面,本申请实施例提供了一种多源异构数据的联合查询方法,包括:

输入步骤:接收多源异构数据;

映射步骤:通过mapper将所述多源异构数据映射为同构数据并建立索引;

查询步骤:通过查询器根据所述索引进行查询。

上述多源异构数据的联合查询方法,其中,所述映射步骤包括:

配置步骤:对所述多源异构数据的每一类源数据配置一张mapper表;

映射完成步骤:通过映射器根据所述mapper表将所述源数据映射为table结构;

索引建立步骤:对所述table结构的数据建立所述索引。

上述多源异构数据的联合查询方法,其中,所述映射完成步骤包括:映射期间原始字段field会映射为相应的table字段field,且所述原始字段field与所述table字段field关系是一一对应的。

上述多源异构数据的联合查询方法,其中,所述映射完成步骤还包括:使用json数据格式维护映射关系,将源数据字段:id、origin_name、origin_desc分别映射为id、table_name、table_desc。

上述多源异构数据的联合查询方法,其中,所述索引建立步骤中,选择table主键字段或其他任何唯一值字段建立所述索引。

第二方面,本申请实施例提供了一种多源异构数据的联合查询系统,包括:

输入模块:接收多源异构数据;

映射模块:通过mapper将所述多源异构数据映射为同构数据并建立索引;

查询模块:通过查询器根据所述索引进行查询。

上述多源异构数据的联合查询系统,其中,所述映射模块包括:

配置单元:对所述多源异构数据的每一类源数据配置一张mapper表;

映射完成单元:通过映射器根据所述mapper表将所述源数据映射为table结构;

索引建立单元:对所述table结构的数据建立所述索引。

上述多源异构数据的联合查询系统,其中,所述映射完成单元包括:映射期间原始字段field会映射为相应的table字段field,且所述原始字段field与所述table字段field关系是一一对应的。

上述多源异构数据的联合查询系统,其中,所述映射完成单元还包括:使用json数据格式维护映射关系,将源数据字段:id、origin_name、origin_desc分别映射为id、table_name、table_desc。

上述多源异构数据的联合查询系统,其中,所述索引建立单元中,选择table主键字段或其他任何唯一值字段建立所述索引。

与现有技术相比,本发明的优点和积极效果在于:

1.能够接收不同来源和不同结构的数据,并将其同构化,并且对于如关系型数据库和非关系型数据库这种差异性较大的数据系统也能完全同构化。

2.通过mapper关系映射,将源数据映射为table数据,使得源数据隐藏起来,这样一来,用户使用的是面向自己的数据结构,大大提高了语义化和用户体验。

3.本发明提出的联合查询方法使得用户查询多源异构数据时更加简单,查询时不必去关注底层数据的存储方式,只需准确处理上层数据的映射关系和索引,满足复杂业务对多源数据的要求。

附图说明

图1为本发明提供的一种多源异构数据的联合查询方法的步骤示意图;

图2为本发明提供的基于图1中步骤S2的流程图;

图3为本发明提供的一种多源异构数据的联合查询的整体架构图;

图4为本发明提供的一种多源异构数据的联合查询的映射关系图;

图5为本发明提供的一种多源异构数据的联合查询的关系映射表;

图6为本发明提供的一种多源异构数据的联合查询系统的框架图;

其中,附图标记为:

11、输入模块;12、映射模块;121、配置单元;122、映射完成单元;123、索引建立单元;13、查询模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

在详细阐述本发明各个实施例之前,对本发明的核心发明思想予以概述,并通过下述若干实施例予以详细阐述。

本发明提出一种多源异构数据的联合查询方法与系统,当接收多源异构数据时通过mapper将源数据映射为同构数据,这样查询器直接处理同构数据,而将源数据隐藏起来,这种联合查询方式使得用户查询多源异构数据时不必关注底层数据的存储方式,只需准确处理上层关系和索引。

read:查询器,一种单一数据处理引擎。

mapper:映射器及关系表。

table:映射之后的同构数据源。

field:数据源字段。

JDBC:基于Java的数据库驱动引擎。

HTTP:一种网络传输协议。

mysql:一种关系型数据库。

elasticsearch:一种非关系型数据库。

实施例一:

参照图1所示,图1为本发明提供的一种多源异构数据的联合查询方法的步骤示意图。如图1所示,本实施例揭示了一种多源异构数据的联合查询方法(以下简称“方法”)的具体实施方式。

具体而言,本实施例所揭示的方法主要包括以下步骤:

步骤S1:接收多源异构数据。

具体而言,多源异构简单来说就是指一个整体由多个不同来源的成分而构成,既有混合型数据(包括结构化和非结构化)又有离散性数据(数据分布在不同的系统或平台),互联网就是一个典型的异构网络,融合传播矩阵就是一个典型的多源异构数据网络。在企业信息化建设过程中,由于各业务系统建设和实施数据管理系统的阶段性、技术性以及其它经济和人为因素等因素影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。

具体而言,如图3所示,图3为本发明提供的一种多源异构数据的联合查询的整体架构图,其中,以java为例,多源异构数据包括:mysql、elasticsearch及外部数据,通过JDBC接收mysql、elasticsearch中的数据,通过HTTP接收外部数据。

具体而言,MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database ManagementSystem,关系数据库管理系统)应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。

JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC驱动程序共分四种类型:JDBC-ODBC桥、本地API驱动、网络协议驱动、本地协议驱动。JDBC为程序员指定了一组在编写SQL请求时使用的面向对象的类。还有一组附加的类描述了JDBC驱动API。能映射成Java数据类型的最普通的SQL数据类型都是支持的。这个API提供了微软事务服务器请求的执行支持以及提交和回滚到事务开始的能力。

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出,而消息内容则具有一个类似MIME的格式。HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP协议进行通信的HTTP的实现程序。HTTP协议是基于B/S架构进行通信的,而HTTP协议的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、InternetExplorer、Googlechrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP协议进行通信了。

常见的关系型数据库和非关系型数据库具有各自的适用场景,使得企业在技术选型时有更多的选择。在某些情况下,多个团队需要多种数据库并存,甚至云数据库,而在业务上查询需求更多。所以,有些业务层面需要一种联合查询方法。

然后参照图2,执行步骤S2:通过mapper将所述多源异构数据映射为同构数据并建立索引。

其中,步骤S2具体包括以下内容:

步骤S21:对所述多源异构数据的每一类源数据配置一张mapper表;

步骤S22:通过映射器根据所述mapper表将所述源数据映射为table结构;

步骤S23:对所述table结构的数据建立所述索引。

具体而言,每一类源数据都需要维护一张mapper表,映射器根据mapper表将源数据映射为table。如图4所示,映射期间原始字段field会映射为相应的table字段field,且所述原始字段field与所述table字段field关系是一一对应的。

具体而言,如图5所示,使用json数据格式维护映射关系,将源数据字段:id、origin_name、origin_desc分别映射为id、table_name、table_desc。

JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简单地说,JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在PHP中,可以将JSON还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串。

具体而言,映射关系完成后,需要对table建立索引,可选择table主键字段或其他任何唯一值字段建立索引。

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程度上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

然后执行步骤S3:通过查询器根据所述索引进行查询。

具体而言,read为查询器,索引建立完成后,查询器会根据建立好的索引进行优化查询。

实施例二:

结合实施例一所揭示的一种多源异构数据的联合查询方法,本实施例揭示了一种多源异构数据的联合查询系统(以下简称“系统”)的具体实施示例。

参照图6所示,所述系统包括:

输入模块11:接收多源异构数据;

映射模块12:通过mapper将所述多源异构数据映射为同构数据并建立索引;

查询模块13:通过查询器根据所述索引进行查询。

具体而言,在所述输入模块11中,接收多源异构数据,包括:mysql、elasticsearch及外部数据,以java为例,通过JDBC接收mysql、elasticsearch中的数据,通过HTTP接收外部数据。

具体而言,所述映射模块12包括:

配置单元121:对所述多源异构数据的每一类源数据配置一张mapper表;

映射完成单元122:通过映射器根据所述mapper表将所述源数据映射为table结构;

索引建立单元123:对所述table结构的数据建立所述索引。

具体而言,在配置单元121中,每一类源数据都需要维护一张mapper表,映射器根据mapper表将源数据映射为table。

在所述映射完成单元122中,映射期间原始字段field会映射为相应的table字段field,且所述原始字段field与所述table字段field关系是一一对应的。可以使用json数据格式维护映射关系,将源数据字段:id、origin_name、origin_desc分别映射为id、table_name、table_desc。

所述索引建立单元123中,映射关系完成后,需要对table建立索引,可选择table主键字段或其他任何唯一值字段建立所述索引。

具体而言,在查询模块13中,read为查询器,索引建立完成后,查询器会根据建立好的索引进行优化查询。

本实施例所揭示的一种多源异构数据的联合查询系统与实施例一所揭示的一种多源异构数据的联合查询方法中其余相同部分的技术方案,请参实施例一所述,在此不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

综上所述,基于本发明的有益效果在于,本发明提出的联合查询方法能够接收不同来源和不同结构的数据,并将其同构化,并且对于如关系型数据库和非关系型数据库这种差异性较大的数据系统也能完全同构化。主要通过mapper关系映射,将源数据映射为table数据,使得源数据隐藏起来,这样一来,用户使用的是面向自己的数据结构,大大提高了语义化和用户体验。此种联合查询方法使得用户查询多源异构数据时更加简单,查询时不必去关注底层数据的存储方式,只需准确处理上层数据的映射关系和索引,满足了复杂业务对多源数据的要求。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 一种多源异构数据的联合查询方法与系统
  • 面向异构存储多源数据管理及可视化系统的数据查询方法
技术分类

06120112389215