CN107045534B - 大数据环境下基于HBase的异构数据库在线交换与共享系统 - Google Patents
大数据环境下基于HBase的异构数据库在线交换与共享系统 Download PDFInfo
- Publication number
- CN107045534B CN107045534B CN201710042815.XA CN201710042815A CN107045534B CN 107045534 B CN107045534 B CN 107045534B CN 201710042815 A CN201710042815 A CN 201710042815A CN 107045534 B CN107045534 B CN 107045534B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- hbase
- module
- type
- 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.)
- Active
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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
-
- 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
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)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
大数据环境下基于HBase的异构数据库在线交换与共享系统,包括异构数据库统一访问组件、数据采集模块、数据映射模块、数据转换模块、数据融合模块、数据分发模块以及数据投递模块。异构数据库统一访问组件提供统一的数据库访问接口;数据采集模块采集源数据库中数据;数据映射模块建立各个异构数据库与统一语义共享模型的映射关系;数据转换模块实现数据转换;数据融合模块将统一语义共享模型与历史数据的统一语义共享模型融合,并存储在HBase中间数据库;数据分发模块根据时间戳将待交换字段数据发送给数据转换模块;数据投递模块将数据推送到相应目标数据库中。本发明实现了异构数据库间海量数据自动在线交换与共享,交换共享效率高。
Description
技术领域
本发明涉及大数据环境下基于HBase的异构数据库在线交换与共享系统,属于数据交换领域。
背景技术
当前各企业应用系统使用异构数据库的现象普遍存在,这些异构数据库往往存在较大差异,如数据存储结构不同、数据类型不同、数据表示方式不同等,这给数据库间数据交换共享带来了很大不便。而信息化建设的迅猛发展,又导致需要交换与共享的信息量十分巨大,信息交换呈现多源、异构、海量的特点。如何实现异构数据库之间大数据高效自动在线交换与共享成为当前亟需解决的难题。
SQL Server提供的数据导入导出工具,实现了关系型数据库的数据迁移,但是该工具可支持的异构数据库类型比较有限,只能离线导入导出,异构数据库间进行数据共享也不够灵活,而且无法满足海量数据在线交换的需求。
中国专利公开号CN103809946A,公开日2014年5月21日,发明创造名称为一种基于XML和中间件的异构数据库集成的方法,该申请案公开了一种通过将异构数据库数据转换为统一格式的XML文件来实现异构数据库集成的方法。该方法采用的统一交换模型为XML文件形式,XML文件形式不支持高并发读写,交换共享效率较低,能处理的数据量较小。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供大数据环境下基于HBase的异构数据库在线交换与共享系统,能够对接各种异构关系型数据库及列式存储的HBase数据库,采用统一语义共享模型作为数据库间转换桥梁,具备处理海量数据能力,实现了异构数据库间海量数据自动在线交换与共享,交换共享效率高。
本发明的技术解决方案是:大数据环境下基于HBase的异构数据库在线交换与共享系统,包括异构数据库统一访问组件、数据采集模块、数据映射模块、数据转换模块、数据融合模块、数据分发模块以及数据投递模块;
异构数据库统一访问组件:为各异构数据库提供统一的数据库访问接口;
数据采集模块:根据交换与共享的需求以及预设的抽取策略,通过异构数据库统一访问组件采集源数据库中的数据,发送给数据转换模块,所述抽取策略包括抽取时间间隔、是否全表抽取;
数据映射模块:建立各个异构数据库与统一语义共享模型之间的映射关系,提供给数据转换模块;
数据转换模块:根据源数据库与统一语义共享模型之间的映射关系,将来自源数据库中的数据转换为统一语义共享模型,输出给数据融合模块;根据统一共享模型和目标数据库之间的映射关系,将来自数据分发模块的数据转换为目标数据库中的数据,并发送给数据投递模块;
数据融合模块;将来自数据转换模块的统一语义共享模型与历史数据的统一语义共享模型进行融合,并将融合后的统一语义共享语义模型存储在HBase中间数据库;
数据分发模块:获取上次向目标数据库推送数据的时间戳t,从HBase中间库读取t之后且与t紧邻的时间戳对应的待交换字段数据,发送给数据转换模块;
数据投递模块:根据交换与共享的需求以及预设的推送时间间隔,将数据推送到相应目标数据库中。
所述统一语义共享模型采用HBase中间库来实现,统一语义共享模型包括信息主体、信息主体属性以及通用数据类型,其中信息主体是对具有共性的一类信息数据进行描述的元信息,在实现形式上以HBase表来表示;信息主体属性,是对信息主体对应数据集合各维度信息进行描述的元信息,用HBase列和列簇来表示;通用数据类型用于描述各异构数据库的字段类型,HBase列簇按照通用数据类型来划分。
所述HBase中间库设置四个列簇,即数字型列簇、字符型列簇、日期时间型列簇以及大字段型列簇。
所述数据映射模块建立源数据库与统一语义共享模型映射关系的实现方法如下:
步骤一,判断源数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取源数据库数据表结构,包括行键、列簇、列和列簇策略信息,进入步骤三;
步骤三,HBase中间库数据表采用相同的表结构,进行列映射,进入步骤十;
步骤四,获取源数据库数据表结构,包括主键、字段、数据类型、默认值信息,进入步骤五;
步骤五,判断源数据库数据表是否为单一主键,是则执行步骤六,若为多主键则进入步骤七;
步骤六,将主键直接作为HBase中间库行键,进入步骤八;
步骤七,按照以下公式将多主键拼接后作为HBase中间库行键,进入步骤八:
R=f1(K1)+S+f2(K2)+S+…+S+fn(Kn)
其中R表示HBase中间库行键,Ki表示源数据库第i个数据表的主键,i=1,2…n,fi(Ki)为将主键Ki的数据类型转为字符串类型的转换函数,S为主键拼接分割符;
步骤八,将源数据库数据表中各个字段的数据类型映射为统一语义共享模型中通用数据类型,并根据映射后的通用数据类型,将源数据库数据表各个字段映射到HBase中间库的列簇中,各字段与列簇中的列一一对应,且列簇中的列名称与对应字段名称相同,进入步骤九;
步骤九,针对HBase中间库各列簇特点,为各列簇设置策略,所述策略包括压缩策略、辅助索引策略、事务策略、缓存策略或版本策略,进入步骤十;
步骤十,操作者检查映射关系和策略是否符合需求,符合则映射流程结束,否则执行步骤十一;
步骤十一,操作者根据实际需求,手动调整列簇划分、映射关系及各项策略。
所述步骤八中将源数据库数据表各个字段映射到HBase中间库列簇的映射原则为:数据类型为Int、Number、Float、Boolean的字段映射到数字型列簇中,数据类型为Char、String的字段映射到字符型列簇中,数据类型为Time、Date、Timestamp的字段映射到日期时间型列簇中,数据类型为Blob、Clob、Text的字段映射到大字段型列簇中。
所述数据映射模块建立统一语义共享模型与目标数据库映射关系的实现方法如下:
步骤一,判断目标数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取目标HBase数据库数据表结构,包括行键、列簇和列信息,进入步骤三;
步骤三,根据目标HBase数据库数据表列名,建立与HBase中间库数据表列之间的映射关系,进入步骤九;
步骤四,获取目标数据表结构,包括主键、字段和数据类型信息,进入步骤五;
步骤五,判断目标数据表是否为单一主键,是则执行下一步骤,为多主键则进入步骤七;
步骤六,将HBase中间库行键直接作为主键,进入步骤八;
步骤七,根据主键拼接分割符解析HBase中间库行键的拼接方式,建立行键与多主键的映射关系,进入步骤八;
步骤八,将目标字段数据类型映射到统一语义共享模型中通用数据类型,根据映射后的通用数据类型查找HBase中间库内对应的列簇,按字段名与列簇中列进行映射,进入步骤九;
步骤九,操作者检查映射关系是否符合需求,符合则映射流程结束,否则执行步骤十;
步骤十,操作者根据实际需求,手动调整映射关系,映射流程结束。
数据融合模块根据时间戳对比实现融合,如果源数据时间戳更新,则以源数据覆盖目标数据;反之,如果目标数据时间戳更新,则丢弃源数据。
与现有技术相比,本发明具有如下有益效果:
(1)本发明定义了统一语义共享模型,适用于各种异构关系型数据库及列式存储数据库间数据交换共享,具备广泛适用性。
(2)本发明采用的统一语义共享模型是基于HBase实现,充分利用了HBase技术优势,具备处理海量数据能力,支持高并发读写,提高了数据交换共享的效率。
(3)本发明数据映射模块提供异构数据库与统一语义共享模型间自动映射,降低了操作复杂度,为数据高效自动地在线采集、融合及分发奠定基础。
(4)本发明数据融合模块保存了多个时间戳的历史数据,可以根据需求灵活读取分发。
附图说明
图1为本发明系统结构图;
图2为本发明应用示意图;
图3为统一语义共享模型抽象描述图;
图4为统一语义共享模型具体实现图;
图5为数据映射模块建立源数据库与统一语义共享模型映射关系的流程图;
图6为数据映射模块建立统一语义共享模型与目标数据库映射关系的流程图;
图7为数据转换模块将来自源数据库中的数据转换为统一语义共享模型的流程图;
图8为数据转换模块将来自数据分发模块的数据转换为目标数据库中数据的流程图;
图9为应用本发明系统进行数据交换的整体流程图。
具体实施方式
如图1所示,本发明大数据环境下基于HBase的异构数据库在线交换与共享系统,包括异构数据库统一访问组件、数据采集模块、数据映射模块、数据转换模块、数据融合模块、数据分发模块以及数据投递模块。
异构数据库统一访问组件,目的是为了屏蔽各异构数据库间技术实现差异,为各异构数据库提供统一的数据库访问接口,支持上层应用透明地访问各异构数据库。可支持的异构数据库类型包括国内外各主流关系型数据库,如SQL Server、Oracle、MySQL、达梦、金仓、神通等,以及列式存储数据库HBase。
数据采集模块,根据交换与共享的需求以及预设的抽取策略,通过异构数据库统一访问组件自动地抽取源数据库中的数据,发送给数据转换模块,其中抽取策略包括抽取时间间隔、是否全表抽取。
数据映射模块:建立各个异构数据库与统一语义共享模型之间的映射关系,提供给数据转换模块。映射关系建立方式为:系统按照源数据库和目标数据库类型,自动分析数据库的表结构,如字段名、数据类型、主键等信息,建立表主键与HBase中间库表行键的映射关系,并依据表各字段的数据类型划分列簇,各字段与列簇中的列一一对应,然后针对各列簇特点设置不同策略,策略包括:压缩策略、辅助索引策略、事务策略、缓存策略、版本策略等。
同时,数据映射模块支持可视化交互配置,在自动映射基础上,操作者通过系统提供的交互式配置工具按照实际需求对列簇划分、字段映射和各项策略实现手动调整。
统一语义共享模型,作为异构数据库间转换的桥梁,屏蔽各数据库间存储结构、数据类型、数据表示方式等多方面差异,抽象出一套统一的中间共享模型。如图3所示,统一语义共享模型包括信息主体、信息主体属性以及通用数据类型,信息主体,是对具有某种共性的一类信息数据进行描述的元信息;信息主体属性,是对信息主体对应数据集合各维度信息进行描述的元信息;模型还定义了丰富的通用数据类型,如整型、小数型、字符型、布尔型、日期时间型、文本型、字典型等类型,用于抽象描述各异构数据库的字段类型。如图4所示,该模型具体采用HBase来实现,信息主体对应于HBase中间库各数据表,HBase中间库预设四个列簇,即数字型列簇、字符型列簇、日期时间型列簇、大字段型列簇,信息主体属性按数据类型对应于相应列簇中的列,HBase中间库数据表各单元格保存不同时期多个版本数据。
数据转换模块,用于异构数据库与统一语义共享模型之间数据相互转换。转换包括两部分:(1)从源数据库转换到统一语义共享模型,输出给数据融合模块。若源数据库为HBase,则直接按照预设的映射关系进行转换。若源数据库为关系型数据库,先将表主键转换为行键,然后将源数据类型转换为统一语义共享模型的通用数据类型,并按行键将每行数据映射转换到对应列簇中。(2)从统一语义共享模型转换到目标数据库,输出给数据投递模块。若目标数据库为HBase,则直接按照预设的映射关系进行转换。若目标数据库为关系型数据库,首先根据目标数据库数据类型将待分发的数据进行数据类型转换,然后按照预设的字段映射关系进行转换。
数据融合模块;将来自数据转换模块的统一语义共享模型与历史数据的统一语义共享模型进行融合,并将融合后的统一共享语义模型存储在HBase中间数据库。数据融合的基本策略是根据时间戳进行比对,如果源数据时间戳更新,则以源数据覆盖目标数据;反之,如果目的数据时间戳更新,则丢弃源数据。同时,系统还允许操作者选择其他信息主体属性作为比对依据进行数据融合。
数据分发模块:获取上次向目标数据库推送数据的时间戳t,从HBase中间库读取t之后且与t紧邻的时间戳对应的待交换字段数据,发送给数据转换模块;
数据投递模块:根据交换与共享的需求以及预设的推送时间间隔,调用异构数据库统一访问组件接口将数据自动推送到相应目标数据库中。
如图5所示,本发明数据映射模块建立源数据库与统一语义共享模型映射关系的实现方法如下:
步骤一,判断源数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取源数据库数据表结构,包括行键、列簇、列和列簇策略信息,进入步骤三;
步骤三,HBase中间库数据表采用相同的表结构,进行列映射,进入步骤十;
步骤四,获取源数据库数据表结构,包括主键、字段、数据类型、默认值信息,进入步骤五;
步骤五,判断源数据库数据表是否为单一主键,是则执行步骤六,若为多主键则进入步骤七;
步骤六,将主键直接作为HBase中间库行键,进入步骤八;
步骤七,按照以下公式将多主键拼接后作为HBase中间库行键,进入步骤八:
R=f1(K1)+S+f2(K2)+S+…+S+fn(Kn)
其中R表示HBase中间库行键,Ki表示源数据库第i个数据表的主键,i=1,2…n,fi(Ki)为将主键Ki的数据类型转为字符串类型的转换函数,S为主键拼接分割符,为保证行键的唯一性,该项通常使用特殊字符表示;
步骤八,将源数据库数据表中各个字段的数据类型映射为统一语义共享模型中通用数据类型,并根据映射后的通用数据类型,将源数据库数据表各个字段映射到HBase中间库的列簇中,各字段与列簇中的列一一对应,且列簇中的列名称与对应字段名称相同,映射原则为:数据类型为Int、Number、Float、Boolean的字段映射到数字型列簇中,数据类型为Char、String的字段映射到字符型列簇中,数据类型为Time、Date、Timestamp的字段映射到日期时间型列簇中,数据类型为Blob、Clob、Text的字段映射到大字段型列簇中,进入步骤九;
步骤九,针对HBase中间库各列簇特点,为各列簇设置策略,所述策略包括压缩策略、辅助索引策略、事务策略、缓存策略或版本策略,进入步骤十;
步骤十,操作者检查映射关系和策略是否符合需求,符合则映射流程结束,否则执行步骤十一;
步骤十一,操作者根据实际需求,手动调整列簇划分、映射关系及各项策略。
下面给出数据映射模块建立SQL Server数据库USER表与统一语义共享模型映射关系的例子:
步骤一,判断源数据库类型,SQL Server为关系型数据库,执行步骤二;
步骤二,获取USER表结构,得到USER表主键为ID,各字段信息为:ID(数据类型Varchar)、Name(数据类型Varchar)、Age(数据类型Int)、Note(数据类型Text),执行步骤三;
步骤三,USER表为单一主键,将主键ID作为HBase中间库行键,执行步骤四;
步骤四,将各字段数据类型字段映射为统一语义共享模型通用数据类型:ID和Name数据类型Varchar映射为字符型,Age数据类型Int映射为整型、Note数据类型Text映射为文本型。然后根据通用数据类型划分列簇:将ID、Name字段分别与HBase中间库字符型列簇中ID、Name列映射,将Age字段与HBase中间库数字型列簇中Age列映射,将Note字段与HBase中间库大字段型列簇中Note列映射,执行步骤五;
步骤五,为各列簇设置策略,如:大字段列簇采取数据压缩策略。如图6所示,数据映射模块建立统一语义共享模型与目标数据库映射关系的实现方法如下:
步骤一,判断目标数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取目标HBase数据库数据表结构,包括行键、列簇和列信息,进入步骤三;
步骤三,根据目标HBase数据库数据表列名,建立与HBase中间库数据表列之间的映射关系,进入步骤九;
步骤四,获取目标数据表结构,包括主键、字段和数据类型信息,进入步骤五;
步骤五,判断目标数据表是否为单一主键,是则执行下一步骤,为多主键则进入步骤七;
步骤六,将HBase中间库行键直接作为主键,进入步骤八;
步骤七,根据主键拼接分割符解析HBase中间库行键的拼接方式,建立行键与多主键的映射关系,进入步骤八;
步骤八,将目标字段数据类型映射到统一语义共享模型中通用数据类型,根据映射后的通用数据类型查找HBase中间库内对应的列簇,按字段名与列簇中列进行映射,进入步骤九;
步骤九,操作者检查映射关系是否符合需求,符合则映射流程结束,否则执行步骤十;
步骤十,操作者根据实际需求,手动调整映射关系,映射流程结束。
以下是数据映射模块建立统一语义共享模型与Oracle数据库EMPLOYEE表映射关系的例子:
步骤一,判断目标数据库类型,Oracle为关系型数据库,执行步骤二;
步骤二,获取EMPLOYEE表结构,得到EMPLOYEE表主键为ID,各字段信息为:ID(数据类型Varchar)、Name(数据类型Varchar)、Age(数据类型Int)、Note(数据类型Clob),执行步骤三;
步骤三,EMPLOYEE表为单一主键,将HBase中间库行键映射到主键ID,执行步骤四;
步骤四,将各字段数据类型字段映射为统一语义共享模型通用数据类型:ID和Name数据类型Varchar映射为字符型,Age数据类型Integer映射为整型、Note数据类型Clob映射为文本型。然后根据通用数据类型查找HBase中间库中对应列簇,按字段名与列簇中的列进行映射:在字符型列簇中查找列名为ID、Name的列分别与ID、Name字段映射,在数字型列簇中查找列名为Age的列与Age字段映射,在大字段型列簇中查找列名为Note的列与Note字段映射;如图7所示,数据转换模块将来自源数据库中的数据转换为统一语义共享模型的具体步骤如下:
步骤一,判断源数据库类型,类型为关系型数据库则执行下一步骤,为HBase则转步骤四;
步骤二,按照源表主键与HBase中间库行键映射关系,将主键转换为行键;
步骤三,对源表各字段数据进行数据类型转换,转换为统一语义共享模型的通用数据类型;
步骤四,将源表每行数据按照预设的映射关系进行字段转换,转换流程结束。
以下是数据转换模块将SQL Server数据库USER表数据转换为统一语义共享模型的例子:
步骤一,判断源数据库类型,SQL Server为关系型数据库,执行步骤二;
步骤二,按照预设映射关系,将USER表各字段数据的数据类型转为统一语义共享模型通用数据类型:ID和Name字段数据的数据类型转换为字符型,Age字段数据的数据类型转换为整型、Note字段数据的数据类型转换为文本型执行步骤三;
步骤三,按照预设映射关系,将转换数据类型后的各行数据转换到统一语义共享模型:ID、Name字段数据转为字符型列簇ID、Name列中,Age字段数据转为数字型列簇Age列中、Note字段数据转为大字段型列簇Note列中。
如图8所示,数据转换模块将来自数据分发模块的数据转换为目标数据库中的数据的具体步骤如下:
步骤一,判断目标数据库类型,类型为关系型数据库则执行下一步骤,为HBase则转步骤五;
步骤二,根据HBase中间库行键与目标表主键映射关系,将行键转换为主键,进入步骤三;
步骤三,按照预设的映射关系,对待分发的数据进行数据类型转换,转为目标数据类型,进入步骤四;
步骤四,按照预设的映射关系进行字段转换,转换流程结束。
以下是数据转换模块将数据分发模块的数据转换为Oracle数据库EMPLOYEE表数据的例子:
步骤一,判断目标数据库类型,Oracle为关系型数据库,执行步骤二;
步骤二,按照预设映射关系,将来自数据分发模块数据的数据类型转为目标数据库类型:ID和Name字段数据的数据类型转换为Oracle中Varchar型,Age字段数据的数据类型转换为Oracle中Integer型、Note字段数据的数据类型转换为Oracle中Clob型,执行步骤三;
步骤三,按照预设映射关系,将转换数据类型后的各行数据转换到Oracle数据库EMPLOYEE表中:字符型列簇ID、Name列数据转为ID、Name字段中,数字型列簇Age列数据转为Age字段中、大字段型列簇Note列数据转为Note字段中。
如图9所示,本发明系统进行在线交换与共享的具体步骤如下:
步骤一,配置源数据库抽取策略和目标数据库推送策略;
步骤二,由数据映射模块获取源数据库和目标数据库的表结构信息,自动建立源或目标数据表与统一语义共享模型间的映射关系,设置默认列簇策略,详细步骤见自动映射流程;
步骤三,操作者检查映射关系和策略是否符合需求,符合则转步骤五,否则执行步骤四;
步骤四,操作者根据实际交换与共享的需求,手动调整字段映射关系,调整统一语义共享模型各列簇策略;
步骤五,按照源数据库抽取策略,数据采集模块从源数据库中抽取数据,发送给数据转换模块;
步骤六,数据转换模块按照映射关系进行数据类型转换和字段转换,得到统一语义共享模型,输出给数据融合模块,详细步骤见数据转换流程;
步骤七,数据融合模块依据数据时间戳进行数据融合,得到融合后的统一共享语义模型存储在HBase中间数据库;
步骤八,根据目标数据推送的进度,数据分发模块从HBase中间数据库读取相应时间戳的数据,发送给数据转换模块;
步骤九,数据转换模块按照目标映射关系进行数据类型转换和字段转换,详细步骤见数据转换流程;
步骤十,按照目标数据库推送时间间隔,数据投递模块将数据推送到目标数据库中。
图2为本发明的系统应用示意图,系统抽取SQL Server源数据库中数据表A、B字段,Oracle源数据库中数据表A、C字段,MySQL源数据库中数据表D、E字段中的数据,融合存储到HBase中间库中,然后将数据分发推送到SQL Server目标数据库中数据表A字段,Oracle目标数据库中数据表B、C、D字段,达梦目标数据库中数据表D、E字段中。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (5)
1.大数据环境下基于HBase的异构数据库在线交换与共享系统,其特征在于:包括异构数据库统一访问组件、数据采集模块、数据映射模块、数据转换模块、数据融合模块、数据分发模块以及数据投递模块;
异构数据库统一访问组件:为各异构数据库提供统一的数据库访问接口;
数据采集模块:根据交换与共享的需求以及预设的抽取策略,通过异构数据库统一访问组件采集源数据库中的数据,发送给数据转换模块,所述抽取策略包括抽取时间间隔、是否全表抽取;
数据映射模块:建立各个异构数据库与统一语义共享模型之间的映射关系,提供给数据转换模块;
所述数据映射模块建立源数据库与统一语义共享模型映射关系的实现方法如下:
步骤一,判断源数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取源数据库数据表结构,包括行键、列簇、列和列簇策略信息,进入步骤三;
步骤三,HBase中间数据库数据表采用相同的表结构,进行列映射,进入步骤十;
步骤四,获取源数据库数据表结构,包括主键、字段、数据类型、默认值信息,进入步骤五;
步骤五,判断源数据库数据表是否为单一主键,是则执行步骤六,若为多主键则进入步骤七;
步骤六,将主键直接作为HBase中间数据库行键,进入步骤八;
步骤七,按照以下公式将多主键拼接后作为HBase中间数据库行键,进入步骤八:
R=f1(K1)+S+f2(K2)+S+…+S+fn(Kn)
其中R表示HBase中间数据库行键,Ki表示源数据库第i个数据表的主键,i=1,2…n,fi(Ki)为将主键Ki的数据类型转为字符串类型的转换函数,S为主键拼接分割符;
步骤八,将源数据库数据表中各个字段的数据类型映射为统一语义共享模型中通用数据类型,并根据映射后的通用数据类型,将源数据库数据表各个字段映射到HBase中间数据库的列簇中,各字段与列簇中的列一一对应,且列簇中的列名称与对应字段名称相同,进入步骤九;
步骤九,针对HBase中间数据库各列簇特点,为各列簇设置策略,所述策略包括压缩策略、辅助索引策略、事务策略、缓存策略或版本策略,进入步骤十;
步骤十,操作者检查映射关系和策略是否符合需求,符合则映射流程结束,否则执行步骤十一;
步骤十一,操作者根据实际需求,手动调整列簇划分、映射关系及各项策略;
所述数据映射模块建立统一语义共享模型与目标数据库映射关系的实现方法如下:
步骤一,判断目标数据库类型,类型为关系型数据库则转步骤四,为HBase数据库则执行步骤二;
步骤二,获取目标HBase数据库数据表结构,包括行键、列簇和列信息,进入步骤三;
步骤三,根据目标HBase数据库数据表列名,建立与HBase中间数据库数据表列之间的映射关系,进入步骤九;
步骤四,获取目标数据表结构,包括主键、字段和数据类型信息,进入步骤五;
步骤五,判断目标数据表是否为单一主键,是则执行下一步骤,为多主键则进入步骤七;
步骤六,将HBase中间数据库行键直接作为主键,进入步骤八;
步骤七,根据主键拼接分割符解析HBase中间数据库行键的拼接方式,建立行键与多主键的映射关系,进入步骤八;
步骤八,将目标字段数据类型映射到统一语义共享模型中通用数据类型,根据映射后的通用数据类型查找HBase中间数据库内对应的列簇,按字段名与列簇中列进行映射,进入步骤九;
步骤九,操作者检查映射关系是否符合需求,符合则映射流程结束,否则执行步骤十;
步骤十,操作者根据实际需求,手动调整映射关系,映射流程结束;
数据转换模块:根据源数据库与统一语义共享模型之间的映射关系,将来自源数据库中的数据转换为统一语义共享模型,输出给数据融合模块;根据统一语义共享模型和目标数据库之间的映射关系,将来自数据分发模块的数据转换为目标数据库中的数据,并发送给数据投递模块;
数据融合模块;将来自数据转换模块的统一语义共享模型与历史数据的统一语义共享模型进行融合,并将融合后的统一语义共享模型存储在HBase中间数据库;
数据分发模块:获取上次向目标数据库推送数据的时间戳t,从HBase中间数据库读取t之后且与t紧邻的时间戳对应的待交换字段数据,发送给数据转换模块;
数据投递模块:根据交换与共享的需求以及预设的推送时间间隔,将数据推送到相应目标数据库中。
2.根据权利要求1所述的大数据环境下基于HBase的异构数据库在线交换与共享系统,其特征在于:所述统一语义共享模型采用HBase中间数据库来实现,统一语义共享模型包括信息主体、信息主体属性以及通用数据类型,其中信息主体是对具有共性的一类信息数据进行描述的元信息,在实现形式上以HBase表来表示;信息主体属性,是对信息主体对应数据集合各维度信息进行描述的元信息,用HBase列和列簇来表示;通用数据类型用于描述各异构数据库的字段类型,HBase列簇按照通用数据类型来划分。
3.根据权利要求2所述的大数据环境下基于HBase的异构数据库在线交换与共享系统,其特征在于:所述HBase中间数据库设置四个列簇,即数字型列簇、字符型列簇、日期时间型列簇以及大字段型列簇。
4.根据权利要求1所述的大数据环境下基于HBase的异构数据库在线交换与共享系统,其特征在于:所述数据映射模块建立源数据库与统一语义共享模型映射关系的实现方法中,步骤八将源数据库数据表各个字段映射到HBase中间数据库列簇的映射原则为:数据类型为Int、Number、Float、Boolean的字段映射到数字型列簇中,数据类型为Char、String的字段映射到字符型列簇中,数据类型为Time、Date、Timestamp的字段映射到日期时间型列簇中,数据类型为Blob、Clob、Text的字段映射到大字段型列簇中。
5.根据权利要求1所述的大数据环境下基于HBase的异构数据库在线交换与共享系统,其特征在于:数据融合模块根据时间戳对比实现融合,如果源数据时间戳更新,则以源数据覆盖目标数据;反之,如果目标数据时间戳更新,则丢弃源数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710042815.XA CN107045534B (zh) | 2017-01-20 | 2017-01-20 | 大数据环境下基于HBase的异构数据库在线交换与共享系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710042815.XA CN107045534B (zh) | 2017-01-20 | 2017-01-20 | 大数据环境下基于HBase的异构数据库在线交换与共享系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107045534A CN107045534A (zh) | 2017-08-15 |
CN107045534B true CN107045534B (zh) | 2018-06-05 |
Family
ID=59543540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710042815.XA Active CN107045534B (zh) | 2017-01-20 | 2017-01-20 | 大数据环境下基于HBase的异构数据库在线交换与共享系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107045534B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019116B (zh) * | 2017-09-26 | 2023-07-07 | 南京中兴新软件有限责任公司 | 数据追溯方法、装置、数据处理设备及计算机存储介质 |
CN110019460A (zh) * | 2017-11-08 | 2019-07-16 | 广东亿迅科技有限公司 | 基于环形高速缓冲区的异构数据交换方法及装置 |
CN110069492A (zh) * | 2017-12-04 | 2019-07-30 | 复旦大学 | 民机技术出版物与培训数据集成方法 |
CN108108411A (zh) * | 2017-12-12 | 2018-06-01 | 苏州蜗牛数字科技股份有限公司 | 一种信息表文件的读取系统及方法 |
CN110019474B (zh) * | 2017-12-19 | 2022-03-04 | 北京金山云网络技术有限公司 | 异构数据库中的同义数据自动关联方法、装置及电子设备 |
CN108959611A (zh) * | 2018-07-16 | 2018-12-07 | 中国联合网络通信集团有限公司 | 数据割接方法及装置 |
CN109241019A (zh) * | 2018-08-02 | 2019-01-18 | 中国建设银行股份有限公司 | 不同存储介质间的数据交换系统、方法、装置和存储介质 |
CN109344186A (zh) * | 2018-08-23 | 2019-02-15 | 成都四方伟业软件股份有限公司 | 一种bi系统多源数据库跨源跨库融合系统和融合方法 |
CN111209319B (zh) * | 2018-11-21 | 2022-03-29 | 华为云计算技术有限公司 | 一种数据服务方法及装置 |
US11133940B2 (en) * | 2018-12-04 | 2021-09-28 | Journey.ai | Securing attestation using a zero-knowledge data management network |
CN109635583B (zh) * | 2018-12-27 | 2021-07-27 | 中国电子科技集团公司第三十研究所 | 一种基于数据安全标签的信息安全共享交换方法及系统 |
CN110096896B (zh) * | 2019-04-09 | 2021-06-11 | 中国航天系统科学与工程研究院 | 适于大数据融合与共享结果数据集敏感性评估方法及系统 |
CN110825775B (zh) * | 2019-11-04 | 2022-02-15 | 北京理工大学 | 一种Gaia系统中支持流数据与批数据交互的数据交换系统 |
CN111125054A (zh) * | 2019-11-21 | 2020-05-08 | 青岛聚好联科技有限公司 | 一种社区数据迁移的方法及装置 |
CN111143453A (zh) * | 2019-12-24 | 2020-05-12 | 济宁昊瀛天成大数据信息技术有限公司 | 一种工业大数据异构数据的并行处理方法 |
CN111309719B (zh) * | 2020-05-13 | 2020-08-21 | 深圳市赢时胜信息技术股份有限公司 | 一种对应HBase数据库的数据规范方法及系统 |
CN111625510A (zh) * | 2020-05-25 | 2020-09-04 | 广东电网有限责任公司 | 一种基于云映射的多源数据共享系统及方法 |
CN111683066B (zh) * | 2020-05-27 | 2023-06-23 | 平安养老保险股份有限公司 | 异构系统集成方法、装置、计算机设备和存储介质 |
CN111625520B (zh) * | 2020-06-08 | 2023-06-06 | 成都信息工程大学 | 一种通用的异构数据库字段类型的映射方法及系统 |
CN111930313B (zh) * | 2020-08-12 | 2023-12-22 | 中国银行股份有限公司 | 主机中数据关联访问的方法和装置 |
CN113890891A (zh) * | 2021-10-11 | 2022-01-04 | 国网电子商务有限公司 | 一种能源云网的数据共享交互方法和装置 |
CN113901031A (zh) * | 2021-10-21 | 2022-01-07 | 掌阅科技股份有限公司 | 数据库迁移方法、电子设备及存储介质 |
CN114979251B (zh) * | 2022-04-26 | 2023-08-11 | 广东海术云电子科技有限公司 | 一种跨系统协同服务异构数据交换系统 |
CN115086453B (zh) * | 2022-07-06 | 2024-03-26 | 中国人民银行清算总中心 | 数据交换方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697166A (zh) * | 2009-10-28 | 2010-04-21 | 浪潮电子信息产业股份有限公司 | 一种加速异构平台数据整合的方法 |
CN102081656A (zh) * | 2011-01-12 | 2011-06-01 | 江苏梦兰神彩科技发展有限公司 | 一种跨平台异构数据库的数据采集与分发系统 |
CN103631907A (zh) * | 2013-11-26 | 2014-03-12 | 中国科学院信息工程研究所 | 一种将关系型数据迁移至HBase的方法及系统 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
CN105354314A (zh) * | 2015-11-10 | 2016-02-24 | 中国建设银行股份有限公司 | 数据迁移方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9489445B2 (en) * | 2013-03-13 | 2016-11-08 | Nice Systems Ltd. | System and method for distributed categorization |
-
2017
- 2017-01-20 CN CN201710042815.XA patent/CN107045534B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697166A (zh) * | 2009-10-28 | 2010-04-21 | 浪潮电子信息产业股份有限公司 | 一种加速异构平台数据整合的方法 |
CN102081656A (zh) * | 2011-01-12 | 2011-06-01 | 江苏梦兰神彩科技发展有限公司 | 一种跨平台异构数据库的数据采集与分发系统 |
CN103631907A (zh) * | 2013-11-26 | 2014-03-12 | 中国科学院信息工程研究所 | 一种将关系型数据迁移至HBase的方法及系统 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
CN105354314A (zh) * | 2015-11-10 | 2016-02-24 | 中国建设银行股份有限公司 | 数据迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107045534A (zh) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045534B (zh) | 大数据环境下基于HBase的异构数据库在线交换与共享系统 | |
CN107122443B (zh) | 一种基于Spark SQL的分布式全文检索系统及方法 | |
CN103631907B (zh) | 一种将关系型数据迁移至HBase的方法及系统 | |
CN104346377B (zh) | 一种基于唯一标识的数据集成和交换方法 | |
CN100353325C (zh) | 实现共享内存数据库的方法及内存数据库系统 | |
CN104915450A (zh) | 一种基于HBase的大数据存储与检索方法及系统 | |
CN100590621C (zh) | 本体模式与关系数据库模式之间语义映射信息的编辑方法 | |
CN100594497C (zh) | 一种实现网络查询缓存的系统和查询方法 | |
CN107423422A (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN105912666A (zh) | 一种面向云平台的混合结构数据高性能存储、查询方法 | |
CN102163232B (zh) | 一种支持iec61850对象查询的sql接口实现方法 | |
CN106599040A (zh) | 一种面向云存储的分层索引方法与检索方法 | |
CN101710336A (zh) | 一种利用关系中间件加速数据处理的方法 | |
CN107656951B (zh) | 一种同步异构数据库系统中实时数据的方法 | |
CN102004775A (zh) | 一种基于智能搜索的福富企业搜索引擎技术 | |
CN105117587A (zh) | 医保领域中基于医疗大数据的智能分析方法 | |
CN108009270A (zh) | 一种基于分布式内存计算的文本检索方法 | |
CN107066546A (zh) | 一种基于mpp引擎的跨数据中心快速查询方法和系统 | |
CN102654878B (zh) | 嵌入式系统中分布式数据库的数据操作方法及板卡 | |
CN104391908A (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN106484815A (zh) | 一种基于海量数据类sql检索场景的自动识别优化方法 | |
CN116775605A (zh) | 一种基于人工智能的产业数据管理和共享平台 | |
Mitschang | Towards a unified view of design data and knowledge representation | |
Černjeka et al. | NoSQL document store translation to data vault based EDW | |
CN106021574A (zh) | 一种数据存储复制方法及其存储复制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |