CN110019522A - 基于xml的多源异构数据整合系统 - Google Patents
基于xml的多源异构数据整合系统 Download PDFInfo
- Publication number
- CN110019522A CN110019522A CN201711239140.4A CN201711239140A CN110019522A CN 110019522 A CN110019522 A CN 110019522A CN 201711239140 A CN201711239140 A CN 201711239140A CN 110019522 A CN110019522 A CN 110019522A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- data source
- database
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于XML的多源异构数据整合系统,该系统包括:应用服务层、数据服务接口层、数据源集成层以及数据库系统层;其中,所述应用服务层通过所述数据服务接口层所提供的接口实现不同用户应用的扩展;所述数据服务接口层实现与所述数据源集成层的实时交互操作及反馈结果数据的获取,并对外提供适当的API;所述数据源集成层用于屏蔽分布式数据源采集操作的具体实现细节,以及响应所述数据服务接口层提出的操作请求;所述数据库系统层实际由物理位置相邻或不相邻的若干关系型数据库组成,用以提供系统所需的多源异构数据信息。
Description
技术领域
本发明属于大数据整合技术领域,涉及一种基于XML的多源异构数据整合系统。
背景技术
在信息量快速增长的今天,处理分布式数据成为研究的热点。其中,异构数据的集成是分布式平台发展的关键技术,此技术的应用给企业节约了成本和提高了生产效率。
目前,大多数的研究都集中在海量数据集成的研究上,数据集成框架主要是针对分布式复杂系统,技术实现复杂,而针对一些业务较为简单,数据量不是很大的系统,数据集成技术研究则较少。
现有研发技术往往存在以下不足:没有尽可能多的兼容不同分布形式或不同物理平台的数据源,后期扩展性差;无法对现有的数据提供必要的安全保护策略;不能对外提供适当的API;缺乏独立性。
发明内容
本发明目的在于提供一种基于XML的多源异构数据整合系统,针对数据仓库和联邦数据库解决数据集成的复杂性和成本过高的特点,引入Java语言的跨平台性及XMLSchema语言能支持用户对数据类型进行扩展的特性,有效地屏蔽了分布式数据源平台的差异,实现了分布式数据源的描述及分布式数据的整合。
为解决上述技术问题,本发明采用如下的技术方案:一种基于XML的多源异构数据整合系统,该系统包括:应用服务层、数据服务接口层、数据源集成层以及数据库系统层;其中,所述应用服务层通过所述数据服务接口层所提供的接口实现不同用户应用的扩展;所述数据服务接口层实现与所述数据源集成层的实时交互操作及反馈结果数据的获取,并对外提供适当的API;所述数据源集成层用于屏蔽分布式数据源采集操作的具体实现细节,以及响应所述数据服务接口层提出的操作请求;所述数据库系统层实际由物理位置相邻或不相邻的若干关系型数据库组成,用以提供系统所需的多源异构数据信息。
进一步地,所述数据服务接口层选择Java作为其实现平台,利用Java RMI框架封装底层的Socket操作实现分布式端和全局端通信。
进一步地,所述数据源集成层包含数据源自主注册、数据源对象及其物理位置描述的Schema设计、全局数据的Schema设计与数据服务几个功能。
本发明与现有技术相比具有以下的有益效果:
本发明方案针对数据仓库和联邦数据库解决数据集成的复杂性和成本过高的特点,引入Java语言的跨平台性及XML Schema语言能支持用户对数据类型进行扩展的特性,屏蔽了分布式数据源平台的差异,实现了分布式数据源的描述及分布式数据的整合。
附图说明
图1是基于XML的多源异构数据整合系统的整体框架图。
具体实施方式
下面结合附图及具体实施例对本发明进行更加详细与完整的说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。
参照图1,本发明的一种基于XML的多源异构数据整合系统,该系统包括:应用服务层、数据服务接口层、数据源集成层以及数据库系统层;其中,所述应用服务层通过所述数据服务接口层所提供的接口实现不同用户应用的扩展;所述数据服务接口层实现与所述数据源集成层的实时交互操作及反馈结果数据的获取,并对外提供适当的API;所述数据源集成层用于屏蔽分布式数据源采集操作的具体实现细节,以及响应所述数据服务接口层提出的操作请求;所述数据库系统层实际由物理位置相邻或不相邻的若干关系型数据库组成,用以提供系统所需的多源异构数据信息。
数据集成框架的重点是数据集成层和数据服务接口层。其中,数据集成层包括数据源的自主注册,数据源对象和数据源物理位置描述Schema设计、全局数据Schema设计和数据服务;而数据服务接口层采用Java中的远程方法调用(RemoteMethodInvocation,RMI)技术,创建远程方法调用。本发明的技术路线是采用XML Schema方法描述分布式数据源对象和全局数据对象,利用标准的DOM操作解析XML,使用Java RMI技术实现数据源对象的自主注册。
1、数据集成设计
1)数据源注册
数据集成的重点在于如何屏蔽分布式数据源的物理位置,屏蔽具体的实现细节使调用者可以不关心底层的数据实现,但能在需要时获得相应的数据服务。数据源注册方式的选择要满足数据源信息可变性的要求,即当某一个数据源发生更改或者某一个数据源发生故障无法向外界提供数据服务,应及时通知服务中心。针对这个问题,为了提高数据集成的灵活性和可扩展性,本发明采用分布式数据源自主注册的方式,分布式数据源端对自己的数据服务进行自主注册,当数据源信息发生更改时,随时修改自己的注册信息,以便在全局描述中获得数据源的实时信息。这种方法不仅屏蔽了分布式数据源的差异性,而且还方便进行统一的差错控制,降低了由于分布式数据源的意外对整个应用的影响。
2)分布式数据源的描述
为了屏蔽分布式数据源的底层细节,以及数据源对象本身和物理位置的可变更性,数据源信息不能直接通过编码实现应用。在现代的企业级数据源中,绝大多数都是关系型数据库,例如,Oracle、MySQL、SQLServer等。不同的数据库系统实现细节有差异,且有的数据存储在非数据库的数据源中,例如存储在excel等其他数据源中,上述差异性就要求描述文件时尽可能地屏蔽不同数据存储的实现细节。结合关系型理论,本发明采用XMLSchema技术描述分布式数据源的信息,以及描述数据源对象的具体信息,包括数据库、数据库表信息等,其Schema如下所示:
数据源对象信息Schema完成之后,还需要设计描述分布式数据源物理位置的Schema,辨别不同的数据源的物理位置的方式是数据源的IP地址。其Schema如下所示:
3)全局数据对象建立
根据数据集成的物理集成技术和虚拟集成技术,本发明采用虚拟集成方式,定义一个全局数据对象来实现全局模式的查询。根据关系型数据库理论,设计其全局数据对象Schema如下所示:
4)查询请求的接收和语义表达
查询请求的难点在于如何表达查询请求的语义问题,在关系型数据库的使用中,SQL语句是实现数据查询的重要方式。因此本发明采用扩展SQL语句,设计一种“类SQL”的语言来表达查询语义。
针对查询,只需要扩展SELECT语句。在SQL中SELECT的表达为SELECT fieldname1,filename2FROM tablename WHERE wherecaluse,其中FROM后面跟的是数据表名,WHERE子句描述的是字段的限制信息。由于在数据集成的设计中数据源的底层细节被屏蔽,所以SQL中FROM子句不适合描述全局对象的查询语义,且WHERE子句的信息匹配需要额外的数据结构来存储这些匹配信息,其解析难度比较大,涉及一个词法的分析过程。针对以上SELECT和WHERE语法的分析,本发明的设计不采用WHERE子句的形式,直接将限制信息添加在需要查询的字段名后面的查询方法。为了解析的便捷将这些限制条件摆放在括号中,其改造之后的“类SQL”语句的形式变成了SELECT fieldname1(限制条件),fieldname2(限制条件)。
接下来的重点是完成一个解析器解析创造出来的“类SQL”语句,由于选择操作的关键字始终是SELECT,但在对外提供接口时不要求调用者提供SELECT关键字。为了方便解析,对外提供调用接口时将形参设置为ArrayList<String>类型,进一步减少为了分析空格之类的无关紧要的字符而造成的代码冗余。解析器将字段和限定信息全部处理完成之后要确定相应的字段在哪个具体的数据表中,为了保存解析的结果不被同名的字段名覆盖,参考命名空间的相关理论,设计如下数据结构:
HashMap<String,HashMap<String,HashMap<String,ArrayList<String>>>>
从外向内依次存储的是位置信息(IP)→数据源名称→数据表名称→数据字段名称,形成一个类似于命名空间的信息存储层次,避免上述的数据字段同名的情况。
查询器的任务是根据上述数据结构调用远程端分布式的数据服务获得需要的数据。在查询器的设计中,考虑到分布式数据源的差异性,将具体的实现方案交给分布式数据端实现。如果接收查询结果的数据结构与分布式端一致,在存储多个分布式端的查询结果时,使用的数据结构是ArrayLsit。
5)数据服务接口
由于Java具有先天性的跨平台优势,本发明选择Java作为其实现平台,利用JavaRMI框架封装底层的Socket操作实现分布式端和全局端通信。创建RMI远程方法调用的重点是定义远程方法的接口,该接口中的每一个方法必须声明它将产生一个RemoteException异常。
接下来的工作是设计分布式端和设计全局端的接口和实现这些接口。其分布式端的接口设计如下所示:
package com.zhanglei.distribution.adapter;
public interface IDatabase extends Remote{
public ArrayList<String>getTables()throws RemoteException;
public ArrayList<HashMap<String,String>>getFields()throwsRemoteException;
public ArrayList<Integer>getNumbers()throws RemoteException;
public ArrayList<String>getDatabase Names()throws RemoteException;
public String getDatabase Catagory()throws RemoteException;
}
以上接口是对数据源进行抽象,还需要一个开启存储工具操作的接口,这个接口设计成一个空接口,起到标识的作用。
全局端数据服务接口设计如下所示:
该接口中需要说明的是getRows()方法,该方法返回值是ArrayList<ArrayList<Object>>类型,表示将每一个数据行并且该行中每一个数据列都视为Object类型,这样做的理由是考虑到不同的数据列具有不同的类型,设计为Object类型之后可以屏蔽类型差异性。
2、数据集成实现
设计分布式端和全局端的数据服务接口后,再设计一个注册的类,以实现分布式数据源的自主注册。
其中,DoWithException是全局的异常处理类,DatabaseServer类是基于控制台的,实现分布式数据源对象的描述和自主注册问题。
全局端的工作分为处理分布式数据源对象和接收查询操作。处理分布式数据源对象的步骤为:
1)解析分布式数据源的物理位置信息;
2)根据这些信息结合RMI框架建立全局数据对象;
3)根据上文提到的Schema将全局数据对象持久化到XML文件中。
设计的解析类内容如下:
这个类中有一个获得属性配置文件的map数据,允许用户随意存放分布式数据源的描述信息,增加灵活性。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.基于XML的多源异构数据整合系统,其特征在于,所述系统包括:应用服务层、数据服务接口层、数据源集成层以及数据库系统层;其中,所述应用服务层通过所述数据服务接口层所提供的接口实现不同用户应用的扩展;所述数据服务接口层实现与所述数据源集成层的实时交互操作及反馈结果数据的获取,并对外提供适当的API;所述数据源集成层用于屏蔽分布式数据源采集操作的具体实现细节,以及响应所述数据服务接口层提出的操作请求;所述数据库系统层实际由物理位置相邻或不相邻的若干关系型数据库组成,用以提供系统所需的多源异构数据信息。
2.根据权利要求1所述的基于XML的多源异构数据整合系统,其特征在于,所述数据服务接口层选择Java作为其实现平台,利用Java RMI框架封装底层的Socket操作实现分布式端和全局端通信。
3.根据权利要求1所述的基于XML的多源异构数据整合系统,其特征在于,所述数据源集成层包含数据源自主注册、数据源对象及其物理位置描述的Schema设计、全局数据的Schema设计与数据服务几个功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239140.4A CN110019522A (zh) | 2017-12-01 | 2017-12-01 | 基于xml的多源异构数据整合系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239140.4A CN110019522A (zh) | 2017-12-01 | 2017-12-01 | 基于xml的多源异构数据整合系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019522A true CN110019522A (zh) | 2019-07-16 |
Family
ID=67186804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711239140.4A Pending CN110019522A (zh) | 2017-12-01 | 2017-12-01 | 基于xml的多源异构数据整合系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019522A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177177A (zh) * | 2019-12-02 | 2020-05-19 | 国网吉林省电力有限公司吉林供电公司 | 一种基于多源异构数据融合的自动报表系统及其方法 |
-
2017
- 2017-12-01 CN CN201711239140.4A patent/CN110019522A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177177A (zh) * | 2019-12-02 | 2020-05-19 | 国网吉林省电力有限公司吉林供电公司 | 一种基于多源异构数据融合的自动报表系统及其方法 |
CN111177177B (zh) * | 2019-12-02 | 2023-06-16 | 国网吉林省电力有限公司吉林供电公司 | 一种基于多源异构数据融合的自动报表系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019210758A1 (zh) | 数据保护方法、装置及存储介质 | |
US8429601B2 (en) | Code completion for object relational mapping query language (OQL) queries | |
CN110222237B (zh) | 数据库表和xml报文的转换方法及其系统 | |
CN102982075B (zh) | 支持访问异构数据源的系统和方法 | |
US8868648B2 (en) | Accessing open data using business intelligence tools | |
US8387030B2 (en) | Service adaptation definition language | |
CN106934062A (zh) | 一种查询elasticsearch的实现方法及系统 | |
US8726229B2 (en) | Multi-language support for service adaptation | |
CN104200402A (zh) | 一种电网多个数据源的源数据发布方法及系统 | |
US9171051B2 (en) | Data definition language (DDL) expression annotation | |
CN107679071B (zh) | 一种面向关系数据库的通用数据服务定制化封装方法 | |
US7099727B2 (en) | Knowledge repository system for computing devices | |
CN105224613A (zh) | 基于数据联邦技术的异构数据源整合系统及其整合方法 | |
CN102110099A (zh) | 基于养老保险预警系统的异构数据库中间件访问技术 | |
EP4155965A1 (en) | System and method for facilitating metadata identification and import | |
CN105205103B (zh) | 访问数据库的方法和装置 | |
CN111414378A (zh) | 一种基于GraphQL的类元数据框架 | |
WO1999009494A1 (en) | Relational database coexistence in object oriented environments | |
CN112667598B (zh) | 基于业务需求变化的数据模型快速构建系统 | |
KR100417569B1 (ko) | 메타데이터 교환표준을 이용한 분산 이종 데이터베이스검색방법 | |
CN110019522A (zh) | 基于xml的多源异构数据整合系统 | |
US10521431B2 (en) | Relational conversion of multiprovider operations in a calculation scenario for executing a query | |
CN108845793B (zh) | 一种orm设计方法及装置 | |
CN105653277A (zh) | 一种简化java程序下查询数据表指定字段数据、多表联合查询、统计查询的方法 | |
CN106682230A (zh) | 基于html5和css3移动展示技术架构的信息服务平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190716 |