关系型数据库与hbase间的数据迁移介绍

上传人:第*** 文档编号:49189319 上传时间:2018-07-25 格式:PPTX 页数:18 大小:907.34KB
返回 下载 相关 举报
关系型数据库与hbase间的数据迁移介绍_第1页
第1页 / 共18页
关系型数据库与hbase间的数据迁移介绍_第2页
第2页 / 共18页
关系型数据库与hbase间的数据迁移介绍_第3页
第3页 / 共18页
关系型数据库与hbase间的数据迁移介绍_第4页
第4页 / 共18页
关系型数据库与hbase间的数据迁移介绍_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《关系型数据库与hbase间的数据迁移介绍》由会员分享,可在线阅读,更多相关《关系型数据库与hbase间的数据迁移介绍(18页珍藏版)》请在金锄头文库上搜索。

1、数据迁移数据迁移 HBase数据库迁移工具的设计与实现同济大学 杨寒冰 2013 Kettle工具 Apache sqoop背景 互联网应用朝着数据海量化,用户访问高并行化的方向发展,应用分布式数据库可以解决这一问题。其中HBase已经成为目前最热门的NoSQL数据库。 如何将原先存储在关系型数据库中的数据迁移到HBase中成为当前非常热门的问题。1.1.数据库数据库迁移迁移技术研究技术研究现状现状是否支持SQL Server-关系数据库库SQL Server-Hbase表模式数据类型事务存储过程常用软件SQL server migration assistant等 第三方软件Sqoop,Ke

2、ttle等由于各类关系型数据库之间的高度相似性,使得在这类数据库之间迁移变得相对简单。从SQL Server向其他例如Oracle、MySQL等关系型数据库迁移时,已经有丰富的自动化或者半自动化的工具来帮助开发人员完成整个迁移工作。从关系型数据库向HBase迁移,目前必须由开发人员手工地完成从表结构迁移直到数据内容迁移这一系列复杂的工作。HbaseHbase数据迁移工具数据迁移工具SqoopKettle来源Apache项目(2009)开源ETL(extract, transform and load)主要作用在结构化数据存储与Hadoop/HBase之间进行数据交换优点支持多种关系数据库的迁移

3、图形化界面迁移缺点只能复制数据,不能迁移表模式1.需要手动指定表与表之间 以及数据类型的对应关系。 2.只是将原有的表模式复制 ,在数据查询时会带来性能 上的下降。可以看出,HBase中的表结构具有稀疏的特性,其结构同传统的关系型数据库有着很大的差异,因此在为应用程序设计数据库中所有表的结构和关系时也有许多不同之处,开发人员需要手工地重新设计HBase数据库中的表模式。2.2.迁移迁移工具工具的的设计设计HBase数据库特点:单元格是有版本的(time-stamp);数据行是有序的(表中的行通过行关键字按字典序排序);只要列族存在,列便可以由客户端随时添加。除此之外,HBase的表和RDBMS

4、的表类似。在HBase中查询数据:全表扫描:对整张表进行扫描,所以花费的时间最长,效率也最差;行键扫描:根据所给的键值取得一张表中行键对应的单条数据,是所有查询方法中最快的查询方式;区间扫描:介于两者之间。主要流程主要流程解析器(SchemaParser):解析由外部工具从传统RDBMS数据库导出的表模式定义文档。表模式转换器(Convertor):把传统RDBMS的表模式定义转换成HBase的表模式。表模式适配器(Adapter):保存、读取已经由表模式转换器所转换过的表模式定义到指定的文件中,并为其他模块查找新的表模式定义提供接口。数据表管理器(TableManager):把存储在传统RD

5、BMS数据库中的数据迁移到HBase数据库中对应新定义的表中。2.12.1表模式预处理表模式预处理即是把表模式从关系型数据库迁移到HBase数据库(根据原有关系型数据库表模式在HBase中重新设计表模式)的过程。一般步骤:依照传统关系型数据库的设计方法对所有表进行初步设计;对表模式进行BCNF分解(减少表间数据冗余和依赖关系);定义BCNF范式:若关系模式R是第三范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。即在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖。算法1(BCNF分解)若R不属于BCNF,则按如下算法将R分解成一组BCNF模

6、式。通过范式分解,能够消去非主属性对键的部分函数依赖,非主属性对键的传递函数依赖和主属性对键的传递函数依赖。2.22.2表模式表模式变换方法变换方法 基本变换 内嵌变换 分割变换 内联变换2.2.1 基本变换(1)适用场景以传统关系数据库中表设计模式定义的表变换成HBase中的表。(2)变换方法Goods表为表1,把表1的表名作为HBase中对应的表名,表1也添加到这个表的列族中。之后把表1的主键作为对应表的行键。最后把表1中定义的所有属性添加到对应表的列族1中。(3)有效性在空间效率和查询效率上都相同。2.2.2 内嵌变换查询表1中的某一行时就能够得到同这一行所关联的所有表2中的数据,这样就

7、可以避免表1和表2的连接查询。Goods表为表1、Color表为表2,表1的表名作为HBase中对应的表名;把表1和表2添加到列族中。表1的主键作为对应表的行键,随后把表1中定义的所有属性添加到对应表的列族1中,把表2中所有同表1这一行有关的所有行属性都放入到列族2中。根据情况删除表2。在变换中对子表进行了冗余存储,会消耗稍多的存储空间,但提高了由主表到子表的连接查询的效率。2.2.3 分割变换当从表3与其余表都存在1对1、1对多或多对多的关系时,可分割表,按照映射关系把表3中的每一行内嵌到对应的表中。当查询表1或2中的某行时就能得到同这一行所关联的所有表3的数据,避免表3同其余与之有联系的所

8、有表之间的连接查询。表1表2表3对应 表名把表1和表2分 别添加到对应 表的列族中,表 1和表2的主键 分别作为对应 表的行键。把表3中所有 同表1或表2 这一行有关 的所有行属 性都分别放 入到对应 表 的列族2中。由于在变换过 程中对子表进行了冗余存储,消耗稍多的存储空间,但提高了由任意主表到子表的连接查询的效率。2.2.4 内联变换从表1到表2存在1对1、1对多或多对多关系,且表2到表3也存在这些关系时,把表3作为表1的内联表。当查询表1中的某一行时,得到同这一行通过表2所间接关联的所有表3中的数据,这样就可以避免表1、表2和表3这三张表之间的连接查询。表1:Goods(主表)、表2:M

9、odel、表3:GoodsRelated。把表3中所有同表1这一行通过表2有间接关联的所有行属性都放入到列族2中。在变换中对子表进行了冗余存储,会消耗稍多的存储空间,但提高了由间接主表到子表的连接查询的效率选择变换类型令在关系型数据库中原有的表集合为A,迁移后的在HBase数据库中的表集合为B,总的迁移过程采用的决策图如图所示。Kettle转换工具特殊目标数据源支持 o把数据写入到Cube o把数据写入XML 支持多种查询 o调用数据库存储过程 o基本的数据库查询 o判断表以及列、操作系统文件是否存在 o从URL接收查询 o使用Web服务查询信息 o使用数据流中的值作为参数来执行一个数据库查询 o流查询:从转换中其他流里查询值 转换功能 o值映射、分组、去重、拆分字段、行列转换 o复制行Kettle 是一款开源的、元数据驱动的ETL工具 集。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号