当前位置:首页 期刊杂志

研究Hbaes数据库迁移工具的设计与实现

时间:2024-06-01

孙瑜 李昆菊 谢晓竹

摘要:互联网时代迅速来临,开始出现数据海量化、用户访问高量化的局面,但是数据库在这个过程中就承受了巨大的压力,也就不得不有了更高的性能要求,Hbaes数据可就可以解决这一问题。本文主要是从Hbaes数据库的特点开始论述,研究了Hbaes数据库工具的设计与实现。

关键词:Hbaes数据库迁移工具;设计方案;研究现状

中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2017)04-0209-02

随着互联网的进一步的普及,人们利用互联网进行社交,那么如何保证在高访问的前提下使数据库仍旧保持稳定,具有可靠性是当先应该解决的问题。那么Hbaes就是一个分布式的、面向列的数据库,存在巨大的优势,使得越来越多的网页应用都开始重新构建数据中心。但是Hbaes数据库的表面结构十分疏松,与传统的数据库结构有很大的差异性,数据库的表结构都是人工重新输入的,在开发的过程中就耗费了巨大的人力物力,每一次更新都需要重复这个过程,在迁移的时候非常的不方便,于是就需要新的技术手段将工作人员从不断重复的迁移过程中解放出来。

1 Hbaes数据库的设计理念

(1)Hbaes数据库是一种有版本的大单元格,数据行是有序的,只要是有列簇的存在就可以随时随地的在客户端上添加列。此外,此数据库利用极小的开销管理较宽的稀疏表,是Hbaes数据库最大的特点。

(2)利用Hbaes数据库查询数据时,输入不同的请求会有不同的几种情况。在全面扫描的时候需要扫描整个表,大量的时间被花费掉,使得效率变得非常的差;还有就是行键扫描是利用键的存在的数据进行对比,是效率最高也是方法最简单的一个;而区间扫描则是介于两者之间的,不快也不慢。并不是所有的查询数据的方法都可以在Hbaes数据库中使用的,在具体的操作过程中就可以择优录取了。

2 Hbaes数据库迁移工具的具体实现的方法

(1)数据类型映射。数据类型的定义方式在传统的数据库中形式是多种多样的但是在Hbaes数据库中只有一些以字节流的方式存在的类型,相对而言类型会显得小一些。但是Hbaes数据库对一般的数据类型都支持转化,通过工具的转化就可以方便的读取和使用这些数据了,也就是一些略微复杂的数据需要多进行几次转化才能够进一步的使用。

(2)功能模块的划分。Hbaes数据库根据具体实现的功能的不同大体分成了四个具体的模块。一是解析器,这就是一个将传统的数据库中的一些文件利用外部工具导出的表模式的定义文档,也可以被称为是一个具体代码的JAVE接口。二是一个表模式转换器,这个模块就是将传统的表模式定义转换成HBAES数据库中的表模式,任何一种转化方式都是适用的。第三则是是表模式适配器,这个模块就是将一些表模式的定义读取或者是转化过来,并且为其他的模式寻找一些接口。四是数据表管理器,就是将传统的数据库中的数据迁移到Hbaes数据库中。

API中的Put可以说是Hbaes数据库中一种最简单的方式,它的使用方法也是比较好学习的,尽管在大部分方式上它并非是最有效的,只要是需要在规定的时间内将数量极其多的数据输入到Hbae数据库中时,效率的问题就体现出来了。一般情况下,需要处理的数据都是巨大的,效率低下的数据库根本完不成任务,同时这也就是Hbae数据库与其它数据库相比之下的优点。在一个项目开始之前,选择什么样的数据库就应该被提上日程,免得因为数据库的使用而完不成任务或者是其他严重的性能问题。

在Hbae数据库可以大量的将数据载入进去,这个功能就是bulk load。这个功能其实是一个简单的工具,利用MapReduce Job来实现数据的海量输入,使得数据库中的一个文件格式生成一个数据表,将这个数据表加载到正在运行中的集群中。这个工具在通常情况下都是很好用的,只不过在导入其他的数据格式时就会利用编程来生成数据,MapReduce就是处理海量数据中最有效的一个方法,也是最常用的一个方法。即使是使用MapReduce数据处理的方法,数据库中的海量数据也会变得十分繁重,只要有一点处理不当就会使数据库运行出现问题。

3 Hbaes数据的四维数据模型

(1)行键。每行都有一个唯一的行键,行键没有数据类型,它内部被认为是一个字节数组。

(2)列簇。数列在行中被组织成列簇,每行都有一个相同的列簇,但是在行之间,相同的列簇不需要有相同的列修饰符。在引擎之中,Hbaes数据库将列簇存储在自己的数据库文件之中,所以就需要事先被定义,改变列簇并不容易。

(3)列修饰符。列簇定义真实的列,被称之为列修饰符,也可以说列修饰符就是列本身。

(4)版本。每列都可以有一个可配置的版本数量,你可以通过列修饰符的制定版本获取数据

4 Hbaes数据库的使用

(1)首先通过一个行键获取另一个指定的行,它是由一个或者是多个列簇组成的,每一个列簇或者是多个列修饰符,每列又可以有一个或者是多个的版本,为了获取指定的数据,就需要知道行键,列簇。列修饰符和版本,在Hbaes设计模型时对考虑数据是十分有帮助的。可以通过他们的行键,或者一系列行键的表扫描,或者是使用map-reduce进行批操作获得Hbaes数据。

(2)其次是数据的及时获取。key是我们所提到过的行键,value是列簇的集合。可以通过key检索到value,或者换句话说,可以通过行键“得到”行,或者通过给定起始和终止行键检索一系列行,这就是的表扫描。但是不能实时的查询一个列的值,这也就需要对行键进行设计。

(3)行键的方式就取决于想怎样存取那些行。如果想以用户为基础存储数据,那么一个策略是利用字节队列在HBase中存储行键,所以就可以创建一个用户ID的,然后在后面附上时间。使用有两个重点一是它能够将value分散开,数据能够分布式地通过簇,二是它确保key的长度是一致的,以更加容易在表扫描中使用。

(4)将已经存在的一些关系型的数据库中的数据导入到Hbae数据库中就是数据合并应用中的最常见的一种场景。这个操作是非常简单的,比如就可以直接从一个单独的客户操作数据库中获取所需要的数据,然后利用Hbae数据库API中的Put方法直接就可以存入了。

5 Hbase数据库的使用劣勢

在数据库中算得上是复杂麻烦的任务就是书库合并了,只要没有生成Hbae数据库中的内部文件,并且是可以直接加载的,这个问题就得不到解决。尽管Hbae数据库的代入速度在其他数据库中可以是快速的,不过在没有合适的配置的前提下,写作操作也不会太顺畅,可能会受到堵塞。同时繁重的写作任务也可能会引发另一个问题,就是将数据写入到了几个相同的族群处理器,只要出现了这样的问题就会使得整个集群的不平衡,直接带来的后果就是使输入的速度和效率降低。

6 结语

Hbaes数据库进行迁移市有太多的不便,就使得整个的迁移过程变得有些复杂。但是不可否认的是Hbaes数据库有与其他数据库不可相比的优点,虽然也存在一些缺带点,这也就要求这在未来的使用中对HBEAS数据要进行更深一步的改进。

参考文献

[1]舒昝,张晓冉.面向异构类型的大数据查询优化研究[J].自动化与仪器仪表,2016,04:199-200.

[2]宋春红,王佳斌,郑力新.一种MySQL到HBase的迁移策略的研究与实现[J].微型机与应用,2016,13:82-85+89.

[3]张华东,邵秀丽,吴军,王志刚.SQL Server数据库到HBase数据库的模式转换和数据迁移研究[J].智能计算机与应用,2016,05:24-30+34.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!