海量数据存储和检索方法技术

技术编号:7917744 阅读:228 留言:0更新日期:2012-10-25 02:48
本发明专利技术公开了一种海量数据存储和检索方法,包括以下步骤:(1)、在服务器的文件系统中,按时间段建立目录,每个目录下包含众多.data命令的设备数据文件;(2)、服务器收到设备上传数据后,根据数据上报时段将同一时间段上报的所有数据汇总到以该时间段命名的目录下;(3)、进行数据存储时,先缓存一定规模的上报数据,当缓存数据达到设定规模时,一次性集中刷新到服务器的文件系统中;(4)、查询数据时,根据所需查询的设备标识(id)与时间段,读取相应文件并筛选出查询结果。本发明专利技术降低了存储大量设备连续不间断上传数据造成的服务器IO压力,提高了能并发支持的上传设备的数目,同时在读/写性能上取得了较好的平衡。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体地讲是一种。
技术介绍
随着互联网的普及和智能终端设备的广泛使用,越来越多的终端设备现在可以接入互联网,并通过网络进行远程访问、控制和监控状态。如何有效地存储大量设备(千万级别)连续不间断上传的状态信息,对于实现对大量设备的在线监控和历史状态查询是一个关键的问题。例如,在物流行业中,车辆的位置信息流,需要连续不断上传到服务器上进行存储,上传的数据是24小时不间断的,由于车辆数目众多,由此会产生海量的数据需要被服务器存储,对服务器存储系统造成的IO负荷是巨大的。在这样的场景下,能否实现海量 信息存储及快速检索,对于收集和查询大量设备的状态信息起到举足轻重的作用。解决这一个问题的关键就是如何有效减少在大量数据连续不间断的写入服务器存储系统的时候给系统带来的巨大写入(存储)压力,并且在提供足够写入能力的前提下,维持好的读(检索)性能,在存储和检索之间获得平衡。在这个场景中,目前存在的方案主要依靠关系数据库作为检索和存储,而这类方案,往往无法支撑千万级别的设备同时连续不间断的上传数据。缓存技术开始被应用于海量级数据的存储和检索,部分地解决和缓解了上述问题。如何将缓存技术应用于海量数据存储和检索是解决问题的关键,如国家知识产权局公开的专利申请号为201010142195. 5的专利技术专利申请“一种海量数据信息检索系统及其方法”,包括终端层、数据服务层、数据缓存服务层和数据存储服务层,由于该专利所涉及的缓存技术是对检索关键词和检索结果的缓存,而海量数据的存储涉及不断的读写,检索只是读的过程,因而无法完全解决上述技术问题
技术实现思路
本专利技术要解决的技术问题,是提供一种采用缓存技术对大量设备周期上报数据进行存储和检索的。本专利技术的技术解决方案,是提供一种以下步骤的,包括以下步骤(I)、在服务器的文件系统中,按时间段建立目录,每个目录下包含众多<id>. data命令的设备数据文件,每个设备数据文件存放对应设备id在指定时间段的所有数据记录;(2)、服务器收到设备上传数据后,根据数据上报时段将同一时间段上报的所有数据汇总到以该时间段命名的目录下,然后根据设备标识(id)把某时段内一个或多个设备的上报数据汇总到以该时段命名的目录下的与该设备标识关联的文件内; (3)、进行数据存储时,先缓存一定规模的上报数据,并按步骤I和2对缓存数据进行规整,当缓存数据达到设定规模时,一次性集中刷新到服务器的文件系统中;(4)、查询数据时,根据所需查询的设备标识(id)与时间段,读取相应文件并筛选出查询结果。采用以上方法,与现有技术相比具有以下优点采用本专利技术,步骤3和4是并列步骤,实现了海量数据的存储(写)和检索(读)两个功能,通过时间段与设备标识(id)相结合的方式来设置文件类型和存储位置,并采用缓存技术对海量数据进行缓存和间歇更新;本专利技术降低了存储大量设备连续不间断上传数据造成的服务器IO压力,提高了能并发支持的上传设备的数目,同时在读/写性能上取得了较好的平衡,在持续的大的存储(写)压力下,仍能获得较好的检索(读)性能。作为改进,步骤I中,在指定时间段,设备数据文件与设备id—一对应,或一个设备数据文件存储多个id设备的数据记录;为减少指定时间段目录下文件数目,可以将连续的设备id记录存到一个文件,降低了数据的复杂程度,提高了整个数据库的稳定性,从而提高数据处理效率。作为改进,步骤3中,数据存储的步骤具体步骤如下a、设备上传的数据通过网关传送到设备数据队列;b、从设备数据队列批量获取设备数据,检查记录合法性,并将有效记 录放入内存I ;c、定期检查内存I的设备数据记录数,内存I内的设备数据记录数超过限额,则将这些记录一次性追加到当前临时文件中;并同时把内存I的所有记录按时间段和id进行规整,规整后的数据移入内存II和内存III中;d、内存III中缓存记录数超过设定限额(一次批量写入磁盘的记录数),将内存III中缓存记录按步骤I和2中的规则写入磁盘;e、将内存III中缓存记录刷新到服务器的文件系统,完成海量数据的存储。作为改进,内存II中缓存经过规整但尚未写入文件系统的设备数据,供内存查询,内存II和服务器文件系统构成了查询数据库,该设计将数据的查询与写入分开,减少了服务器的数据传输压力。作为改进,步骤4中,接到外部的查询请求时,由查询的设备id和时间段定位到对应的设备数据文件,进入内存II和服务器文件系统检索相应的设备数据文件,读取相应的记录并进行排序处理,最后返回响应。附图说明图I为本专利技术的具体实施框图。具体实施例方式下面结合附图和具体实施例对本专利技术作进一步地说明。本专利技术的,包括以下步骤(I)、在服务器的文件系统中,按时间段建立目录,每个目录下包含众多<id>. data命令的设备数据文件,每个设备数据文件存放对应设备id在指定时间段的所有数据记录;(2)、服务器收到设备上传数据后,根据数据上报时段将同一时间段上报的所有数据汇总到以该时间段命名的目录下,然后根据设备标识(id)把某时段内一个或多个设备的上报数据汇总到以该时段命名的目录下的与该设备标识关联的文件内;(3)、进行数据存储时,先缓存一定规模的上报数据,并按步骤I和2对缓存数据进行规整,当缓存数据达到设定规模时,一次性集中刷新到服务器的文件系统中;(4)、查询数据时,根据所需查询的设备标识(id)与时间段,读取相应文件并筛选出查询结果。 步骤I中,在指定时间段,设备数据文件与设备id —一对应,或一个设备数据文件存储多个id设备的数据记录。步骤3中,数据存储的步骤具体步骤如下a、设备上传的数据通过网关传送到设备数据队列山、从设备数据队列批量获取设备数据,检查记录合法性,并将有效记录放入内存I ;c、定期检查内存I的设备数据记录数,内存I内的设备数据记录数超过限额,则将这些记录一次性追加到当前 临时文件中;并同时把内存I的所有记录按时间段和id进行规整,规整后的数据移入内存II和内存III中;d、内存III中缓存记录数超过设定限额(一次批量写入磁盘的记录数),将内存III中缓存记录按步骤I和2中的规则写入磁盘;e、将内存III中缓存记录刷新到服务器的文件系统,完成海量数据的存储。内存II中缓存经过规整但尚未写入文件系统的设备数据,供内存查询,内存II和服务器文件系统构成了查询数据库。步骤4中,接到外部的查询请求时,由查询的设备id和时间段定位到对应的设备数据文件,进入内存II和服务器文件系统检索相应的设备数据文件,读取相应的记录并进行排序处理,最后返回响应。如图I所示,本专利技术的具体实施例的操作步骤如下I、在服务器的文件系统中,按日期建立目录,每个目录下是众多以<id>. data命令的设备数据文件,每个文件存放对应设备id在指定日期的所有数据记录。为减少日期目录下文件数目,可以将连续的设备id记录存到一个文件。例如,如果设定5个id共用一个设备数据文件,则<id/5>. data就存放对应5个设备id的数据记录。2、设备上报的数据通过网关等一系列中间模块传送到设备数据队列。3、GetterThread从设备数据队列批量获取设备数据,检查记录合法性,并将有效记录放入内存queue。4、本文档来自技高网...

【技术保护点】
海量数据存储和检索方法,其特征在于:包括以下步骤:(1)、在服务器的文件系统中,按时间段建立目录,每个目录下包含众多.data命令的设备数据文件,每个设备数据文件存放对应设备id在指定时间段的所有数据记录;(2)、服务器收到设备上传数据后,根据数据上报时段将同一时间段上报的所有数据汇总到以该时间段命名的目录下,然后根据设备标识(id)把某时段内一个或多个设备的上报数据汇总到以该时段命名的目录下的与该设备标识关联的文件内;(3)、进行数据存储时,先缓存一定规模的上报数据,并按步骤1和2对缓存数据进行规整,当缓存数据达到设定规模时,一次性集中刷新到服务器的文件系统中;(4)、查询数据时,根据所需查询的设备标识(id)与时间段,读取相应文件并筛选出查询结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:唐耀斌朱文俊
申请(专利权)人:深圳市谷米科技有限公司
类型:发明
国别省市:

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

1