CN104504008A - 一种基于嵌套的SQL到HBase的数据迁移算法 - Google Patents

一种基于嵌套的SQL到HBase的数据迁移算法 Download PDF

Info

Publication number
CN104504008A
CN104504008A CN201410757171.9A CN201410757171A CN104504008A CN 104504008 A CN104504008 A CN 104504008A CN 201410757171 A CN201410757171 A CN 201410757171A CN 104504008 A CN104504008 A CN 104504008A
Authority
CN
China
Prior art keywords
hbase
sql
nested
data migration
relational database
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.)
Granted
Application number
CN201410757171.9A
Other languages
English (en)
Other versions
CN104504008B (zh
Inventor
赵淦森
李立波
林巧英
王翔
程庆年
周冠宇
高晓杰
周尚勤
王欣明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China Normal University
GCI Science and Technology Co Ltd
Original Assignee
South China Normal University
GCI Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China Normal University, GCI Science and Technology Co Ltd filed Critical South China Normal University
Priority to CN201410757171.9A priority Critical patent/CN104504008B/zh
Publication of CN104504008A publication Critical patent/CN104504008A/zh
Application granted granted Critical
Publication of CN104504008B publication Critical patent/CN104504008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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

本发明公开了一种基于嵌套的SQL到HBase的数据迁移算法,包括有以下步骤:A、获取关系数据库中SQL表的外键依赖关系;B、将关系数据库中的SQL表进行单表转换,得到HBase表;C、根据关系数据库中SQL表的外键依赖关系,对相应的HBase表进行单层嵌套转换;D、根据关系数据库中SQL表的外键依赖关系以及上述单层嵌套转换结果,对相应的HBase表进行多层嵌套转换。本发明方法对SQL表进行单表转换,进而根据外键依赖关系对转换成的HBase表进行单、多层嵌套转换,从而成功地在不丢失外建依赖信息的情况下实现数据迁移,数据迁移后的HBase中查询一个表即可得到结果,无需连接多个表,加快了查询效率。本发明作为一种基于嵌套的SQL到HBase的数据迁移算法可广泛应用于大数据处理领域。

Description

一种基于嵌套的SQL到HBase的数据迁移算法
技术领域
本发明涉及大数据处理领域,尤其是一种基于嵌套的SQL到HBase的数据迁移算法。
背景技术
术语解释:
1关系数据库(Relational database):创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现在主流的关系数据库有Oracle、Sql Server、MySQL等。
2HBase:一个开源的非关系型面向列存储分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为 Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS(分布式文件系统)上,为 Hadoop 提供类似于BigTable规模的服务。因此,它可以容错地存储海量稀疏的数据。
3依赖关系:表示关系数据库中表与表之间存在外键依赖关系。
随着大数据时代的来临,关系型数据库在面临海量数据存储、查询及分析的挑战时,暴露出扩展性差、查询效率低以及难以应对高并发请求的不足。而NoSQL数据库因其不再遵从规范化设计的数据模型及有不同的底层架构设计,能很好地满足某些系统对海量数据处理的需求。目前,越来越多系统需要把数据从现有关系数据库迁移至NoSQL数据库。
HBase是目前最热门的NoSQL数据库之一,具备高扩展性、高性能、强一致性的特点。现在受到了越来越多企业青睐,并且出现了越来越多数据从关系数据库迁移到HBase的需求。而因为HBase的数据模式(即数据组织形式)与关系数据库的数据模式有巨大差异。HBase表模式并没有外键的设置,因此迁移后不能保留原关系数据库的外键依赖信息。
现有技术中,关于关系数据库到HBase的数据迁移系统的相关工具和研究方案数量上都不多,同时,每一种工具或者方案都有其较大的不足之处,特别是每一种方案都没有很好地考虑原关系数据库中外键依赖信息的保留问题。例如Chung W C等人提出了一种利用MapReduce实现对HBase上使用SQL语句进行查询的方案。方案具体方法是将关系数据库中的表映射为HBase中同一张表的不同列族,表中的属性映射为HBase中对应的列族的列,即同一张表的数据会放置在HBase表的同一个列族。串行地排列不同表的数据,同时设置了一个额外的列族用于存放用于表示关系数据库中表之间的外键依赖关系的信息。基于这种存储,系统可以将一个SQL查询转换成一个对HBase的查询请求序列组成的MapReduce任务,在HBase上实现查询并返回结果。这种方案的确是可以完成从关系数据库到HBase的模式迁移,并对之进行查询,但是这种方案存在着两个重大的弊端。1、以串行的方式排列表与表之间的数据,导致数据矩阵稀疏。2、当同一个SQL查询涉及多个join操作,MapReudce任务将需要频繁访问HBase表查询存放外键信息的列族,效率低下。
发明内容
为了解决上述技术问题,本发明的目的是:提供一种不丢失外键依赖信息的基于嵌套的SQL到HBase的数据迁移算法。
本发明所采用的技术方案是:一种基于嵌套的SQL到HBase的数据迁移算法,包括有以下步骤:
A、获取关系数据库中SQL表的外键依赖关系;
B、将关系数据库中的SQL表进行单表转换,得到HBase表;
C、根据关系数据库中SQL表的外键依赖关系,对相应的HBase表进行单层嵌套转换;
D、根据关系数据库中SQL表的外键依赖关系以及上述单层嵌套转换结果,对相应的HBase表进行多层嵌套转换。
进一步,所述步骤B中,优先对不存在外键依赖关系数据库中其他SQL表的SQL表进行单表转换。
进一步,所述步骤C中单层嵌套转换的结果用增加HBase表中的列族的方式来表示。
进一步,所述步骤D中多层嵌套转换的结果用增加HBase表中的列名前缀的方式来表示。
进一步,所述HBase表中可同时包括列族和列名前缀。
本发明的有益效果是: 本发明方法对SQL表进行单表转换,进而根据外键依赖关系对转换成的HBase表进行单层嵌套转换和多层嵌套转换,从而成功地在不丢失外建依赖信息的情况下将数据从关系数据库迁移到HBase,尤其是是原本在关系数据库中存在外键依赖关系的表都整合至HBase的一张表中,数据迁移后的HBase中查询一个表即可得到结果,而无需连接多个表,加快了查询效率。
附图说明
图1为本发明方法的步骤流程图;
图2为数据库内各表关系示意图;
图3为关系数据库到HBase迁移前后表状态示意图;
图4为student 数据库图模型示意图;
图5为单表转换示意图;
图6为单层嵌套转换示意图;
图7为多层嵌套转换示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
参照图1,一种基于嵌套的SQL到HBase的数据迁移算法,包括有以下步骤:
A、获取关系数据库中SQL表的外键依赖关系;
B、将关系数据库中的SQL表进行单表转换,得到HBase表;
C、根据关系数据库中SQL表的外键依赖关系,对相应的HBase表进行单层嵌套转换;
D、根据关系数据库中SQL表的外键依赖关系以及上述单层嵌套转换结果,对相应的HBase表进行多层嵌套转换。
首先,结合附图说明关系数据库中的外键依赖关系:
关系数据库可用一个有向无环图给予描述。 V表示图G中的点集,E表示图G中的边集。每一个在关系数据库中的表即为点集V中的一个点,而边表示表A有外键引用表B,这样图G可称为关系图。参照图2,点A,B,C代表表A,B,C,因为表A有外键spno引用表B,即表A依赖表B,因此有一条有向边指向表B,另外两条边同理。
为了加快在数据迁移后在HBase中的查询效率,类似于反规范化中的增加冗余列的方式,本发明中将外键依赖关系转换为嵌套关系,在存在外键依赖关系的两个表中,让被依赖表的数据添加进依赖表中。
参照图3,表A依赖表B,则可以称表A嵌套表B,同理,表B 嵌套表C,那么表A与表B的关系我们称为“单层嵌套”,表A与表C的关系我们称为“多层嵌套”。而因为表A同时也直接依赖表C,所以表A与表C的关系既有单层嵌套也有多层嵌套。因此,在转换后的HBase数据库中,会有相对应的三个表,HTable-A、HTable-B、HTable-C,即在原关系数据库每一个表都有相应的一个迁移后的HTable相对应。而根据它们之间的嵌套关系,HTable-A会包含HTable-B及HTable-C的信息。
对于单层嵌套,利用增加HBase中的列族(family)的方式来表示;对于多层嵌套,利用增加HBase中的列名(qualifier)前缀的方式来表示。上述方式是的HBase表可以很好地代替SQL表,存储器本身的数据并对于每一个SQL语句,无论它包括有多少个连接条件,都只需要在钱以后的HBase中查询一个表即可得到结果,从而加快了查询效率。
在转换完成之后,对应于迁移后的表的列族数只是比原关系数据库的表的外键数多1,这将保证迁移后的表的列族数不会过多而导致HBase的性能下降。
参照图4的数据库模型,将其中数据库迁移到HBase,经过单表转换、单层嵌套转换和多层嵌套转换的步骤:
参照图5单表转换示意图,将SQL表“speciality”转换成HBase表“speciality”。参照图6单层嵌套转换示意图,利用增加HBase中的列族的方式来表示。参照图7多层嵌套转换示意图,利用增加HBase中的列名前缀的方式来表示,例如:
speciality:department.dno=“5001” 。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (5)

1.一种基于嵌套的SQL到HBase的数据迁移算法,其特征在于:包括有以下步骤:
A、获取关系数据库中SQL表的外键依赖关系;
B、将关系数据库中的SQL表进行单表转换,得到HBase表;
C、根据关系数据库中SQL表的外键依赖关系,对相应的HBase表进行单层嵌套转换;
D、根据关系数据库中SQL表的外键依赖关系以及上述单层嵌套转换结果,对相应的HBase表进行多层嵌套转换。
2.根据权利要求1所述的一种基于嵌套的SQL到HBase的数据迁移算法,其特征在于:所述步骤B中,优先对不存在外键依赖关系数据库中其他SQL表的SQL表进行单表转换。
3.根据权利要求1所述的一种基于嵌套的SQL到HBase的数据迁移算法,其特征在于:所述步骤C中单层嵌套转换的结果用增加HBase表中的列族的方式来表示。
4.根据权利要求1所述的一种基于嵌套的SQL到HBase的数据迁移算法,其特征在于:所述步骤D中多层嵌套转换的结果用增加HBase表中的列名前缀的方式来表示。
5.根据权利要求4所述的一种基于嵌套的SQL到HBase的数据迁移算法,其特征在于:所述HBase表中可同时包括列族和列名前缀。
CN201410757171.9A 2014-12-10 2014-12-10 一种基于嵌套的SQL到HBase的数据迁移算法 Active CN104504008B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410757171.9A CN104504008B (zh) 2014-12-10 2014-12-10 一种基于嵌套的SQL到HBase的数据迁移算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410757171.9A CN104504008B (zh) 2014-12-10 2014-12-10 一种基于嵌套的SQL到HBase的数据迁移算法

Publications (2)

Publication Number Publication Date
CN104504008A true CN104504008A (zh) 2015-04-08
CN104504008B CN104504008B (zh) 2018-10-02

Family

ID=52945406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410757171.9A Active CN104504008B (zh) 2014-12-10 2014-12-10 一种基于嵌套的SQL到HBase的数据迁移算法

Country Status (1)

Country Link
CN (1) CN104504008B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183824A (zh) * 2015-08-28 2015-12-23 重庆简悉大数据科技有限公司 数据整合方法及装置
CN106445727A (zh) * 2015-08-07 2017-02-22 中国移动通信集团重庆有限公司 数据备份和恢复方法及系统
CN106933859A (zh) * 2015-12-30 2017-07-07 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN109376153A (zh) * 2018-09-27 2019-02-22 浪潮软件集团有限公司 一种基于NiFi的数据写入图数据库的系统及方法
CN110019135A (zh) * 2017-12-27 2019-07-16 航天信息股份有限公司 一种将关系型数据迁移至HBase数据库的方法及装置
US10897483B2 (en) 2018-08-10 2021-01-19 International Business Machines Corporation Intrusion detection system for automated determination of IP addresses
US11036698B2 (en) 2018-12-06 2021-06-15 International Business Machines Corporation Non-relational database coprocessor for reading raw data files copied from relational databases

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1896995A1 (en) * 2005-06-24 2008-03-12 Orbital Technologies Inc. System and method for translating between relational database queries and multidimensional database queries
CN102308297A (zh) * 2011-07-13 2012-01-04 华为技术有限公司 一种数据迁移方法、数据迁移装置及数据迁移系统
CN103631907A (zh) * 2013-11-26 2014-03-12 中国科学院信息工程研究所 一种将关系型数据迁移至HBase的方法及系统
CN103810275A (zh) * 2014-02-13 2014-05-21 清华大学 用于非关系与关系型数据库间数据交互的方法和装置
CN104123392A (zh) * 2014-08-11 2014-10-29 吉林禹硕动漫游戏科技股份有限公司 一种关系型数据库迁移到HBase数据库的工具和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1896995A1 (en) * 2005-06-24 2008-03-12 Orbital Technologies Inc. System and method for translating between relational database queries and multidimensional database queries
CN102308297A (zh) * 2011-07-13 2012-01-04 华为技术有限公司 一种数据迁移方法、数据迁移装置及数据迁移系统
CN103631907A (zh) * 2013-11-26 2014-03-12 中国科学院信息工程研究所 一种将关系型数据迁移至HBase的方法及系统
CN103810275A (zh) * 2014-02-13 2014-05-21 清华大学 用于非关系与关系型数据库间数据交互的方法和装置
CN104123392A (zh) * 2014-08-11 2014-10-29 吉林禹硕动漫游戏科技股份有限公司 一种关系型数据库迁移到HBase数据库的工具和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡晓鹏 等: "一种基于XML映射规则的数据迁移方法设计和实现", 《计算机应用》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445727A (zh) * 2015-08-07 2017-02-22 中国移动通信集团重庆有限公司 数据备份和恢复方法及系统
CN105183824A (zh) * 2015-08-28 2015-12-23 重庆简悉大数据科技有限公司 数据整合方法及装置
CN105183824B (zh) * 2015-08-28 2020-03-17 重庆简悉大数据科技有限公司 数据整合方法及装置
CN106933859A (zh) * 2015-12-30 2017-07-07 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN106933859B (zh) * 2015-12-30 2020-10-20 中国移动通信集团公司 一种医疗数据的迁移方法和装置
CN110019135A (zh) * 2017-12-27 2019-07-16 航天信息股份有限公司 一种将关系型数据迁移至HBase数据库的方法及装置
US10897483B2 (en) 2018-08-10 2021-01-19 International Business Machines Corporation Intrusion detection system for automated determination of IP addresses
CN109376153A (zh) * 2018-09-27 2019-02-22 浪潮软件集团有限公司 一种基于NiFi的数据写入图数据库的系统及方法
CN109376153B (zh) * 2018-09-27 2021-05-18 浪潮软件股份有限公司 一种基于NiFi的数据写入图数据库的系统及方法
US11036698B2 (en) 2018-12-06 2021-06-15 International Business Machines Corporation Non-relational database coprocessor for reading raw data files copied from relational databases

Also Published As

Publication number Publication date
CN104504008B (zh) 2018-10-02

Similar Documents

Publication Publication Date Title
CN104504008A (zh) 一种基于嵌套的SQL到HBase的数据迁移算法
Zhao et al. Schema conversion model of SQL database to NoSQL
CN105653609B (zh) 基于内存的数据处理方法及装置
CN104899295B (zh) 一种异构数据源数据关联分析方法
CN104199986A (zh) 基于hbase和geohash的矢量数据空间索引方法
CN105138661A (zh) 一种基于Hadoop的网络安全日志k-means聚类分析系统及方法
CN103116625A (zh) 一种基于Hadoop的海量RDF数据分布式查询处理方法
CN104123392A (zh) 一种关系型数据库迁移到HBase数据库的工具和方法
CN106126601A (zh) 一种社保大数据分布式预处理方法及系统
CN103744960A (zh) 一种基于云平台的元数据索引模型及方法
CN102752372A (zh) 一种基于文件的数据库同步方法
Ngu et al. B+-tree construction on massive data with Hadoop
CN107247799A (zh) 兼容多种大数据存储的数据处理方法、系统及其建模方法
Hasani et al. Lambda architecture for real time big data analytic
CN105205105A (zh) 一种基于storm的数据ETL系统及处理方法
Kumar et al. Critical analysis of database management using newsql
CN104462351B (zh) 一种面向MapReduce范型的数据查询模型与方法
CN104216961A (zh) 一种数据处理方法和装置
JP2016539449A (ja) データベース実現方法
CN110674154A (zh) 一种基于Spark的对Hive中数据进行插入、更新和删除的方法
CN104504001A (zh) 面向海量分布式关系数据库的游标构造方法
CN106528898A (zh) 将非关系型数据库数据转换到关系型数据库的方法及装置
CN104268298A (zh) 一种创建数据库索引及其查询的方法
CN104021210B (zh) 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法
CN104008209B (zh) 以GeoJSON格式结构化方式存储地理数据的MongoDB集群的地理数据读写方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant