CN102750377B - 海量数据存储和检索方法 - Google Patents

海量数据存储和检索方法 Download PDF

Info

Publication number
CN102750377B
CN102750377B CN201210210314.5A CN201210210314A CN102750377B CN 102750377 B CN102750377 B CN 102750377B CN 201210210314 A CN201210210314 A CN 201210210314A CN 102750377 B CN102750377 B CN 102750377B
Authority
CN
China
Prior art keywords
data
internal memory
file
server
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210210314.5A
Other languages
English (en)
Other versions
CN102750377A (zh
Inventor
唐耀斌
朱文俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN TRICOMI TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN TRICOMI TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN TRICOMI TECHNOLOGY Co Ltd filed Critical SHENZHEN TRICOMI TECHNOLOGY Co Ltd
Priority to CN201210210314.5A priority Critical patent/CN102750377B/zh
Publication of CN102750377A publication Critical patent/CN102750377A/zh
Application granted granted Critical
Publication of CN102750377B publication Critical patent/CN102750377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

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

Claims (2)

1.一种海量数据存储和检索方法,其特征在于:包括以下步骤:
(1)、在服务器的文件系统中,按时间段建立目录,每个目录下包含众多<id>.data命令的设备数据文件,每个设备数据文件存放对应设备id在指定时间段的所有数据记录;在指定时间段的目录下,设备数据文件与设备id一一对应,或一个设备数据文件存储多个id设备的数据记录;
(2)、服务器收到设备上传数据后,根据数据上报时段将同一时间段上报的所有数据汇总到以该时间段命名的目录下,然后根据设备id把某时段内一个或多个设备的上报数据汇总到以该时段命名的目录下的与该设备标识关联的文件内;
(3)、进行数据存储时,先缓存一定规模的上报数据,并按步骤1和2对缓存数据进行规整,当缓存数据达到设定规模时,一次性集中刷新到服务器的文件系统中;数据存储的步骤具体步骤如下:a、设备上传的数据通过网关传送到设备数据队列;b、从设备数据队列批量获取设备数据,检查记录合法性,并将有效记录放入内存I;c、定期检查内存I的设备数据记录数,内存I内的设备数据记录数超过限额,则将这些记录一次性追加到当前临时文件中;并同时把内存I的所有记录按时间段和id进行规整,规整后的数据移入内存II和内存III中;d、内存III中缓存记录数超过设定限额,其中设定限额为一次批量写入磁盘的记录数,将内存III中缓存记录按步骤1和2中的规则写入磁盘;e、将内存III中缓存记录刷新到服务器的文件系统,完成海量数据的存储;
(4)、查询数据时,根据所需查询的设备id与时间段,读取相应文件并筛选出查询结果;接到外部的查询请求时,由查询的设备id和时间段定位到对应的设备数据文件,进入内存II和服务器文件系统检索相应的设备数据文件,读取相应的记录并进行排序处理,最后返回响应。
2.根据权利要求1所述的海量数据存储和检索方法,其特征在于:内存II中缓存经过规整但尚未写入文件系统的设备数据,供内存查询,内存II和服务器文件系统构成了查询数据库。
CN201210210314.5A 2012-06-21 2012-06-21 海量数据存储和检索方法 Active CN102750377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210210314.5A CN102750377B (zh) 2012-06-21 2012-06-21 海量数据存储和检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210210314.5A CN102750377B (zh) 2012-06-21 2012-06-21 海量数据存储和检索方法

Publications (2)

Publication Number Publication Date
CN102750377A CN102750377A (zh) 2012-10-24
CN102750377B true CN102750377B (zh) 2016-07-27

Family

ID=47030562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210210314.5A Active CN102750377B (zh) 2012-06-21 2012-06-21 海量数据存储和检索方法

Country Status (1)

Country Link
CN (1) CN102750377B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914471A (zh) * 2012-12-31 2014-07-09 北京启明星辰信息技术股份有限公司 一种海量事件的处理方法及装置
CN103198131B (zh) * 2013-04-11 2015-08-19 天脉聚源(北京)传媒科技有限公司 一种文件管理的方法和系统
CN103559217B (zh) * 2013-10-17 2016-06-01 北京航空航天大学 一种面向异构数据库的海量组播数据入库实现方法
CN104166738A (zh) * 2014-09-04 2014-11-26 北京国双科技有限公司 数据库查询处理的方法及装置
CN105739912A (zh) * 2014-12-11 2016-07-06 北京北方微电子基地设备工艺研究中心有限责任公司 半导体设备中实时数据的存储方法及系统
CN105138543A (zh) * 2015-07-09 2015-12-09 广州杰赛科技股份有限公司 一种数据的存储方法及系统
CN105592162B (zh) * 2016-01-20 2019-05-17 歌尔股份有限公司 基于多类型文件的上传方法及系统
CN106970964B (zh) * 2017-03-21 2021-01-19 深圳广联赛讯股份有限公司 基于共享内存的gps数据信息查询方法及系统
CN107846327A (zh) * 2017-11-13 2018-03-27 浪潮天元通信信息系统有限公司 一种网管性能数据的处理方法及装置
CN109710614A (zh) * 2018-12-28 2019-05-03 深圳市同行者科技有限公司 一种实时数据存储与查询的方法及装置
CN111078153B (zh) * 2019-12-20 2023-08-01 同方知网数字出版技术股份有限公司 一种基于文件的分布式存储方法
CN113721641A (zh) * 2021-09-02 2021-11-30 中国海洋大学 深海数据采集系统
CN115102936B (zh) * 2022-06-22 2023-11-21 苏州达家迎信息技术有限公司 批量信息上传方法、装置、存储介质及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996305A (zh) * 2006-12-22 2007-07-11 华为技术有限公司 一种数据存储及读取方法及装置以及数据传输系统
CN101170433A (zh) * 2006-10-25 2008-04-30 中兴通讯股份有限公司 数据库入库方法
CN101216821A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 数据采集系统的存储管理方法
CN101251861A (zh) * 2008-03-18 2008-08-27 北京锐安科技有限公司 一种海量数据加载和查询的方法
CN101980187A (zh) * 2010-10-13 2011-02-23 中兴通讯股份有限公司 数据入库方法和装置
CN102073697A (zh) * 2010-12-28 2011-05-25 中兴通讯股份有限公司 一种数据处理方法及装置
CN102164043A (zh) * 2010-10-27 2011-08-24 青岛海信传媒网络技术有限公司 日志上报方法及终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170433A (zh) * 2006-10-25 2008-04-30 中兴通讯股份有限公司 数据库入库方法
CN1996305A (zh) * 2006-12-22 2007-07-11 华为技术有限公司 一种数据存储及读取方法及装置以及数据传输系统
CN101216821A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 数据采集系统的存储管理方法
CN101251861A (zh) * 2008-03-18 2008-08-27 北京锐安科技有限公司 一种海量数据加载和查询的方法
CN101980187A (zh) * 2010-10-13 2011-02-23 中兴通讯股份有限公司 数据入库方法和装置
CN102164043A (zh) * 2010-10-27 2011-08-24 青岛海信传媒网络技术有限公司 日志上报方法及终端
CN102073697A (zh) * 2010-12-28 2011-05-25 中兴通讯股份有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN102750377A (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN102750377B (zh) 海量数据存储和检索方法
CN104040481B (zh) 用于融合、存储和检索增量式备份数据的方法和系统
CN101534213B (zh) 一种日志的获取方法及日志服务器
CN101103355B (zh) 管理数据删除的方法和装置
MX2009000589A (es) Procesamiento de datos a traves de bases de datos muy grandes.
CN102291256B (zh) 一种监控数据的查询方法和设备
CN102375853A (zh) 分布式数据库系统、在其中建立索引的方法和查询方法
US20110153603A1 (en) Time series storage for large-scale monitoring system
CN103793479A (zh) 日志管理方法及系统
JP2010529554A5 (zh)
CA2910211A1 (en) Object storage using multiple dimensions of object information
CN102750326A (zh) 一种基于精简策略的集群系统的日志管理优化方法
CN103793493B (zh) 一种处理车载终端海量数据的方法和系统
CN1489737A (zh) 虚拟磁带存储系统和方法
CN105303456A (zh) 电力传输设备监控数据处理方法
CN102662713B (zh) 提高应用程序运行速度的方法、装置及终端
CN103916465A (zh) 一种基于分布式文件系统的数据预读装置及其方法
CN103037203B (zh) 一种基于块存储的索引恢复方法和装置
CN1996305A (zh) 一种数据存储及读取方法及装置以及数据传输系统
CN103780877A (zh) 基于h264编码的海量视频数据的存储及检索方法
CN105897859A (zh) 一种存储系统
CN101788887A (zh) 磁盘阵列中一种基于数据库的i/o缓存流的系统及方法
CN109189724B (zh) 提高视频监控系统音视频数据存储效率的方法及装置
CN202854794U (zh) 海量数据存储器
KR20160091471A (ko) 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
DD01 Delivery of document by public notice

Addressee: SHENZHEN GOOME TECHNOLOGY Co.,Ltd. Person in charge of patents

Document name: payment instructions

DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: SHENZHEN GOOME TECHNOLOGY Co.,Ltd. Person in charge of patents

Document name: payment instructions

DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: SHENZHEN GOOME TECHNOLOGY Co.,Ltd. Person in charge of patents

Document name: Notice of Termination of Patent Rights

DD01 Delivery of document by public notice