[发明专利]一种基于HBase的Lob数据的存储方法及装置有效

专利信息
申请号: 201510144162.7 申请日: 2015-03-30
公开(公告)号: CN104750815B 公开(公告)日: 2017-11-03
发明(设计)人: 贾德星;徐正礼;魏金雷 申请(专利权)人: 浪潮集团有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 济南信达专利事务所有限公司37100 代理人: 李世喆
地址: 250100 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 hbase lob 数据 存储 方法 装置
【说明书】:

技术领域

发明涉及计算机技术领域,特别涉及一种基于HBase的Lob数据的存储方法及装置。

背景技术

HBase(分布式存储系统)是一个分布式、面向列的开源数据库,可实现几十亿、上百亿的数据存储。当对处理大对象(Large Object,LOB)数据,如文档、音乐、视频等数据进行存储时,可能会存在如下问题:

1、HBase在进行底层存储时是以KeyValue形式进行存储的,当客户端向服务器端更新数据时,服务器端先把待更新的KeyValue对象存储在内存(MemStore)中,当内存中的存储的KeyValue对象达到阈值时,再将该达到阈值的KeyValue对象存储为StoreFiel,因此,如果KeyValue值过大,容易造成服务器端内存溢出;

2、HBase表在进行数据存储时,会根据行关键字(RowKey)拆分为多个分区(Region),每个分区包括多个HFile文件。而由于Lob数据列值很大,所以HFile文件容易超出分区限制,从而进行拆分并形成大量的分区,而每个分区只有很少的行,过多的分区数量使得对HBase表数据的扫描(Scan)效率比较低。

针对上述问题,在客户端需要存储Lob数据时往往会结合HDFS(分布式文件系统)进行辅助,客户端将Lob数据存储到HDFS中,而将其他结构化数据存储到HBase中。由于客户端在针对Lob数据和其他结构化数据存储时,需要利用这两种数据库(HBase和HDFS)分别进行存储,需要客户端分别针对每一种数据库的存储方式进行大量编程处理,因此,该存储方式实用性较低。

发明内容

有鉴于此,本发明提供一种基于HBase的Lob数据的存储方法及装置,在保证实用性的前提下实现大对象数据存储的问题。

本发明提供了一种基于HBase的Lob数据的存储方法,根据HTable对象扩展LobTable对象;设置用于识别Lob数据的Qualifier;设置HBase所对应的服务器向HDFS转存数据的转存进制,还包括:

客户端在向LobTable对象发送存储请求时,LobTable在确定所述存储请求中包括Qualifier时,确定所述存储请求携带Lob数据,则创建LobPut对象;

客户端将所述存储请求中携带的Lob数据写入LobPut对象提供的Lob输出流中;

LobPut对象接收写入了Lob数据的Lob输出流,并在每次接收到的满足第一阈值的数据块时,将满足该第一阈值的数据块生成相应的Put对象,其中,Put对象包括相应数据块在Lob数据中的块号;

将生成的Put对象提交至服务器端,以使服务器端根据提交的Put对象中所包括的块号的顺序,利用设置的转存机制,将各个Put对象对应的数据块依次转存至HDFS的Lob文件中。

优选地,

进一步包括:客户端调用LobTable对象向服务器端提交scan请求,其中,所述查询请求用于查询服务器端的Lob数据,并接收服务器端针对所述查询请求返回的Result,所述Result包括所述查询请求所查询的Lob数据的Row Key;LobTable对象将所述Result封装为LobResult对象,LobResult对象根据所查询的Lob数据的Row Key生成LobGet对象,以使LobGet对象根据所查询的Lob数据所对应的每一块数据块在Lob数据中的起始地址向服务器端分块读取Lob数据。

本发明还提供了一种基于HBase的大对象数据的存储方法,创建LobCorprocessor,设置HBase所对应的服务器向HDFS转存数据的转存进制,还包括:

服务器端利用Lob Corprocessor分块接收客户端分块提交的各个Put对象,其中,每个Put对象包括相应数据块在其对应Lob数据中的块号;

根据首次接收到的Put对象所对应数据块,确定HDFS系统的Lob文件中当前是否包括与该数据块相关的数据,若是,利用设置的转存机制将首次接收到的Put对象所对应的数据块,对与其相关的数据进行更新;若否,利用设置的转存机制,将首次接收到的Put对象所对应的数据块,创建至Lob文件中;

并根据提交的Put对象中所包括的块号的顺序,利用设置的转存机制,将后续接收到的Put对象分别对应的数据块转存入Lob文件中,并根据每个数据块的块号将各个数据块组合为Lob数据。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮集团有限公司,未经浪潮集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510144162.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top