CN101894153A - 一种基于环形存储表的数据动态压缩保存方法 - Google Patents

一种基于环形存储表的数据动态压缩保存方法 Download PDF

Info

Publication number
CN101894153A
CN101894153A CN2010102215635A CN201010221563A CN101894153A CN 101894153 A CN101894153 A CN 101894153A CN 2010102215635 A CN2010102215635 A CN 2010102215635A CN 201010221563 A CN201010221563 A CN 201010221563A CN 101894153 A CN101894153 A CN 101894153A
Authority
CN
China
Prior art keywords
time
storage
data
layout
storage space
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.)
Pending
Application number
CN2010102215635A
Other languages
English (en)
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.)
Wuhan Greenet Information Service Co Ltd
Original Assignee
Wuhan Greenet Information Service 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 Wuhan Greenet Information Service Co Ltd filed Critical Wuhan Greenet Information Service Co Ltd
Priority to CN2010102215635A priority Critical patent/CN101894153A/zh
Publication of CN101894153A publication Critical patent/CN101894153A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

本发明公开了一种基于环形存储表的数据动态压缩保存方法,包括如下步骤:将时间区间按照时间粒度划分为多个连续的时间格,每个时间格对应一个时间点,连续的时间格构成存储表;当当前时间到达存储表的时间格对应的时间点时,根据时间点获取的数据量确定压缩参数以及根据压缩参数确定数据量压缩后的存储空间,向对应时间格存储压缩参数和存储空间的位置索引,向位置索引指示的位置存储所述压缩后的数据,直至存储表的最后一个时间格对应的时间点结束时,翻转回存储表的第一个时间格,此时存储表成为环形存储表。本方法能快速存储长期详细的历史数据,并保证查询效率,节省存储空间。

Description

一种基于环形存储表的数据动态压缩保存方法
技术领域
本发明涉及在互联网业务分析应用中的一种基于环形存储表的数据动态压缩保存方法。
背景技术
我国的网络在飞速地发展着,一方面网络资源不断成倍的增加,但是另一方面网民需求的增长却更为迅猛。近些年来,大型运营商面对日益增长的需求不断地扩充网络容量。然而,除了不断地扩充网络容量,也需要针对网络实际运行情况,在资源分配的方案上做出有效优化。
然而,针对网络运行情况提出优化方案时,必须掌握网络中各类关键数据(如时间、用户、网络、网络流量,即在某用户在某时间使用某网络产生多少网络流量),并长期保存和查阅所述关键数据。由于存储的关键数据是非常详细的历史数据,数据量非常大,而存储介质容量是有限的,如果不限定存储的时间/粒度,存储介质无法存储无限长时间的数据量。
现有的网络数据保存方法中,有的数据库查询效率比较高,但是不能存储长期的详细历史数据以供日后查询;有的数据库能存储长期的详细历史数据,但是存储空间浪费严重,且查询效率非常低。
因此,有必要提供一种改进的网络数据保存方法来克服现有技术的缺陷。
发明内容
本发明的目的是提供一种基于环形存储表的数据动态压缩保存方法,能快速存储长期详细的历史数据,并保证查询效率,节省存储空间。
为了实现上述目的,本发明提供了一种基于环形存储表的数据动态压缩保存方法包括如下步骤:确定时间区间和时间粒度,将所述时间区间按照所述时间粒度划分为多个连续的时间格,每个时间格对应一个时间点,所述连续的时间格构成存储表;当当前时间到达存储表的时间格对应的时间点时,根据所述时间点获取的数据量确定压缩参数以及根据所述压缩参数确定数据量压缩后的存储空间,向所述时间格存储所述压缩参数和所述存储空间的位置索引,向所述位置索引指示的位置存储所述压缩后的数据,直至所述存储表的最后一个时间格对应的时间点结束,翻转回所述存储表的第一个时间格,此时所述存储表成为环形存储表。
在本发明的一个实施例中,所述根据所述时间点获取的数据量确定压缩参数的步骤具体为:根据所述时间点获取的数据量确定选择编码方式,根据编码方式确定压缩参数。
在本发明的另一实施例中,所述环形存储表的第一个时间格存储对应的绝对时间,最后一个时间格存储对应的绝对时间,当前时间格存储对应的当前时间。
在本发明的又一实施例中,所述方法还包括:根据每个时间格对应的已存储数据所占用的存储空间确定最大峰值存储空间、最小峰值存储空间、以及平均存储空间;根据所述最大峰值存储空间、以及平均存储空间预测将存储的数据占用的空间。
在本发明的又一实施例中,所述方法还包括:当预测的将存储的数据占用的空间大于所述第一时间格对应的已存储数据占用的存储空间时,在最后一个时间格后延伸一预置时间格,所述预置时间格对应存储所述将存储的数据。
与现有技术相比,本发明基于环形存储表的数据动态压缩保存方法将时间格对应的时间点获取的数据量进行压缩存储,并将压缩存储的位置使用位置索引保存在时间格中,在查找数据时可以根据位置索引找到压缩的数据,因此本方法不仅能节省存储空间,而且能提高查询效率。另外,时间格可以为根据用户选定的时间区间定义多个时间格,因此本方法可以存储长期详细的历史数据。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1为本发明基于环形存储表的数据动态压缩保存方法的流程图。
图2a为图1所示基于环形存储表的数据动态压缩保存方法中环形存储表的示意图。
图2b展示了图2a所示环形存储表中时间格与数据之间的映射关系。
具体实施方式
现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。
如图1,本实施例基于环形存储表的数据动态压缩保存方法包括如下步骤:
步骤S1,确定时间区间和时间粒度,将所述时间区间按照所述时间粒度划分为多个连续的时间格,每个时间格对应一个时间点(绝对时间),所述连续的时间格构成存储表(若选取30天的时间区间,时间粒度定为分钟,则如图1左半部分所示,从“起始点”开始建立一个连续的时间格组成的序列集合,其中时间格的个数为60×24×30=43200);
步骤S2,当存储表的第一个时间格对应的时间点到达时,根据所述时间点获取的数据量确定压缩参数以及根据所述压缩参数确定数据量压缩后的存储空间,向所述第一时间格存储所述压缩参数和所述存储空间的位置索引,向所述位置索引指示的位置存储所述压缩后的数据;
步骤S3,当存储表的其他时间格对应的时间点到达时,根据对应时间点获取的数据量确定压缩参数以及根据所述压缩参数确定数据量压缩后的存储空间,向对应时间格存储所述压缩参数和所述存储空间的位置索引,向所述位置索引指示的位置存储所述压缩后的数据;以及
步骤S4,当存储表的最后一个时间格对应的时间点到达时,根据所述时间点获取的数据量确定压缩参数以及根据所述压缩参数确定数据量压缩后的存储空间,向所述最后一个时间格存储所述压缩参数和所述存储空间的位置索引,向所述位置索引指示的位置存储所述压缩后的数据,转步骤S2,此时所述存储表成为环形存储表。
由上可以看出,本实施例基于环形存储表的数据动态压缩保存方法将时间格对应的时间点获取的数据量进行压缩存储,并将压缩存储的位置使用位置索引保存在时间格中,在查找数据时可以根据位置索引找到压缩的数据,因此本方法不仅能节省存储空间,而且能提高查询效率。另外,时间格可以为根据用户选定的时间区间定义多个时间格,因此本方法可以存储长期详细的历史数据。
在步骤S 1中,由于时间格的数量由选取的时间区间(最长数据存储周期)以及时间粒度确定,因此根据选取的时间区间和时间粒度可以对存储表的大小进行动态的控制,能适应不同用户的要求。另外,存储表的每个时间格容量小且容量固定,方便常驻内存。
下面详细说明步骤S2、S3、S4。从存储表的第一个时间格随着时间的推移顺序其他时间格存储数据(时间格存储的数据下面会详细描述),直至到达存储表的最后一个时间格,当最后一个时间格存储完毕之后,自动翻转回存储表的第一个时间格,向第一个时间格存储数据(覆盖第一个时间格最初存储的数据),然后随着时间的推移继续顺序向存储表的其他时间格存储数据,直至再次达到最后一个时间格。这个过程周而复始,从而形成一个所述环形存储表,如图2a所示。
较佳地,所述方法还包括如下步骤:
根据每个时间格对应的已存储数据所占用的存储空间确定最大峰值存储空间、最小峰值存储空间、以及平均存储空间,其中,所述平均存储空间是根据最大峰值存储空间、最小峰值存储空间、以及总体存储空间的算数平均值加权计算得到的,计算公式为:
SSaverage=(SSmax+SSmin+t×SSavg)/(t+2),其中,SSaverage为平均存储空间,SSmax为最大峰值存储空间,SSmin为最小峰值存储空间,SSavg为总体存储空间的算数平均值(所有时间格对应的已存储数据所占用的存储空间之和与时间格个数的商),t是权值,为一个经验值,一般可以取4(参考高等数学的辛普森公式得来)。
根据所述最大峰值存储空间、以及平均存储空间预测将存储的数据占用的空间,所述预测公式为:
SS=SSmax×p+SSaverage×(1-p),其中,p为一个经验值,取值为0至1之间的小数,一般为0.25左右(根据概率计算得来,因为一天之中流量高峰时段一般不会超过6个小时,6/24=0.25)。
其中,所述时间格可为以分钟、小时、天、周、月等为单位的一段时间。
由于不同的间隔时间段数据压缩比率是不一样的,压缩比小的数据需要的存储空间大,压缩比大的数据需要的存储空间小,因此,当一个时间格周期完毕之后,将要存储的压缩比小的数据会覆盖已存储的压缩比大的数据,从而产生数据重叠。而上述步骤在一个周期时间格完毕后,预测将存储的数据的占用的空间,能保证已存储的数据不会过早被覆盖。
另外,所述方法还包括如下步骤:
当预测的将存储的数据占用的空间大于第一时间格对应的已存储数据占用的存储空间时,在最后一个时间格后延伸一预置时间格,所述预置时间格对应存储将存储的数据。
这样,可以避免在翻转之后,将存储的占用空间大的数据覆盖以存储的占用空间小的数据,在最后一个时间格后延伸预置时间格,可以避免数据丢失,保证数据完整。
其中,所述预置时间格对应的时间可以为1/5个周期。
所述环形存储表的第一个时间格存储对应的绝对时间,最后一个时间格存储对应的绝对时间,当前时间格存储对应的当前时间,其他时间格无需存储对应的绝对时间,因为所有时间格是连续的,因此通过第一个时间格对应的绝对时间、最后一个时间格对应的绝对时间以及当前时间格对应的当前时间可以计算其他时间格对应的绝对时间。计算方法具体如下:
1)时间格未出现“翻转”时:令第一个时间点为T0,最后一个时间点为Tn,当前时间为T1,M为每个时间格表示的粒度(单位以秒计,假设时间粒度为分钟,则M的值为60),则其他任一绝对时间t对应的时间格计算公式为:
x=(t-T0)%M,其中T0≤t≤Tn且T1≤Tn
2)时间格出现“翻转”时:令第一个时间点为Tn+1,最后一个时间点为Tn,当前时间为T1,M为每个时间格表示的粒度(单位以秒计,假设时间粒度为分钟,则M的值为60),则其他任一绝对时间t对应的时间格计算公式为:
Figure BSA00000182315400051
因此,每个时间格都对应一时间点,所以在内存中能够快速查找当前时间格对应的时间点,时间格对应时间点的方式提升了当前时间点的查找速度。
另外,所述环形存储表的每个时间格存储对应的时间点获取的数据的压缩参数字段和存储空间的位置索引。
所述压缩参数字段包含压缩参数。所述压缩参数与所述时间格对应的时间点获取的数据量有关。具体的,根据时间格对应的时间点获取的数据量选择编码方式,根据编码方式确定压缩参数进而压缩数据,获得数据压缩后的存储空间大小。这种根据时间格对应的时间点获取的数据量确定压缩参数进行压缩的方式,对于不断变动的数据,不采用定长的存储模式(数据可为64位、32位、16位、或8位,变化范围较大,如果对数据统一采用64位定长的存储模式,会造成存储空间很大浪费),而根据数据量的大小动态地选择编码方式进行数据压缩,从而根据数据压缩后的存储空间大小分配存储的空间,因此适于网络实际运行情况,能节省大量的数据存储空间,在实际产品中,通过对比发现节约了超过50%的存储空间,空间利用率得到大大提升。由于不采用字符编码映射或加密的方式,因此该压缩方式不需要任何特殊的信息还原技术就能快速读取存储的数据,
所述存储空间的位置索引用以指示数据存储空间的位置。如果当前时间所对应的时间格对应没有任何数据,则此时间格为空,所述存储空间的位置索引指示的位置为空;若当前时间所对应的时间格对应有数据,则根据所述压缩参数字段申请相应的存储空间来存储数据,此时存储空间的位置索引指示的位置为申请的存储空间,在所述位置索引指示的存储空间存储数据。因此,如图2b所示,当在内存中查找到当前时间格对应的当前时间点后,可直接根据当前时间点获取存储空间的位置索引,根据所述位置索引找出存储的数据,根据压缩参数字段中的压缩参数对数据进行还原,得到最终数据。因此,本实施例时间格存储的时间点、存储空间的位置索引以及压缩参数字段之间的相互链接能减少了磁盘的请求次数,从而提升了检索速度。
以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

Claims (5)

1.一种基于环形存储表的数据动态压缩保存方法,包括如下步骤:
确定时间区间和时间粒度,将所述时间区间按照所述时间粒度划分为多个连续的时间格,每个时间格对应一个时间点,所述连续的时间格构成存储表;
当当前时间到达存储表的时间格对应的时间点时,根据所述时间点获取的数据量确定压缩参数以及根据所述压缩参数确定数据量压缩后的存储空间,向对应时间格存储所述压缩参数和所述存储空间的位置索引,向所述位置索引指示的位置存储所述压缩后的数据,直至所述存储表的最后一个时间格对应的时间点结束时,翻转回所述存储表的第一个时间格,此时所述存储表成为环形存储表。
2.如权利要求1所述的基于环形存储表的数据动态压缩保存方法,其特征在于,所述根据所述时间点获取的数据量确定压缩参数的步骤具体为:
根据所述时间点获取的数据量确定选择编码方式,根据编码方式确定压缩参数。
3.如权利要求1所述的基于环形存储表的数据动态压缩保存方法,其特征在于,所述环形存储表的第一个时间格存储对应的绝对时间,最后一个时间格存储对应的绝对时间,当前时间格存储对应的当前时间。
4.如权利要求1所述的基于环形存储表的数据动态压缩保存方法,其特征在于,还包括:
根据每个时间格对应的已存储数据所占用的存储空间确定最大峰值存储空间、最小峰值存储空间、以及平均存储空间;
根据所述最大峰值存储空间、以及平均存储空间预测将存储的数据占用的空间。
5.如权利要求4所述的基于环形存储表的数据动态压缩保存方法,其特征在于,还包括:
当预测的将存储的数据占用的空间大于所述第一时间格对应的已存储数据占用的存储空间时,在最后一个时间格后延伸一预置时间格,所述预置时间格对应存储所述将存储的数据。
CN2010102215635A 2010-06-29 2010-06-29 一种基于环形存储表的数据动态压缩保存方法 Pending CN101894153A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102215635A CN101894153A (zh) 2010-06-29 2010-06-29 一种基于环形存储表的数据动态压缩保存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102215635A CN101894153A (zh) 2010-06-29 2010-06-29 一种基于环形存储表的数据动态压缩保存方法

Publications (1)

Publication Number Publication Date
CN101894153A true CN101894153A (zh) 2010-11-24

Family

ID=43103345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102215635A Pending CN101894153A (zh) 2010-06-29 2010-06-29 一种基于环形存储表的数据动态压缩保存方法

Country Status (1)

Country Link
CN (1) CN101894153A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838766A (zh) * 2012-11-26 2014-06-04 深圳市腾讯计算机系统有限公司 防空缓存方法和装置
CN104574222A (zh) * 2015-01-30 2015-04-29 国家电网公司 一种存储分布式光伏电站运行数据的方法
CN107590157A (zh) * 2016-07-08 2018-01-16 腾讯科技(深圳)有限公司 一种数据存储方法、数据查询方法及相关设备
CN108228679A (zh) * 2016-12-22 2018-06-29 阿里巴巴集团控股有限公司 时序数据计量方法和时序数据计量装置
CN108984723A (zh) * 2018-07-10 2018-12-11 阿里巴巴集团控股有限公司 创建索引、数据查询方法、装置及计算机设备
CN109274545A (zh) * 2017-07-17 2019-01-25 北京航空航天大学 一种基于混合云的循环存储方法
CN111147483A (zh) * 2019-12-25 2020-05-12 武汉绿色网络信息服务有限责任公司 一种对原始网络数据包的有损压缩存储方法和装置
CN113885810A (zh) * 2021-12-07 2022-01-04 北京智科车联科技有限公司 车联网数据的处理方法、装置、存储介质和电子设备
CN114328563A (zh) * 2021-12-31 2022-04-12 北京深演智能科技股份有限公司 数据更新的控制方法及装置
CN115174606A (zh) * 2021-03-18 2022-10-11 台湾优化水务股份有限公司 流体量时间变化模式数据编码方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838766A (zh) * 2012-11-26 2014-06-04 深圳市腾讯计算机系统有限公司 防空缓存方法和装置
CN103838766B (zh) * 2012-11-26 2018-04-06 深圳市腾讯计算机系统有限公司 防空缓存方法和装置
CN104574222A (zh) * 2015-01-30 2015-04-29 国家电网公司 一种存储分布式光伏电站运行数据的方法
CN107590157A (zh) * 2016-07-08 2018-01-16 腾讯科技(深圳)有限公司 一种数据存储方法、数据查询方法及相关设备
CN108228679A (zh) * 2016-12-22 2018-06-29 阿里巴巴集团控股有限公司 时序数据计量方法和时序数据计量装置
CN108228679B (zh) * 2016-12-22 2022-02-18 阿里巴巴集团控股有限公司 时序数据计量方法和时序数据计量装置
CN109274545A (zh) * 2017-07-17 2019-01-25 北京航空航天大学 一种基于混合云的循环存储方法
CN108984723A (zh) * 2018-07-10 2018-12-11 阿里巴巴集团控股有限公司 创建索引、数据查询方法、装置及计算机设备
CN111147483A (zh) * 2019-12-25 2020-05-12 武汉绿色网络信息服务有限责任公司 一种对原始网络数据包的有损压缩存储方法和装置
CN111147483B (zh) * 2019-12-25 2021-11-12 武汉绿色网络信息服务有限责任公司 一种对原始网络数据包的有损压缩存储方法和装置
CN115174606A (zh) * 2021-03-18 2022-10-11 台湾优化水务股份有限公司 流体量时间变化模式数据编码方法
CN113885810A (zh) * 2021-12-07 2022-01-04 北京智科车联科技有限公司 车联网数据的处理方法、装置、存储介质和电子设备
CN114328563A (zh) * 2021-12-31 2022-04-12 北京深演智能科技股份有限公司 数据更新的控制方法及装置
CN114328563B (zh) * 2021-12-31 2023-07-14 北京深演智能科技股份有限公司 数据更新的控制方法及装置

Similar Documents

Publication Publication Date Title
CN101894153A (zh) 一种基于环形存储表的数据动态压缩保存方法
CN102479223B (zh) 数据查询方法及系统
CN101095139B (zh) 使用逐字节比较来搜索和提供对象
JP6667931B2 (ja) 音声情報から時間情報を認識するための方法およびデバイス
CN103019737A (zh) 一种应用程序快捷方式的显示方法和装置
CN102419752A (zh) 一种工业数据库报文存储方法
CN103714145A (zh) 关系型和Key-Value型数据库空间数据索引方法
CN104123340A (zh) 一种数据库分表分页查询方法及系统
CN104361042A (zh) 一种信息检索方法及装置
CN102890722A (zh) 应用于时序历史数据库的索引方法
CN102307234A (zh) 基于移动终端的资源检索方法
CN102129425A (zh) 数据仓库中大对象集合表的访问方法及装置
US8854239B2 (en) Data processing apparatus and method
WO2017076297A1 (zh) 设备存放位置的查找方法及装置
CN104539750A (zh) 一种ip定位方法和装置
CN102236580A (zh) 为etl任务分配节点的方法和调度系统
CN101887310A (zh) 一种输入状态及键盘样式的切换方法和装置
CN101778400A (zh) 基于数据库的话务量分析与预测系统及使用该系统的话务量预测方法
CN103559209A (zh) 一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法
CN105573782A (zh) 一种用于透明可穿戴智能设备的软件预加载方法
CN102663097A (zh) 一种基于Hadoop+Hbase的农业时序数据组织方法
CN110502543A (zh) 设备性能数据存储方法、装置、设备和存储介质
CN105574204B (zh) 分布式电网调控运行数据的检索方法及系统
CN105095224A (zh) 一种在移动通信网络中进行olap分析的方法、装置和系统
CN105939388A (zh) 一种推送业务内容的方法和内容控制器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20101124