一种基于内存数据库和Hbase存取大数据的方法及系统技术方案

技术编号:13739896 阅读:200 留言:0更新日期:2016-09-22 16:22
本发明专利技术公开了一种基于内存数据库和Hbase存取大数据的方法及系统,其中,所述的方法包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。本发明专利技术将任务处理过程中的中间数据文件存放于Hbase中,而将每一个文件经过每一个处理步骤后的文件处理状态存放于内存数据库中,利用了Hbase可存放大数据以及内存数据库访问速度快的优势,能够实现数据的快速存取和快速访问。

【技术实现步骤摘要】

本专利技术涉及数据存取
,具体涉及一种基于内存数据库和Hbase存取大数据的方法及系统
技术介绍
分布式内存数据库是个内存数据库,所有数据都存储在内存中,可以发挥出内存访问的超强速度优势。通过全量数据文件(checkpoint)和redo日志保证数据可靠性。支持sql灵活访问数据。同时,分布式内存数据库是分布式的,部署在网络的多个节点上,对外提供统一的访问接口。Hbase是一种NOSQL数据库;Hbase中的数据,可以很方便按照rowkey或者rowkey的范围检索出来,但是无法满足不以rowkey为关键字的灵活查询的需要。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于内存数据库和Hbase存取大数据的方法及系统,能够提高数据的存取速度。本专利技术解决上述技术问题的技术方案如下:一方面,本专利技术提供了一种基于内存数据库和Hbase存取大数据的方法,包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个
源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。另一方面,本专利技术提供了一种基于内存数据库和Hbase存取大数据的系统,包括:文件读取模块,用于读取多个待处理的源文件;任务处理模块,用于对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;第一存储模块,用于当每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;第二存储模块,用于将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。本专利技术提供的一种基于内存数据库和Hbase存取大数据的方法及系统,将任务处理过程中的中间数据文件存放于Hbase中,而将每一个文件经过每一个处理步骤后的文件处理状态存放于内存数据库中,利用了Hbase可存放大数据以及内存数据库访问速度快的优势,能够实现数据的快速存取。附图说明图1为本专利技术实施例1的一种基于内存数据库和Hbase存取大数据的方法流程图;图2为实施例2的流程图;图3为本专利技术实施例3的一种基于内存数据库和Hbase存取大数据的系统示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。实施例1、一种基于内存数据库和Hbase存取大数据的方法。下面结合图1对本实施例提供的方法进行说明。参见图1,本实施例提供的方法包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。其中,本实施例为每一个任务处理配置一个进程序号,所述步骤S2具体包括:对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。所述步骤S3具体包括:为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。本实施例在将每一个处理步骤后的中间文件存储于Hbase中以及将文件处理状态存储于内存数据库中时,根据每一个源文件中的数据量按照第一预定时间间隔建立对应的数据表格,并存储于相应的内存数据库或Hbase中,以及按照第二预定时间间隔定期清理相应的数据表格。实施例2为了加深对本专利技术提供的基于内存数据库和Hbase存取大数据的方法的进一步理解,下面以一个具体的例子来说明。参见图2,首先,开发一个基于Hbase存储的程序(为描述方便,以下称为工单程序),来记录和保存任务处理过程中每一个处理步骤之后的文件以及断点文件记录。比如,以对源文件的预处理和剔重处理为例:对每个文件进行了预处理之后,需要通过工单程序将预处理后的文件写入Hbase中,同时在内存数据库中记录下该文件的处理状态(例如,预处理已完成,剔重处理未开始);工单程序再从Hbase中读出预处理后的文件放入剔重处理入口,并在内存数据库中更改该文件的处理状态(预处理已处理,剔重处理已开始);待剔重处理完后,工单程序从剔重处理出口将文件放入Hbase中,并在内存数据库中更改该文件的处理状态(预处理已完成,剔重处理已完成)。对每一个处理后的文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。其中,内存数据库的表名为文件状态表(FileStatusTable),按照进程序号ProcID建索引,内存数据库的表结构:进程序号ProcID,文件名FileName,文件处理状态Status以及该文件处理时间deal_time。文件处理状态Status取值代表的含义如下:0 1号程序已将这个文件放在出口;1 工单写程序已将这个文件写入hbase表;2 工单读程序已将这个文件放在2号程序的入口;3 2号程序已将这个文件处理;-1,表示工单写Hbase程序时读的内存库表中给的文件名在文件系统上不存在;-2,表示工单读Hbase程序时读的内存库表中给的文件名在hbase中不存在。其中,同一组处理任务的进程为同一个序号(比如,表示处理相同任务的1号程序、工单程序以及2号程序对应的进程序号均为001),进程序号是进行任务分配的依据。内存数据库的表名为文件数据表FileData01,以进程序号+文件名称为Rowkey建索引,其中,Rowkey中加入进程序号的原因,是将同一进程需要处理的数据放在一起,使得读写操作在同一Region上,性能更优。另外,在将数据存储于内存数据库或者Hbase中时,可以根据数据量每天建立一张数据表格或者每月建立一张数据表格,并定期清理过期的数据表格。比如,按天建表,文件名称依次为:FileData_20160310,FileData_20160311,…,FileData_20160318。当出现异常宕机或者磁盘故障后重启时,从内存数据库中找到每一个文件的最后处理状态,根据文件的最后处理状态,对异常宕机或者磁盘故障后为处理的步骤进行处理,即内存数据库能够进行断点文件记录,重启后,只需要处理断点以后的步骤即可,而不用从头开始。实施例3、一种基于内存数据和Hbase存取大数据的系统。下面结合图3对本实施例提供的系统进行描述。参见图3,本实施例提供的系统包括文件读取模块31、配置模块32、任务处理模块33、表格建立模块34、第一存储模块35、第二存储模块36和表格清理模块37。具体的,文件读取模块31,用于读取多个待处理的源文件。任务处理模块33,用于对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤。第一存储模块35,用于当每一个源文件进行了每一个处理步骤后,以第
一预设方式将每一个源文件的文件处理状态存储于内存数据本文档来自技高网
...

【技术保护点】
一种基于内存数据库和Hbase存取大数据的方法,其特征在于,包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。

【技术特征摘要】
1.一种基于内存数据库和Hbase存取大数据的方法,其特征在于,包括:S1、读取多个待处理的源文件,分别对每一个所述源文件进行任务处理,其中,一个任务处理包括多个处理步骤;S2、每一个源文件进行了每一个处理步骤后,以第一预设方式将每一个源文件的文件处理状态存储于内存数据库中;S3、将每一个源文件的每一个处理步骤后的文件数据以第二预设方式存储于Hbase中。2.如权利要求1所述的基于内存数据库和Hbase存取大数据的方法,其特征在于,为每一个任务处理配置一个进程序号,所述步骤S2具体包括:对每一个源文件进行了每一个处理步骤之后,以进程序号加文件标识为索引将每一个源文件的文件处理状态以及该源文件的处理时间以数据表格的形式存储于内存数据库中。3.如权利要求2所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,所述步骤S3具体包括:为每一个源文件的每一个处理步骤后的文件设计合理的Rowkey,以Rowkey为索引将文件数据以数据表格的形式存储于Hbase中,其中,以进程序号加文件标识作为Rowkey。4.如权利要求3所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,根据每一个源文件中的数据量按照第一预定时间间隔建立对应的数据表格,并存储于相应的内存数据库或Hbase中。5.如权利要求4所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,按照第二预定时间间隔定期清理相应的数据表格。6.如权利要求1-5任一项所述的基于内存数据库和Hbase大数据存取的方法,其特征在于,当出现异常宕机或者磁盘故障重启时,从内存数据库中读取...

【专利技术属性】
技术研发人员:李晓静
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

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

1