一种支持编辑的时序数据在线压缩方法

文档序号:8415271阅读:1162来源:国知局
一种支持编辑的时序数据在线压缩方法
【专利说明】一种支持编辑的时序数据在线压缩方法
[0001]
技术领域
[0002]本发明涉及一种时序数据的在线压缩存贮方法,具体涉及一种工业自动化领域的连续量测数据的在线压缩存贮方法。
【背景技术】
[0003]近些年来,随着经济的高速发展,计算机技术迅速发展并被广泛应用于工业自动化领域。由于工业自动化领域的控制、管理水平的不断提升以及规模的不断扩大,需要快速处理采集大量范围更广、采集密度更大的数据。这些数据由于是按时间顺序记录的数据,一般被称为时序数据。为了速实现时序数据的存取,目前主要采取以下几种方法:
一是采用传统的压缩算法,如zip、LZW等。这些压缩算法能够实现用较小的存贮空间存贮大量时序数据的目的,但由于压缩算法原理的限制,不能满足实时性。
[0004]二是采用有损的在线压缩算法,如死区值压缩算法、STD压缩算法等,这些算法能够满足实时性及存贮空间的要求,但由于是有损压缩,在满足实时性及存贮空间的要求后,往往会有较大的数据精度损失,满足不了相应领域的精度要求。
[0005]还有一些采用特殊结构只存贮变化的时序数据的方法,这些方法在某些特定的条件下(如数据的采样间隔固定、数据值的的波动很小的情况下)可以满足实时性及存贮空间的要求,但离开了这些特定条件,往往效果不理想,更为重要的是,如果后期对存贮的时序数据进行修改,这种方法就很难实现,因为被修改的数据很可能是由于没有变化而未存贮的数据。

【发明内容】

[0006]本发明旨在提供一种支持编辑的时序数据在线压缩方法,不仅能够快速高效地压缩存贮时序数据,而且支持存贮后对时序数据的修改。
[0007]本发明的技术方案如下:
一种支持编辑的时序数据在线压缩方法,其特征在于:以数据块为基本存贮单位,把时序数据分解成时序值组和质量组,分别在数据块的头部和尾部压缩存贮,直到数据块存贮满;所述时序值组包括时序数据的ID、时间、毫秒和值;所述质量组包括时序数据的序号和质量。
[0008]具体按照以下步骤对时序数据进行在线压缩:
1)、创建数据块:对于要存贮的时序数据,每个ID对应一个数据块进行存贮,如果没有数据块或者数据块存贮满,则创建新数据块;
2)、数据块中存贮数据序号为I时,把时序数据的ID、时间、毫秒和值作为时序值组存贮在数据块的头部,并把时序数据的序号和质量作为质量组存贮于数据块的尾部,质量组占用空间为6字节,其中序号占2字节,质量占4字节; 3)、数据块中存贮数据序号大于I时,首先判断数据块剩余空间是否能够存贮相应序号的数据,如果剩余空间不够,执行步骤I);
4)、如果存贮的数据类型为数字量,计算当前序号的数据与上一序号的数据之间的时间差Λ tl,把毫秒值除以4得Si,把上一序号的Si记录为sO,上一序号的值记为vO,如果Λ tl>65535,则把65535、s0和vO组成时序值组,存贮在上一序号值后面,然后执行步骤3);如果Λ tl〈=65535,把Λ tl、sl和值组成时序值组,存贮上一序号值的后面;时序值组的Δ tl占两字节,Si占I字节,值占I字节,数字量的值为O或I ;比较当前序号的质量与上一条数据的质量,如果质量不同,把质量组存贮在上一序号质量组的序号的前面;如果质量相同,该序号的质量不作存贮处理;
如果存贮的数据类型为模拟量,计算当前序号的数据与上一序号的数据之间的时间差Δ tl,当前序号的数据与序号为I的数据之间的值差为Λ V,把毫秒值除以4得Si,把上一序号的si记录为sO,上一序号的值差记为Λ νΟ,如果Λ tl>65535,则把65535、sO和Λ vO组成时序值组,存贮在上一序号值后面,然后执行步骤3);如果厶丨1〈=65535,把厶〖1、81和Λ V组成时序值组,存贮上一序号值的后面;时序值组的Atl占两字节,Si占I字节,Λ V占3字节;按照如下方法用3字节存贮浮点数Λ V:a)、记Λ V的符号为s,s取值为O或I存于最高位,占I位;b)、计算Λ V的指数位为e,存IC在s的后面,占7字节;c)、截取Λ V的前17位m,其最高位为隐含位,存贮在e后面,占16字节;比较当前序号的质量与上一条数据的质量,如果质量不同,把质量组存贮在上一序号质量组的序号的前面;如果质量相同,该序号的质量不作存贮处理;
5 )、重复执行上述步骤,直到需要存贮的数据全部存贮完成。
[0009]具体按照以下方法对时序数据进行在线编辑:
1)、对时序数据修改时用ID及时间做条件,对相应时间点上的时序数据值进行修改;
2)、根据索引信息,定位要修改数据的存贮数据块及存贮序号n,找到要修改数据的存IC时序值组(Λ tn,sn,vn);
3)、如果修改的数据类型为数字量,直接把要修改的新值V记入时序值组(Λtn, sn,V)存贮;
如果修改的数据类型为模拟量,把要修改的新值V与序号为I的数据之间的值差记为Λ vn,组成序值组(Λ tn,sn,Λνη)#|£。
[0010]本发明的积极效果在于:
1、本发明通过把时序数据分解成时序值组和质量组进行压缩存贮,在时序数据质量稳定的情况下,数字量类型的时序数据仅占用4字节存贮空间,通过对浮点值的进一步压缩,模拟量类型的时序数据仅占6字节的存贮空间,因此明显降低了数据量,提升了系统性能。
[0011]2、本发明通过对每条原始数据都对应一个时序值组的存贮方法,使压缩存贮后的数据可以支持快速的编辑修改。
[0012]3、本发明用较小的存贮空间存贮时序数据,且时间精度最小单位为4毫秒,可满足高密度的时序数据存贮(如WAMS等)。
【附图说明】
[0013]图1是本发明时序数据在线压缩存贮示意图。
【具体实施方式】
[0014]下面结合附图和【具体实施方式】进一步说明本发明。
[0015]本发明以数据块为基本存贮单位,依据时序数据的特点(时序性、数据质量相对稳定性),把时序数据分解成时序值组和质量组,分别在数据块的头部和尾部压缩存贮,至到数据块存贮满。
[0016]参见图1,时序数据在线压缩方法的主要骤如下:
1、创建数据块:对于要存贮的时序数据,每个ID的对应一个数据块进行存贮,如果没有数据块或者数据块存贮满,则创建新数据块。
[0017]2、数据块中存贮数据序号为I时(第一次存入),把时序数据的ID、时间、毫秒、值存贮在数据块的开始处,把(序号、质量)组成质量组,存贮于数据块的尾部,质量组占用空间为6字节。
[0018]3、数据块中存贮数据序号为>1时,首先判断数据块剩余空间是否能够存贮相应序号的数据,如果不能空间不够,执行步骤I。
[0019]4、如果存贮的数据类型为数字量,计算当前序号的数据与上一序号的数据之间的时间差Λ tl,把毫秒值除以4得Si,把上一序号的Si记录
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1