一种基于内存数据库和Hbase存取大数据的方法及系统的制作方法

文档序号:10580157阅读:403来源:国知局
一种基于内存数据库和Hbase存取大数据的方法及系统的制作方法
【专利摘要】本发明公开了一种基于内存数据库和Hbase存取大数据的方法及系统,其中,所述的方法包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。本发明将任务处理过程中的中间数据文件存放于Hbase中,而将每一个文件经过每一个处理步骤后的文件处理状态存放于内存数据库中,利用了Hbase可存放大数据以及内存数据库访问速度快的优势,能够实现数据的快速存取和快速访问。
【专利说明】
一种基于内存数据库和Hbase存取大数据的方法及系统
技术领域
[〇〇〇1]本发明涉及数据存取技术领域,具体涉及一种基于内存数据库和Hbase存取大数据的方法及系统。【背景技术】
[0002]分布式内存数据库是个内存数据库,所有数据都存储在内存中,可以发挥出内存访问的超强速度优势。通过全量数据文件(checkpoint)和redo日志保证数据可靠性。支持 sql灵活访问数据。同时,分布式内存数据库是分布式的,部署在网络的多个节点上,对外提供统一的访问接口。
[0003]Hbase是一种N0SQL数据库;Hbase中的数据,可以很方便按照rowkey或者rowkey的范围检索出来,但是无法满足不以rowkey为关键字的灵活查询的需要。
【发明内容】

[0004]本发明所要解决的技术问题是提供一种基于内存数据库和Hbase存取大数据的方法及系统,能够提高数据的存取速度。
[0005]本发明解决上述技术问题的技术方案如下:
[0006]—方面,本发明提供了一种基于内存数据库和Hbase存取大数据的方法,包括:
[0007]S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;
[0008]S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;
[0009]S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于 Hbase 中。
[0010]另一方面,本发明提供了一种基于内存数据库和Hbase存取大数据的系统,包括:
[0011]文件读取模块,用于读取多个待处理的源文件;
[0012]任务处理模块,用于对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;
[0013]第一存储模块,用于当每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;
[0014]第二存储模块,用于将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。[〇〇15]本发明提供的一种基于内存数据库和Hbase存取大数据的方法及系统,将任务处理过程中的中间数据文件存放于Hbase中,而将每一个文件经过每一个处理步骤后的文件处理状态存放于内存数据库中,利用了 Hbase可存放大数据以及内存数据库访问速度快的优势,能够实现数据的快速存取。【附图说明】
[0016]图1为本发明实施例1的一种基于内存数据库和Hbase存取大数据的方法流程图; [〇〇17]图2为实施例2的流程图;[〇〇18]图3为本发明实施例3的一种基于内存数据库和Hbase存取大数据的系统示意图。 【具体实施方式】
[0019]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0020]实施例1、一种基于内存数据库和Hbase存取大数据的方法。下面结合图1对本实施例提供的方法进行说明。
[0021]参见图1,本实施例提供的方法包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;[〇〇22]S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;[〇〇23]S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase 中。[〇〇24]其中,本实施例为每一个任务处理配置一个进程序号,所述步骤S2具体包括:
[0025]对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。[〇〇26]所述步骤S3具体包括:
[0027] 为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。 [〇〇28]本实施例在将每一个处理步骤后的中间文件存储于Hbase中以及将文件处理状态存储于内存数据库中时,根据每一个源文件中的数据量按照第一预定时间间隔建立对应的数据表格,并存储于相应的内存数据库或Hbase中,以及按照第二预定时间间隔定期清理相应的数据表格。[〇〇29] 实施例2[〇〇3〇]为了加深对本发明提供的基于内存数据库和Hbase存取大数据的方法的进一步理解,下面以一个具体的例子来说明。
[0031]参见图2,首先,开发一个基于Hbase存储的程序(为描述方便,以下称为工单程序),来记录和保存任务处理过程中每一个处理步骤之后的文件以及断点文件记录。比如, 以对源文件的预处理和剔重处理为例:对每个文件进行了预处理之后,需要通过工单程序将预处理后的文件写入Hbase中,同时在内存数据库中记录下该文件的处理状态(例如,预处理已完成,剔重处理未开始);工单程序再从Hbase中读出预处理后的文件放入剔重处理入口,并在内存数据库中更改该文件的处理状态(预处理已处理,剔重处理已开始);待剔重处理完后,工单程序从剔重处理出口将文件放入Hbase中,并在内存数据库中更改该文件的处理状态(预处理已完成,剔重处理已完成)。
[0032]对每一个处理后的文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。[〇〇33]其中,内存数据库的表名为文件状态表(FileStatusTable),按照进程序号ProcID建索引,内存数据库的表结构:进程序号ProcID,文件名FileName,文件处理状态Status以及该文件处理时间deal_time。[〇〇34]文件处理状态Status取值代表的含义如下:[〇〇35]0 1号程序已将这个文件放在出口;[〇〇36]1工单写程序已将这个文件写入hbase表;[〇〇37]2工单读程序已将这个文件放在2号程序的入口;[〇〇38]3 2号程序已将这个文件处理;[〇〇39] -1,表示工单写Hbase程序时读的内存库表中给的文件名在文件系统上不存在; [〇〇4〇] -2,表示工单读Hbase程序时读的内存库表中给的文件名在hbase中不存在。[〇〇41]其中,同一组处理任务的进程为同一个序号(比如,表示处理相同任务的1号程序、工单程序以及2号程序对应的进程序号均为001),进程序号是进行任务分配的依据。[〇〇42]内存数据库的表名为文件数据表FileDataOl,以进程序号+文件名称为Rowkey建索引,其中,Rowkey中加入进程序号的原因,是将同一进程需要处理的数据放在一起,使得读写操作在同一 Reg1n上,性能更优。[〇〇43]另外,在将数据存储于内存数据库或者Hbase中时,可以根据数据量每天建立一张数据表格或者每月建立一张数据表格,并定期清理过期的数据表格。比如,按天建表,文件名称依次为:FileData_20160310,FileData_20160311,…,FileData_20160318。
[0044]当出现异常宕机或者磁盘故障后重启时,从内存数据库中找到每一个文件的最后处理状态,根据文件的最后处理状态,对异常宕机或者磁盘故障后为处理的步骤进行处理, 即内存数据库能够进行断点文件记录,重启后,只需要处理断点以后的步骤即可,而不用从头开始。
[0045]实施例3、一种基于内存数据和Hbase存取大数据的系统。下面结合图3对本实施例提供的系统进行描述。
[0046]参见图3,本实施例提供的系统包括文件读取模块31、配置模块32、任务处理模块 33、表格建立模块34、第一存储模块35、第二存储模块36和表格清理模块37。[〇〇47]具体的,文件读取模块31,用于读取多个待处理的源文件。[〇〇48] 任务处理模块33,用于对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤。[〇〇49]第一存储模块35,用于当每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中。
[0050]第二存储模块36,用于将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。
[0051]其中,本实施例提供的系统还包括配置模块32,用于为每一个任务处理配置一个进程序号;所述第一存储模块35具体用于:对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。
[0052]第二存储模块36,具体用于:为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。[〇〇53]本实施例提供的系统还包括表格建立模块34和表格清理模块37,其中,表格建立模块34,用于根据每一个源文件中的数据量按照第一预定时间间隔建立对应的数据表格, 并存储于相应的内存数据库或Hbase中;表格清理模块37,用于按照第二预定时间间隔定期清理相应的数据表格。[〇〇54]本发明提供的一种基于内存数据库和Hbase存取大数据的方法及系统,将任务处理过程中的中间数据文件存放于Hbase中,而将每一个文件经过每一个处理步骤后的文件处理状态存放于内存数据库中,利用了 Hbase可存放大数据以及内存数据库访问速度快的优势,能够实现数据的快速存取。
[0055]在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例” 等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0056]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于内存数据库和Hbase存取大数据的方法,其特征在于,包括:51、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任 务处理包括多个处理步骤;52、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件 处理状态存储于内存数据库中;53、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。2.如权利要求1所述的基于内存数据库和Hbase存取大数据的方法,其特征在于,为每 一个任务处理配置一个进程序号,所述步骤S2具体包括:对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个 源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。3.如权利要求2所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,所述 步骤S3具体包括:为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文 件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。4.如权利要求3所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,根据 每一个源文件中的数据量按照第一预定时间间隔建立对应的数据表格,并存储于相应的内 存数据库或Hbase中。5.如权利要求4所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,按照 第二预定时间间隔定期清理相应的数据表格。6.如权利要求1-5任一项所述的基于内存数据库和Hbase大数据存取的方法,其特征在 于,当出现异常宕机或者磁盘故障重启时,从内存数据库中读取每一个源文件的文件处理 状态,根据文件处理状态对文件数据执行异常宕机或者磁盘故障后的处理步骤。7.—种基于内存数据库和Hbase存取大数据的系统,其特征在于,包括:文件读取模块,用于读取多个待处理的源文件;任务处理模块,用于对每一个所述源文件进行任务处理,其中,一个任务处理包括多个 处理步骤;第一存储模块,用于当每一个源文件进行了每一个处理步骤后,以第一预设方式将每 一个源文件的文件处理状态存储于内存数据库中;第二存储模块,用于将每一个源文件的每一个处理步骤后的文件数据以第二预设方式 存储于Hbase中。8.如权利要求7所述的基于内存数据库和Hbase存取大数据的系统,其特征在于,还包 括:配置模块,用于为每一个任务处理配置一个进程序号;所述第一存储模块具体用于:对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个 源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。9.如权利要求8所述的基于内存数据库和Hbase存取大数据的系统,其特征在于,所述 第二存储模块具体用于:为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。10.如权利要求9所述的基于内存数据库和Hbase存取大数据的系统,其特征在于,还包 括:表格建立模块,用于根据每一个源文件中的数据量按照第一预定时间间隔建立对应的 数据表格,并存储于相应的内存数据库或Hbase中;表格清理模块,用于按照第二预定时间间隔定期清理相应的数据表格。
【文档编号】G06F17/30GK105956106SQ201610289753
【公开日】2016年9月21日
【申请日】2016年5月4日
【发明人】李晓静
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1