一种数据存储方法

文档序号:8412462阅读:306来源:国知局
一种数据存储方法
【技术领域】
[0001]本发明涉及数据存储技术领域,尤其涉及一种数据存储方法。
【背景技术】
[0002]随着各种大数据量软件的应用,对于大数据存储的需求越来越迫切。现有技术中,实现数据存储的方案在大数据量存储和处理方面均存在相应的缺陷,从而导致大数据量文件的存储容量比较大,并且不易于读写处理,同时也会占用较多的系统资源。

【发明内容】

[0003]根据现有技术中存在的问题,现提供一种数据存储方法的技术方案,旨在解决现有技术中存在的海量数据存储不便的问题。
[0004]上述技术方案具体包括:
[0005]一种数据存储方法,适用于基于时间序列存储的数据;其中,将所述数据保存于一存储空间中;
[0006]于所述存储空间中划分出至少一个第一存储区域;
[0007]将每个所述第一存储区域划分为:
[0008]第一存储区块,所述第一存储区块中被划分为多个存储容量相等的第一存储块,被实时采集的实时数据被依序写入相应的所述第一存储块中;
[0009]第二存储区块,所述第二存储区块被划分为多个存储容量相等的第二存储块,每个所述第二存储块中保存有相应的归并数据;
[0010]所述归并数据为以预定的第一循环周期对保存于连续多个所述第一存储块中的所有所述实时数据做归并计算后得到的数据;
[0011]清除已经完成归并计算的连续多个所述第一存储块中保存的所述实时数据,并将新产生的所述实时数据依序写入已被清空的所述第一存储块中,以完成所述实时数据的循环保存;
[0012]以预定的第二循环周期清除至少一个所述第二存储块中保存的所述归并数据,并将新产生的所述归并数据依序写入已被清空的所述第二存储块中,以完成所述归并数据的循环保存。
[0013]优选的,该数据存储方法,其中,对所述实时数据进行归并计算的方法包括:
[0014]将预设的存储时段内保存的一类所有所述实时数据的平均值作为相应的所述归并数据;或者
[0015]将需要进行归并计算的连续多个所述第一存储块中保存的所有所述实时数据中的最小值作为相应的所述归并数据;或者
[0016]将需要进行归并计算的连续多个所述第一存储块中保存的所有所述实时数据中的最大值作为相应的所述归并数据;或者
[0017]将需要进行归并计算的连续多个所述第一存储块中保存的所有所述实时数据中最后一个被保存的所述实时数据作为相应的所述归并数据;或者
[0018]将需要进行归并计算的连续多个所述第一存储块中保存的所有所述实时数据的总和值作为相应的所述归并数据。
[0019]优选的,该数据存储方法,其中,于相应的一个所述第一存储区域中保存同一类所述实时数据。
[0020]优选的,该数据存储方法,其中,于所述存储空间中划分出至少一个第二存储区域;
[0021]所述第二存储区域与所述第一存储区域一一对应;
[0022]于每个所述第二存储区域中保存对应于所述第一存储区域中保存的数据的相关信息;
[0023]所述相关信息包括:
[0024]对应所述第一存储区域中保存的所述实时数据的分类信息;
[0025]对应于所述第一存储区域中保存的所述实时数据的来源信息;
[0026]对应于所述第一存储区域中保存的所述实时数据的存储地址偏移信息;
[0027]对应于所述第一存储区域中保存的所述实时数据的归并计算方法信息。
[0028]优选的,该数据存储方法,其中,所述归并计算方法信息中包括:
[0029]用于表示每个所述第一存储块的存储容量的信息;
[0030]用于表示进行一次归并计算对应的所述第一存储块的数量的信息;
[0031]用于表示对应采用的归并计算方法的信息;
[0032]用于表示依照被采用的归并计算方法形成的归并计算函数的信息。
[0033]优选的,该数据存储方法,其中,根据外部输入的删除指令,删除相应的所述第二存储区域内保存的信息,以删除保存于相应的所述第一存储区域中的所有所述实时数据以及对应的所述归并数据。
[0034]上述技术方案的有益效果是:解决现有技术中大数据量保存不便的问题,降低了存储容量的需求,减轻系统负载以及系统资源的占用。
【附图说明】
[0035]图1-3是本发明的较佳的实施例中,存储空间的划分示意图;
[0036]图4是本发明的一个较佳的实施例中,采用本发明技术方案所述的数据存储方法与采用传统的数据存储方法之间的比较示意图表。
【具体实施方式】
[0037]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0039]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0040]对于大数据量的存储,尤其是基于时间序列不断产生并被保存的数据,在现有技术中还存在着较大的缺陷。以监控数据为例,由于监控软件在执行监控时,其所监控的节点规模可能从几十到几千,每个节点上的监控指标,也就是所监控的项目通常也在几十到上百左右,采集监控数据的间隔一般在1-5分钟,因此,每次监控都会产生海量的监控数据。
[0041]现有技术中,对于能够产生如上文中所述的大量基于时间序列排列的数据的数据产生软件,其存储方案通常会采用:
[0042]一些专用数据库执行,例如MRTG或者RRDTool配备的专用数据库;或者
[0043]一些专用的关系型数据库例如 RDBMS (Relat1nal Database ManagementSystem,关系数据库管理系统);或者
[0044]非关系型的数据库(NotOnly SQL,NoSQL),例如 LevelDB 或者 RockDB。
[0045]现有技术中,对于上述专用数据库而言,其单个数据库文件仅能保存一个指标的数据。同样以监控数据为例,单个数据库文件仅能保存一个监控指标相关的数据,例如仅能保存关于处理器监控的数据,而在一个监控软件运行的过程中,至少会产生上万个监控指标,因此会造成文件存储系统的碎片化,从而使得数据查询和数据备份的过程比较复杂,存储扩展性也较差。
[0046]而对于上述关系型数据库而言,由于需要支持ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolat1n)、持久性(Durability),因此在并发写入数据时性能损失比较大,系统资源占用也较高,在日常维护时也需要定时做一些历史数据删除等工作。
[0047]本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种数据存储方法。本发明的较佳的实施例中,该数据存储方法适用于基于时间序列存储的数据,例如上文中所述的监控数据。
[0048]本发明的较佳的实施例中,上述数据存储方法的内容具体包括:
[0049]将数据保存于一存储空间中。
[
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1