海量数据存储管理方法、装置及数据存储系统与流程

文档序号:11774515阅读:356来源:国知局
海量数据存储管理方法、装置及数据存储系统与流程

本发明涉及大数据存储领域,尤其涉及一种海量数据存储管理方法、装置及数据存储系统。



背景技术:

“大数据”通常指的是那些数量巨大、难于收集、处理、分析的数据集,亦指那些在传统基础设施中长期保存的数据,海量消息高效的存储和管理,是大数据发展的基石。只有各个业务系统输出的所有消息都得到正确存储,并且用户可以通过客户端/web展示,获取,新建,保存,删除,查询消息,也可以进行目录操作(新建,更名,删除,选定)。

随着科技的发展,消息的格式越来越富媒体化(包括但不限于音频、视频、图片等),而且数据量越来越大,传统的海量消息存储方式主要有两种:一种是以文件格式存储在dfs(distributedfilesystem,分布式文件系统)系统;另一种是直接将数据存储在数据库中。这两个存储方式对于海量消息的存储和管理各有利弊:海量数据存储在在dfs系统中,实施成本低,易于部署,但是磁盘io比较高,容量和读写无法水平扩展,较难支撑高并发和热备份的要求;而海量数据存储在数据库系统中,数据读取很方便,但是对消息的大小存在限制,一个长消息需要拆分成一个或者多个短消息,管理难度高,且消息的附件(音频、视频、图片等)文件在数据库系统中无法存储,对于新业务的扩展存在限制。

针对上述问题,提出一种解决现有对所有海量数据均采用相同存储方式这一问题的海量数据存储管理方法,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明提供了一种海量数据存储管理方法、装置及数据存储系统,以解决现有对所有海量数据均采用相同存储方式的问题。

本发明提供了一种海量数据存储管理方法,其包括:

接收待存储消息,标准化待存储消息的元数据;

将待存储消息存储到分布式文件系统,获取存储信息,将待存储消息的存储信息及元数据存储在数据库;

基于数据库中存储的待存储消息的存储信息及元数据,管理分布式文件系统中存储的消息。

进一步的,将待存储消息存储到分布式文件系统,获取存储信息包括:将待存储消息及其消息附件以文件格式存储在分布式文件系统,接收分布式文件系统返回的消息存储路径。

进一步的,在将待存储消息的存储信息及元数据存储在数据库之后,还包括:为待存储消息分配关键字值。

进一步的,管理分布式文件系统中存储的消息包括:基于关键字值,读取和/或老化对应消息。

进一步的,元数据包括数据大小;方法还包括:根据数据大小确定待存储消息为长消息,还是短消息;将长消息存储到分布式文件系统,将短消息直接存储在数据库。

本发明提供了一种海量数据存储管理装置,其包括:

通信模块,用于接收待存储消息,标准化待存储消息的元数据;

存储模块,用于将待存储消息存储到分布式文件系统,获取存储信息,将待存储消息的存储信息及元数据存储在数据库;

管理模块,用于基于数据库中存储的待存储消息的存储信息及元数据,管理分布式文件系统中存储的消息。

进一步的,存储模块用于包括:将待存储消息及其消息附件以文件格式存储在分布式文件系统,接收分布式文件系统返回的消息存储路径。

进一步的,存储模块在将待存储消息的存储信息及元数据存储在数据库之后,还用于为待存储消息分配关键字值。

进一步的,管理模块用于基于关键字值,读取和/或老化对应消息。

进一步的,元数据包括数据大小;存储模块还用于根据数据大小确定待存储消息为长消息,还是短消息;将长消息存储到分布式文件系统,将短消息直接存储在数据库。

本发明提供了一种数据存储系统,其包括:数据库、分布式文件系统,以及本发明提供的海量数据存储管理装置。

本发明的有益效果:

本发明提供了一种海量数据存储管理方法,在接收到待存储消息之后,针对所有消息进行元数据标准化之后,将其在dfs系统存储之后,将存储消息发送至数据库,这样,就可以在数据库中对存储在dfs系统的消息进行管理,同时还兼具了dfs存储及数据库存储的优点,解决了现有对所有海量数据均采用相同存储 方式的问题。

附图说明

图1为本发明第一实施例提供的海量数据存储管理装置的结构示意图;

图2为本发明第二实施例提供的海量数据存储管理方法的流程图;

图3为本发明第三实施例提供的数据存储系统组网示意图;

图4为本发明第三实施例中海量数据存储管理方法的流程图。

具体实施方式

现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。

第一实施例:

图1为本发明第一实施例提供的海量数据存储管理装置的结构示意图,由图1可知,在本实施例中,本发明提供的海量数据存储管理装置1包括:

通信模块11,用于接收待存储消息,标准化待存储消息的元数据;

存储模块12,用于将待存储消息存储到分布式文件系统,获取存储信息,将待存储消息的存储信息及元数据存储在数据库;

管理模块13,用于基于数据库中存储的待存储消息的存储信息及元数据,管理分布式文件系统中存储的消息。

在一些实施例中,上述实施例中的存储模块12用于包括:将待存储消息及其消息附件以文件格式存储在分布式文件系统,接收分布式文件系统返回的消息存储路径。

在一些实施例中,上述实施例中的存储模块12在将待存储消息的存储信息及元数据存储在数据库之后,还用于为待存储消息分配关键字值。

在一些实施例中,上述实施例中的管理模块13用于基于关键字值,读取和/或老化对应消息。

在一些实施例中,上述实施例中的元数据包括数据大小;存储模块12还用于根据数据大小确定待存储消息为长消息,还是短消息;将长消息存储到分布式文件系统,将短消息直接存储在数据库。

对应的,本发明提供了一种数据存储系统,其包括:数据库、分布式文件系统,以及本发明提供的海量数据存储管理装置1。

第二实施例:

图2为本发明第二实施例提供的海量数据存储管理方法的流程图,由图2可知,在本实施例中,本发明提供的海量数据存储管理方法包括以下步骤:

s201:接收待存储消息,标准化待存储消息的元数据;

s202:将待存储消息存储到分布式文件系统,获取存储信息,将待存储消息的存储信息及元数据存储在数据库;

s203:基于数据库中存储的待存储消息的存储信息及元数据,管理分布式文件系统中存储的消息。

在一些实施例中,上述实施例中的将待存储消息存储到分布式文件系统,获取存储信息包括:将待存储消息及其消息附件以文件格式存储在分布式文件系统,接收分布式文件系统返回的消息存储路径。

在一些实施例中,上述实施例中的方法在将待存储消息的存储信息及元数 据存储在数据库之后,还包括:为待存储消息分配关键字值。

在一些实施例中,上述实施例中的管理分布式文件系统中存储的消息包括:基于关键字值,读取和/或老化对应消息。

在一些实施例中,上述实施例中的元数据包括数据大小;方法还包括:根据数据大小确定待存储消息为长消息,还是短消息;将长消息存储到分布式文件系统,将短消息直接存储在数据库。

第三实施例:

现结合具体应用场景对本发明做进一步的诠释说明。

为了解决上述问题,本发明提供了一种将海量消息根据文件大小进行分开存储的方法。

图3示出了本发明的数据存储系统的示意图,包括第三方消息系统,消息引擎模块301,消息管理模块302,数据库hbase303,dfs系统304等网元。

基于图3,本发明采用的技术方案是,消息引擎模块首先对海量消息进行预处理,标准化消息本身的元数据信息(包括消息宿主信息,消息状态,消息类型、消息来源、消息目录、编码类型、消息id、消息size、消息主题、消息传递方式、消息内容等信息);然后根据消息预处理的结果中的内容size的属性(即文件大小),将超过2m的消息及消息的附件文件存储在dfs存储系统中,而小于等于2m的消息及消息附件目录则由消息管理模块序列化成字符串的格式存储在列式数据库hbase中,并建立keyvalue的索引值;最后通过索引值,对消息进行读取和删除,及文件的定期老化等日常管理,分析,统计工作。

具体来讲包括以下步骤:

消息注入的步骤:

a.消息引擎模块对消息进行标准化预处理,并判断消息是长消息还是短消息。

b.如果是短消息,消息引擎则将短消息通知消息管理模块;

c.消息管理模块将短消息注入hbase数据库。

d.如果是长消息,则消息引擎模块将长消息及消息附件存储在dfs存储系统,并记录dfs文件存储路径;

e.消息引擎模块将长消息文件保存路径及长消息同时发送给消息管理模块;

f.消息管理模块将相关信息存储在hbase,及生成相关的keyvalue值。

读取消息使用的步骤:

a.消息引擎模块向消息管理模块发起读取消息的请求;

b.消息管理模块根据keyvalue值向hbase查询相关信息;

c.消息管理模块向消息引擎模块返回消息查询结果。

消息数据存储更新的步骤:

a.在消息管理模块上设置各类消息的存储周期,

b.消息管理模块定时查询各类消息存储状态;

c.按照查询的结果定时老化相关消息数据。

采用上述的技术方案,实现了对海量消息持久化的方法,有效的实现了海量消息存储的高性能及可扩展性、安全性。

图4示出了本发明的海量数据存储管理流程,具体包含如下步骤:

s401:接收新增消息;

s402:根据消息大小,判断消息是短消息还是长消息;

s403-s409:如果是长消息,则将长消息以文件格式存储在dfs存储系统上,dfs存储系统返回文件存储路径给消息引擎模块;消息引擎模块给消息管理模块发送消息add消息;消息管理模块将长消息存储路径及相关元数据信息存储在hbase数据库中,并建立keyvalue值,用于后续查询;

s410-s413:如果是短消息,消息引擎模块则直接向消息管理模块发起消息add消息;消息管理模块将短消息直接存储在hbase数据库中,用于后续的大数据应用分析;

s414-s418:读取消息流程包含:消息引擎接口调用消息接口读取消息;消息管理模块根据keyvalue从hbase中读取消息;hbase返回消息;消息管理模块将消息返回给消息管理引擎;

s419-s422:消息数据老化流程包含步骤:配置设定消息数据保存周期;消息管理模块定时老化hbase数据;消息管理模块定时老化dfs的消息文件数据。

综上可知,通过本发明的实施,至少存在以下有益效果:

本发明提供了一种海量数据存储管理方法,在接收到待存储消息之后,针对所有消息进行元数据标准化之后,将其在dfs系统存储之后,将存储消息发送至数据库,这样,就可以在数据库中对存储在dfs系统的消息进行管理,同时还兼具了dfs存储及数据库存储的优点,解决了现有对所有海量数据均采用相同存储方式的问题。

以上仅是本发明的具体实施方式而已,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任意简单修改、等同变化、结合或修饰,均仍属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1