[发明专利]基于HBase的高效存储方法及系统有效
申请号: | 201410188339.9 | 申请日: | 2014-05-06 |
公开(公告)号: | CN104008134B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 向智宇;郝俊瑞;高汉松;郭嘉;许德玮;王静 | 申请(专利权)人: | 武汉邮电科学研究院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 魏殿绅,庞炳良 |
地址: | 430074 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 hbase 高效 存储 方法 系统 | ||
技术领域
本发明涉及大数据领域,具体是涉及一种基于HBase的高效存储方法及系统。
背景技术
随着移动互联网、智能终端、物联网、云计算以及智慧城市的普及,人们逐渐进入了“大数据”时代。美国互联网数据中心指出,互联网上的数据每年将增长50%,每两年便将翻一番,而目前世界上90%以上的数据是最近几年才产生的。除了互联网上发布的信息,全世界的工业设备、汽车、电表上有着无数的数码传感器,随时测量和传递着有关位置、运动、震动、温度、湿度乃至空气中化学物质的变化,也产生了海量的数据信息。
大数据是规模非常巨大和复杂的数据集,数据量达到拍字节、艾字节或泽字节的级别后传统数据库管理工具处理起来面临很多问题,如获取、存储、检索和分析等。大数据引发了一些问题,如对数据库高并发读写要求、对海量数据的高效率存储和访问需求、对数据库高可扩展性和高可用性的需求,传统数据库以及数据仓库技术显得力不从心。
Hadoop是由Apache软件基金会维护的一个能够对大量数据进行分布式处理的软件框架,Hadoop带来了廉价的处理大数据的能力。Hadoop是一个庞大的生态系统,为处理大数据提供了各种工具和平台。在Hadoop生态系统中,HBase是一个高可靠性、高性能、面向列、可伸缩的分布式非关系型数据库系统,可快速在海量数据中定位所需结果。
HBase作为列存储数据库,表中的每个列,都归属于某个列族,列族是表的结构的一部分,必须在使用表之前定义,而列的数量以及类型则无需定义,因为它不属于表的结构。一个列族中可以包含多个列,这些列以其所在列族作为前缀命名,格式是<列族>:<列>。HBase中数据的读写都是在列族层面进行。
HBase中的用户数据都以HFile格式存储在Hadoop文件系统上,HBase专有的存储格式参见图1所示,HFile格式中的数据块是实际存放用户数据的地方,每个数据块由一个防止数据损坏的随机数字开头,和其后紧接的若干个键值对拼接而成,键值对是HBase中不可再分的最小数据单元。
参见图2所示,键值对是一个字节数组,包含了很多项,并且有固定的结构,其具体结构组成如下:键值对开始是两个固定长度的数值,分别表示键部分的长度和值部分的长度;紧接着是键部分,开始是固定2字节长度的数值,表示行键的长度;接着是行键值;然后是固定1字节长度的数值,表示列族名的长度;然后是列族名和列名;然后是固定8字节长度的时间戳和固定1字节长度的类型,标记该键值对是插入操作还是删除操作;最后是值部分存放该列的值。
从图2中可以算出每个键值对的固定部分有22个字节(假定列族名和列名都是1个字节),如果按照行键值长度一般最少10个字节,那么一个键值对最少有32字节以上,而此时该键值对中的值部分却只存储了一个列的值,也就是说在HFile的存储中,一行记录的每个列都会存储为一个键值对。假如一个表中有N个列,N为正整数,那么存储这个表的一行数据就需要N个这样的键值对,固定消耗大约在(32*N)字节,而这些键值对中的键部分又基本上是相同的,这就在存储空间上造成极大的浪费,同时对HBase的吞吐性能也会造成一定影响。
以如下结构化模型定义的表结构为例:
{列1(主键):列1数据类型;列2:列2数据类型;列3:列3数据类型;列4:列4数据类型}
该表有4列,其中第一列是主键。
如果使用HBase固有方式存储该表,定义列族为F1,并将这些列都放在F1中,则例子中结构化表和HBase存储关系为:
列1对应行键;
列2对应<F1:C2>列;
列3对应<F1:C3>列;
列4对应<F1:C4>列;
由此可知,该结构化表的一行记录在HBase中存储需要3个键值对,其存储结构参见图3所示,可以看到,对例子中的一行记录来说,需要3个键值对来存储,固定长度开销约为(32*3)字节,当海量记录存储时,就会有大量固定长度的存储开销,这样既浪费存储空间,又影响存储吞吐性能。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于HBase的高效存储方法及系统,能有效节省HBase的存储空间,提高HBase的吞吐性能。
本发明提供一种基于HBase的高效存储方法,包括以下步骤:
步骤101、输入一行待存储到目标表的用户数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉邮电科学研究院,未经武汉邮电科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410188339.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种治疗溃烂病的药物
- 下一篇:治疗眼疾的中药