一种HBase数据库的数据管理方法及系统技术方案

技术编号:15398681 阅读:167 留言:0更新日期:2017-05-22 15:25
本发明专利技术公开一种HBase数据库的数据管理方法及系统,管理方法包括:响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;向保存在HDFS文件系统中的容器文件写入所述大字段数据块;将所述大字段数据块在所述HDFS文件系统中的位置作为索引,将所述待存储HBase记录中的大字段的内容替换为所述索引;在HBase中保存所述待存储HBase记录。本发明专利技术可以很好地发挥HBase及HDFS的优势,而回避HBase对大字段处理的不足,以及HDFS在存储小文件时资源消耗过大的不足,较好地满足了业务的需要,在实际应用中取得了良好的效果。

Data management method and system for HBase database

System and data management method of the invention discloses a HBase database management method, including: the response data generated for a write request, stored in the HBase database to store HBase records; the to be included in the record store HBase content exceeds the preset threshold value of the word size field as a big field, extracting the the contents of the fields generated large field data blocks; to save the container file in HDFS file system written in the large field data block; position the large field data blocks in the HDFS file system as the index, to be large field stores in the HBase record content is replaced by the save the index; in the HBase to store HBase records. The invention can play very well on HBase and HDFS advantages, while avoiding HBase on large field processing, and HDFS in the storage of small files when the excessive consumption of resources shortage, to better meet the business needs, and achieved good results in practical application.

【技术实现步骤摘要】
一种HBase数据库的数据管理方法及系统
本专利技术涉及数据库相关
,特别是一种HBase数据库的数据管理方法及系统。
技术介绍
随着业务量的激增,IT运营系统需要处理的数据量与访问量也随之猛增,传统的以Oracle为代表的数据库解决方案因其效率低下、扩展性差等问题,已经远远不能满足用户的存储与查询需求,而逐渐让位于以HBase为代表的新一代分布式数据库。HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。HBase对大小在千字节级的记录可以很好的支持,但受其实现原理的限制,对业务中常见的记录与资料文件(如表格、文档、图片扫描件等,即是本专利技术所描述的大字段,典型大小从几百千字节到几十兆字节)联合存储,则不能很好的支持,会造成冗余磁盘文件读写、并发度不高、查询低效等问题。由于从业务角度来看,是以记录为主,文件内容是记录的一个组成部分,问题的实质是HBase记录中的某个或某些字段超出常规大小,故将其统称为HBase大字段存储问题。而针对此问题的传统解决方案有:大字段单独存储到磁盘、大字段单独存储到HDFS(HadoopDistributedFileSystem,简称HDFS,是一个分布式文件系统)都有各自的缺陷,而不能较好地从整体上解决上述问题。以下分别阐述每种方案的缺陷:1.将文件内容作为业务记录中的一个字段,直接记录在HBase中。这种方案会导致严重的HBase性能问题。HBase服务端收到写入请求后,向表中写入数据时是先向内存中的缓存写入,一段时间后受触发才将数据写入HDFS(持久化)。因此HBase有重做日志,以实现在数据从写入缓存到写入HDFS之间服务器故障而导致内存中数据丢失的情况下,仍能从重做日志中恢复此部分数据。重做日志的大小是有限的,当重做日志装满,就需要回收一部分重做日志,即把这部分重做日志中仍在内存的表数据写入HDFS实现持久化,这会导致这部分重做日志所涉及到的每个有未持久化数据的表的底层数据存储都增加一个文件,若文件超过一定数量,则会影响读写效率,而需要合并。通常情况下记录较小,重做日志装满需要较长时间,回收重做日志的频率较低,因回收重做日志而导致的文件合并操作是罕有的。然而在大字段的情况下,重做日志会很快装满,导致无关表的底层数据存储增加大量的小文件,并造成频繁的文件合并操作,极大影响HBase的性能。因此这种方案是不可行的。2.文件单独存储在共享存储磁盘中,HBase业务记录中的一个字段记录文件的路径。本方案的主要问题包括:用户操作复杂化且无事务保证、数据安全性低、系统可用性降低。1)用户操作复杂化且无事务保证。在本方案中用户需要分别负责对HBase和共享存储的写入,增加了复杂度,而且这两步操作对用户来说是分离的,没有事务的原子性保证,也就是说如果用户在第一步操作完成后,第二步操作提交前,系统或网络发生故障,用户操作中断,系统就会处于不一致状态。2)数据安全性降级HBase和HDFS的数据存储原则是分布式冗余,在标准配置下能保证集群中任意两台服务器发生故障时数据不丢失。而共享存储通常没有这样的强安全性保证,又或者为了实现这样的安全性需要付出很高的硬件成本。3)系统可用性降低系统的主要组件是HBase,而HBase的数据存储是HDFS。本方案引入共享存储,若共享存储不能正常工作,整个系统也就无法运行,即是在系统中增加了一个可能出故障的组件,导致整个系统的可用性降低。3.文件单独存储在HDFS中,HBase业务记录中的一个字段记录文件的路径。本方案的主要问题包括:用户操作复杂化且无事务保证(与上一方案相同)、HDFS不适于存储小文件。HDFS的实现是为大文件存储和处理优化,使用一个较大的内存数据结构保存每个文件的状态,如果存储的文件数过多,就会导致内存占用过大,而增加集群压力,降低集群性能。
技术实现思路
基于此,有必要针对现有技术在HBase数据库中,对大字段数据无法很好地存储和读取的技术问题,提供一种HBase数据库的数据管理方法及系统。一种HBase数据库的数据管理方法,包括:响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;向保存在HDFS文件系统中的容器文件写入所述大字段数据块;将所述大字段数据块在所述HDFS文件系统中的位置作为索引,将所述待存储HBase记录中的大字段的内容替换为所述索引;在HBase中保存所述待存储HBase记录。一种HBase数据库的数据管理系统,包括:数据写入请求响应模块,用于响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;大字段数据块生成模块,用于将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;大字段数据块写入模块,用于向保存在HDFS文件系统中的容器文件写入所述大字段数据块;待存储HBase记录替换模块,用于将所述大字段数据块在所述HDFS文件系统中的位置作为索引,将所述待存储HBase记录中的大字段的内容替换为所述索引;待存储HBase记录保存模块,用于在HBase中保存所述待存储HBase记录。本专利技术为了解决HBase数据库不能很好地处理包含大字段的大量记录的问题,通过结合HBase和HDFS两者的优点,把HBase记录与影响HBase性能的大字段在物理存储层面分离,把大字段的内容保存在HDFS的容器文件中,在HBase中实际保存的数据是大字段的索引而非大字段本身。从而可以很好地发挥HBase对记录处理的高响应时间、高吞吐量、高并发度的优势,而回避HBase对大字段处理的不足。每个容器文件中可存储多个大字段内容(应用中可达到亿级),实现索引机制,可通过索引迅速定位一个大字段在容器文件中的具体位置并读取。由于整个替换工作是在数据写入HBase数据库的过程中执行,因此是一个完整的原子操作,保证了用户写数据操作的易用性、原子性和数据一致性。另外,将多个大字段打包存储在系统的必备组件HDFS的容器文件中,以发挥HDFS存储大文件的高容量、高可靠性、高传输率、高并发度的优势,而回避HDFS在存储小文件时资源消耗过大的不足。本专利技术较好地满足了业务的需要,在实际应用中取得了良好的效果。附图说明图1为本专利技术一种HBase数据库的数据管理方法的工作流程图;图2为本专利技术一个例子的大字段的数据存储结构图;图3为本专利技术一个例子的结构示意图;图4为本专利技术一种HBase数据库的数据管理系统的结构模块图。具体实施方式下面结合附图和具体实施例对本专利技术做进一步详细的说明。如图1所示为本专利技术一种HBase数据库的数据管理方法的工作流程图,包括:步骤S101,响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;步骤S102,将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;步骤S103,向保存在HDFS文件系统中的容器文件写入本文档来自技高网
...
一种HBase数据库的数据管理方法及系统

【技术保护点】
一种HBase数据库的数据管理方法,其特征在于,包括:响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;向保存在HDFS文件系统中的容器文件写入所述大字段数据块;将所述大字段数据块在所述HDFS文件系统中的位置作为索引,将所述待存储HBase记录中的大字段的内容替换为所述索引;在HBase中保存所述待存储HBase记录。

【技术特征摘要】
1.一种HBase数据库的数据管理方法,其特征在于,包括:响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录;将所述待存储HBase记录中所包括的内容的大小超过预设字段阈值的字段作为大字段,提取所述大字段的内容生成大字段数据块;向保存在HDFS文件系统中的容器文件写入所述大字段数据块;将所述大字段数据块在所述HDFS文件系统中的位置作为索引,将所述待存储HBase记录中的大字段的内容替换为所述索引;在HBase中保存所述待存储HBase记录。2.根据权利要求1所述的HBase数据库的数据管理方法,其特征在于,所述索引包括所述容器文件的文件名,以及所述大字段数据块在所述容器文件中的偏移量。3.根据权利要求1所述的HBase数据库的数据管理方法,其特征在于,还包括:响应数据读取请求,从HBase数据库中获取所请求的待读取HBase记录;如果所述待读取HBase记录的字段中包含有所述索引,则所述索引作为待读取索引,根据所述待读取索引从所述HDFS文件系统中获取对应的大字段数据块作为待读取大字段数据块;在所述待读取HBase记录中,将从所述待读取大字段数据块中提取的大字段的内容替换对应的所述待读取索引;返回所述待读取HBase记录。4.根据权利要求1所述的HBase数据库的数据管理方法,其特征在于,还包括:获取所述HBase数据库中的所有HBase记录中的有效索引作为待紧缩索引;从所述HDFS文件系统中的容器文件中选择待紧缩容器文件;将包括有所述待紧缩索引对应的大字段数据块的待紧缩容器文件作为原容器文件,对所述原容器文件执行紧缩操作;所述紧缩操作包括:将原容器文件中所述待紧缩索引对应的大字段数据块迁移到新建立的容器文件中,并获取每个所述待紧缩索引对应的大字段数据块在新建立的容器文件中的索引作为紧缩后索引;将所述待紧缩索引替换为对应的紧缩后索引;删除所述原容器文件。5.根据权利要求4所述的HBase数据库的数据管理方法,其特征在于,所述从所述HDFS文件系统中的容器文件中选择待紧缩容器文件,具体包括:将所述待紧缩索引根据容器文件分组,统计出每个容器文件的所包括与所述待紧缩索引对应的大字段数据块的数量,作为每个容器文件的有效大字段数据块数量;获取每个容器文件中所包括的大字段数据块的数量,作为每个容器文件的总大字段数;将有效大字段数据块数量占总大字段数的比例小于预设比例阈值的容器文件作为待紧缩容器文件。6.一种HBase数据库的数据管理系统,其特征在于,包括:数据写入请求响应模块,用于响应数据写入请求,生成用于在HBase数据库中保存的待存储HBase记录...

【专利技术属性】
技术研发人员:钟坚何广柏邹国栋张伟王腾石巍赖志坚
申请(专利权)人:广东亿迅科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1