CN112667582A - 一种用于工业实时数据库的数据压缩方法 - Google Patents
一种用于工业实时数据库的数据压缩方法 Download PDFInfo
- Publication number
- CN112667582A CN112667582A CN202011523736.9A CN202011523736A CN112667582A CN 112667582 A CN112667582 A CN 112667582A CN 202011523736 A CN202011523736 A CN 202011523736A CN 112667582 A CN112667582 A CN 112667582A
- Authority
- CN
- China
- Prior art keywords
- point
- data
- time point
- current time
- current
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013144 data compression Methods 0.000 title claims abstract description 24
- 238000007906 compression Methods 0.000 claims abstract description 47
- 230000006835 compression Effects 0.000 claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006837 decompression Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种用于工业实时数据库的数据压缩方法,包括:获取待压缩数据序列并初始化周期阈值及调节周期参数;判断当前时间点是否为待压缩数据序列的第一个时间点,若当前时间点为第一个时间点,则保存对应数据值,之后更新当前时间点;否则基于双旋转门算法,判断当前时间点对应的数据值是否在待压缩数据序列的上下限值范围内,若为是,则直接更新当前时间点;否则保存当前时间点对应的数据值,之后再更新当前时间点;更新当前时间点之后判断是否出现新数据,若为是,则返回继续压缩过程;否则结束数据压缩过程。与现有技术相比,本发明通过设计一种双旋转门算法,能够充分考虑后续数据点的变化,进一步提高数据压缩率和压缩精度。
Description
技术领域
本发明涉及数据压缩技术领域,尤其是涉及一种用于工业实时数据库的数据压缩方法。
背景技术
在工业生产过程中,采集的数据点通常有几千到十几万,数据采集间隔达到秒级,导致数据量很大,采集的这些数据信息对于及时了解生产现场的实时情况、实现上层信息系统与底层控制系统的集成都具有重要意义。
传统关系型数据库,在管理生产过程数据时存在占用空间大、存取速度慢等不足。为了能够在海量信息中保留有用的数据,目前主要借助实时数据库实现这一目的,实时数据库RTDB(Real—TimeDataBase)是数据库与实时系统相结合的一种新型数据库,RTDB系统与普通商用数据库系统不同,其一个重要特性就是实时性,包括数据实时性和事务实时性。比如在电厂厂级实时监控系统中,RTDB起到了“承上启下”的核心作用,而数据压缩又是RTDB的关键技术之一,当前实时数据库系统用到的压缩算法分为三类:有损压缩、无损压缩以及结合有损和无损压缩的二级压缩。
无损压缩以eDNA实时数据库为代表,采用霍夫曼压缩算法,PC机上常用的压缩软件,如WinRAR,也是采用的无损压缩算法;
有损压缩在一定的误差要求范围内仅保存少量点,其他时刻的值可通过线性插值算法快速还原,比如死区压缩算法和PI的旋转门算法。
死区压缩算法的原理是:对于时间序列的变量数据,规定好变量的变化限值(即死区,或称为阈值),若当前数据与上一个保存的数据的偏差超过了规定的死区,那么就保存当前数据,否则丢弃,如图1所示。这种算法对来自时间序列的连续数据,仅需与前一个保存的数据进行比较即可确定本数据是否需要保存,因此易于理解和实现,大部分采用有损压缩的实时数据库都提供了这种压缩方式。死区算法可以较好的过滤掉噪音,适用于数值稳定的测点,但对于线性漂移(即沿斜线变化)的数据(如图2所示),则不能很好的进行压缩,此时若采用死区压缩算法,那么A、B、C、D都需要保存,实际上仅保存A和D即可,B和C通过线性插值就可以还原,这种情况下,就需要采用一些斜率变化的压缩方式,对沿斜线进行变化的数据进行压缩。
PI实时数据库的旋转门压缩算法,是针对慢变化过程数据的压缩算法,实现简单,涉及的乘除法较少,压缩效率较高,其实现原理如图3所示。A点为要保存的点,通过A点和后续点画平行四边形,其竖直方向的边长A1A2为2倍的压缩精度,也就是图上的旋转门范围。当平行四边形能够包围A点与当前点之间的所有点时,继续画平行四边形,如图中的平行四边形3包围了B点和C点;当平行四边形不能包围所有点时,如图中的A点和E点画出的平行四边形4,那么其前一个点,即D点需要进行保存,然后从D点开始继续画平行四边形。PI的旋转门算法具体实现时,仅需要计算Al与后续点的最大斜率、A2与后续点的最小斜率以及A点与当前点的斜率,若A点与当前点的斜率超出了最大和最小斜率范围,那么当前点的前一个点就需要保存。因此,这个算法计算量少,中间需保存的变量也少,测点值解压缩还原后的最大误差为压缩精度,也即旋转门范围的一半。
但是在实际应用中,当实时数据库数据过多且用户规定了压缩精度时,PI的旋转门算法并不能保证足够的压缩率、也不能实现更好的压缩精度,这会导致数据的冗余和存储的空间增加,也使得后续数据解压恢复时难以保证准确性。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于工业实时数据库的数据压缩方法,设计一种双旋转门算法,以实现更优的数据压缩率和压缩精度,从而有效减小数据冗余及存储空间、提高数据解压恢复的准确性。
本发明的目的可以通过以下技术方案来实现:一种用于工业实时数据库的数据压缩方法,包括以下步骤:
S1、获取待压缩数据序列,所述待压缩数据序列为正弦波数据;
S2、初始化周期阈值及调节周期参数;
S3、判断当前时间点是否大于周期阈值,若判断为否,则直接执行步骤S4,否则对当前时间点进行重置,之后执行步骤S4;
S4、判断当前时间点是否为待压缩数据序列的第一个时间点,若判断为是,则直接执行步骤S6,否则执行步骤S5;
S5、基于双旋转门算法,判断当前时间点对应的数据值是否在待压缩数据序列的上下限值范围内,若判断为是,则直接执行步骤S7;
否则保存当前时间点对应的数据值,之后执行步骤S7;
S6、保存待压缩数据序列第一个时间点对应的数据值,之后执行步骤S7;
S7、更新当前时间点,之后判断是否出现新数据,若判断为是,则返回步骤S3;否则结束本次数据压缩过程。
进一步地,所述周期阈值和调节周期参数的数值相同。
进一步地,所述步骤S3具体是通过以下公式对当前时间点进行重置:
t=t%·TL
其中,t为当前时间点,TL为周期阈值。
进一步地,所述步骤S4具体是通过判断t是否为1,从而判断当前时间点是否为待压缩数据序列的第一个时间点,若t为1,则当前时间点是待压缩数据序列的第一个时间点;否则当前时间点不是待压缩数据序列的第一个时间点。
进一步地,所述步骤S5中双旋转门算法的具体过程为:A点为初始要保存的点,A1点为A点竖直方向上方的点,A2点为A点竖直方向下方的点,A1A的长度和AA2的长度均等于压缩精度,分别从A1A和AA2开始画两个平行四边形,需要尽可能包容A点其后所有的点,当达到后续某个点时,两个平行四边形都不能包含这个点,那么这个点的前一个点就需要进行保存,然后从新的保存点开始继续画双旋转门。
进一步地,所述步骤S5具体包括以下步骤:
S51、取出当前时间点对应的当前数据值,并判断该当前数据值是否为异常点或野点,若判断为是,则执行步骤S52,否则执行步骤S53;
S52、对异常点或野点进行处理,以重新确定当前时间点,并取出该当前时间点对应的当前数据值,之后执行步骤S53;
S53、计算得到待压缩数据序列的上限值和下限值,之后判断当前数据值是否大于等于下限值、且小于等于上限值,若判断为是,则直接执行步骤S7,否则保存当前数据值,之后执行步骤S7。
进一步地,所述步骤S51具体是通过判断当前数据值所在点是否能同时被两个平行四边形包含,从而判断当前数据值是否为异常点或野点,若当前数据值所在点不能同时被两个平行四边形包含,则该当前数据值为异常点或野点;否则当前数据值不是异常点或野点。
进一步地,所述步骤S52中对异常点或野点进行处理具体是选择该异常点或野点的前一个点作为重新确定的当前时间点。
进一步地,所述步骤S53中待压缩数据序列的上限值具体为数据上限时间点对应的数据值,所述周期上限时间点为:
其中,tmax为数据上限时间点,T为调节周期参数;
待压缩数据序列的下限值具体为数据下限时间点对应的数据值,所述数据下限时间点为:
其中,tmin为数据下限时间点。
进一步地,所述步骤S7具体是通过以下公式对当前时间点进行更新:
t=t+1
其中,t为当前时间点。
与现有技术相比,本发明通过设计一种双旋转门算法,采用从初始保存点的上下两个竖直边分别画平行四边形(即双旋转门)的方式,当到达后续某个点时,该点不能同时被这两个平行四边形包含,则对该点的前一个点进行保存,再从这个新的保存点开始继续画两个平行四边形,由于两个旋转门的竖直边都等于数值的压缩精度,因此数据解压缩还原后,精度可保证在规定的压缩精度内,利用双旋转门算法,在数据数量过多的情况下,能够充分考虑数据变化情况以及压缩精度,能够实现更优的数据压缩率和压缩精度,从而有效减小数据冗余及存储空间、提高数据解压恢复的准确性。
附图说明
图1为现有死区压缩算法原理示意图;
图2为斜线变化数据压缩示意图;
图3为PI旋转门算法原理示意图;
图4为本发明的方法流程示意图;
图5为本发明提出的双旋转门算法原理示意图;
图6为实施例中数据压缩过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
如图4所示,一种用于工业实时数据库的数据压缩方法,包括以下步骤:
S1、获取待压缩数据序列,待压缩数据序列为正弦波数据;
S2、初始化周期阈值及调节周期参数,其中,周期阈值和调节周期参数的数值相同;
S3、判断当前时间点是否大于周期阈值,若判断为否,则直接执行步骤S4,否则对当前时间点进行重置,具体是通过以下公式对当前时间点进行重置:
t=t%·TL
其中,t为当前时间点,TL为周期阈值;
之后执行步骤S4;
S4、判断当前时间点是否为待压缩数据序列的第一个时间点,即判断t是否为1,若判断为是,则直接执行步骤S6,否则执行步骤S5;
S5、基于双旋转门算法,判断当前时间点对应的数据值是否在待压缩数据序列的上下限值范围内,若判断为是,则直接执行步骤S7;
否则保存当前时间点对应的数据值,之后执行步骤S7;
其中,双旋转门算法的具体原理过程如图5所示:A点为初始要保存的点,A1点为A点竖直方向上方的点,A2点为A点竖直方向下方的点,A1A的长度和AA2的长度均等于压缩精度,分别从A1A和AA2开始画两个平行四边形,需要尽可能包容A点其后所有的点,当达到后续某个点(图5中的E点)时,两个平行四边形都不能包含这个点,那么这个点的前一个点(图5中的D点)就需要进行保存,然后从新的保存点开始继续画双旋转门,从图5可以看出,所有保存点的误差均在旋转门范围内;
应用上述双旋转门算法,本步骤S5的具体过程为:
S51、取出当前时间点对应的当前数据值,并判断该当前数据值是否为异常点或野点,即判断当前数据值所在点是否能同时被两个平行四边形包含,若判断为是,则当前数据值不是异常点或野点,执行步骤S53,若判断为否,则当前数据值是异常点或野点,则执行步骤S52;
S52、对异常点或野点进行处理,具体是选择该异常点或野点的前一个点作为重新确定的当前时间点,丢弃掉异常点或野点,以保证数据压缩的准确性;
再取出重新确定的当前时间点对应的当前数据值,之后执行步骤S53;
S53、计算得到待压缩数据序列的上限值和下限值,之后判断当前数据值是否大于等于下限值、且小于等于上限值,若判断为是,则直接执行步骤S7,否则保存当前数据值,之后执行步骤S7,其中,待压缩数据序列的上限值具体为数据上限时间点对应的数据值,周期上限时间点为:
式中,tmax为数据上限时间点,T为调节周期参数;
待压缩数据序列的下限值具体为数据下限时间点对应的数据值,数据下限时间点为:
式中,tmin为数据下限时间点;
S6、保存待压缩数据序列第一个时间点对应的数据值,之后执行步骤S7;
S7、更新当前时间点,通过以下公式对当前时间点进行更新:
t=t+1
之后判断是否出现新数据,若判断为是,则返回步骤S3;否则结束本次数据压缩过程。
本实施例针对周期为10的正弦周期数据,采用本发明提出的上述方法进行数据压缩,其具体过程如图6所示,包括以下步骤:
1、参数初始化,TL和T均设置为10;
2、判断t是否大于TL,若判断为否,则转到步骤4;
3、对t的值进行重置处理:t=t%·TL;
4、判断t是否为正弦周期的第一个时间点,即判断t是否为1,若判断为是,则转到步骤8;
5、取出当前数据data的值,判断data是否为异常点或野点,如果是,则对异常点或野点进行处理,之后执行步骤6,否则直接执行步骤6;
步骤6、计算上限值Emax和下限值Emin:在一个周期为10的正弦周期内,t分别为2.5和7.5时取得周期的最大值和最小值;
步骤7、判断data是否在下限值~上限值的范围内,若不在此范围内,则保存data的值,否则转到步骤9;
步骤8、保存A0的值,A0为正弦周期第一个时间点对应的数据值;
步骤9、更新t=t+1;
步骤10、判断是否有新数据,若有新数据,则转到步骤2,否则结束本次数据压缩。
为验证本发明方法的有效性,本实施例采用正弦波模拟数据,每秒1个数据,1小时内的数据总数为3601个,分别采用死区压缩算法、PI旋转门、PH旋转门、HH旋转门以及本发明的双旋转门算法,对比不同周期和不同数据精度下这些算法的压缩率,对比结果如表1所示:
表1
从表1的数据看,随着压缩精度从0.1%变化到0.3%,同一算法的压缩率显著升高;
随正弦波周期从3600秒变化到60秒,同一算法的压缩率显著降低;
相同条件下,死区算法的压缩能力较低,PI、PH、双旋转门的压缩能力相同,而HH旋转门的压缩能力稍微低一些。
由此可知,数据的压缩能力与数据的变化情况和压缩精度息息相关,因此对于一个实时数据库而言,并不能仅仅关注高压缩率而忽略测试环境的变化,采用双旋转门算法,利用两个平行四边形,能够充分全面考虑后续数据点的变化,进一步提高数据压缩的压缩率及压缩精度。
Claims (10)
1.一种用于工业实时数据库的数据压缩方法,其特征在于,包括以下步骤:
S1、获取待压缩数据序列,所述待压缩数据序列为正弦波数据;
S2、初始化周期阈值及调节周期参数;
S3、判断当前时间点是否大于周期阈值,若判断为否,则直接执行步骤S4,否则对当前时间点进行重置,之后执行步骤S4;
S4、判断当前时间点是否为待压缩数据序列的第一个时间点,若判断为是,则直接执行步骤S6,否则执行步骤S5;
S5、基于双旋转门算法,判断当前时间点对应的数据值是否在待压缩数据序列的上下限值范围内,若判断为是,则直接执行步骤S7;
否则保存当前时间点对应的数据值,之后执行步骤S7;
S6、保存待压缩数据序列第一个时间点对应的数据值,之后执行步骤S7;
S7、更新当前时间点,之后判断是否出现新数据,若判断为是,则返回步骤S3;否则结束本次数据压缩过程。
2.根据权利要求1所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述周期阈值和调节周期参数的数值相同。
3.根据权利要求1所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S3具体是通过以下公式对当前时间点进行重置:
t=t%·TL
其中,t为当前时间点,TL为周期阈值。
4.根据权利要求3所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S4具体是通过判断t是否为1,从而判断当前时间点是否为待压缩数据序列的第一个时间点,若t为1,则当前时间点是待压缩数据序列的第一个时间点;否则当前时间点不是待压缩数据序列的第一个时间点。
5.根据权利要求1所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S5中双旋转门算法的具体过程为:A点为初始要保存的点,A1点为A点竖直方向上方的点,A2点为A点竖直方向下方的点,A1A的长度和AA2的长度均等于压缩精度,分别从A1A和AA2开始画两个平行四边形,需要尽可能包容A点其后所有的点,当达到后续某个点时,两个平行四边形都不能包含这个点,那么这个点的前一个点就需要进行保存,然后从新的保存点开始继续画双旋转门。
6.根据权利要求5所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S5具体包括以下步骤:
S51、取出当前时间点对应的当前数据值,并判断该当前数据值是否为异常点或野点,若判断为是,则执行步骤S52,否则执行步骤S53;
S52、对异常点或野点进行处理,以重新确定当前时间点,并取出该当前时间点对应的当前数据值,之后执行步骤S53;
S53、计算得到待压缩数据序列的上限值和下限值,之后判断当前数据值是否大于等于下限值、且小于等于上限值,若判断为是,则直接执行步骤S7,否则保存当前数据值,之后执行步骤S7。
7.根据权利要求6所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S51具体是通过判断当前数据值所在点是否能同时被两个平行四边形包含,从而判断当前数据值是否为异常点或野点,若当前数据值所在点不能同时被两个平行四边形包含,则该当前数据值为异常点或野点;否则当前数据值不是异常点或野点。
8.根据权利要求6所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S52中对异常点或野点进行处理具体是选择该异常点或野点的前一个点作为重新确定的当前时间点。
10.根据权利要求1所述的一种用于工业实时数据库的数据压缩方法,其特征在于,所述步骤S7具体是通过以下公式对当前时间点进行更新:
t=t+1
其中,t为当前时间点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011523736.9A CN112667582A (zh) | 2020-12-22 | 2020-12-22 | 一种用于工业实时数据库的数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011523736.9A CN112667582A (zh) | 2020-12-22 | 2020-12-22 | 一种用于工业实时数据库的数据压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667582A true CN112667582A (zh) | 2021-04-16 |
Family
ID=75407342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011523736.9A Pending CN112667582A (zh) | 2020-12-22 | 2020-12-22 | 一种用于工业实时数据库的数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667582A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098058A (zh) * | 2010-11-12 | 2011-06-15 | 中南大学 | 时序数据实时高效线性压缩与解压缩方法 |
JP2012010319A (ja) * | 2010-05-28 | 2012-01-12 | Hitachi Ltd | 時系列データの圧縮方法および圧縮装置 |
CN110995275A (zh) * | 2019-11-20 | 2020-04-10 | 安徽省安泰科技股份有限公司 | 一种对于旋转门压缩算法的改进算法 |
-
2020
- 2020-12-22 CN CN202011523736.9A patent/CN112667582A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012010319A (ja) * | 2010-05-28 | 2012-01-12 | Hitachi Ltd | 時系列データの圧縮方法および圧縮装置 |
CN102098058A (zh) * | 2010-11-12 | 2011-06-15 | 中南大学 | 时序数据实时高效线性压缩与解压缩方法 |
CN110995275A (zh) * | 2019-11-20 | 2020-04-10 | 安徽省安泰科技股份有限公司 | 一种对于旋转门压缩算法的改进算法 |
Non-Patent Citations (1)
Title |
---|
庄杰: "基于OPC的实时数据库关键技术研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, 15 December 2015 (2015-12-15), pages 13 - 14 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10558678B2 (en) | Multi-representation storage of time series data | |
EP2608067B1 (en) | Accelerated query operators for high-speed, in-memory online analyctical processing queries and operations | |
EP2560106B1 (en) | Systems and/or methods for forecasting future behavior of event streams in complex event processing (CEP) environments | |
US10685306B2 (en) | Advisor generating multi-representations of time series data | |
CN106649026B (zh) | 适用于运维自动化系统的监测数据压缩方法 | |
US7536403B2 (en) | Method for maintaining a sample synopsis under arbitrary insertions and deletions | |
EP2895968A2 (en) | Optimal data representation and auxiliary structures for in-memory database query processing | |
CN111930782B (zh) | 两种基于阈值的历史数据采样方法 | |
CN114640355B (zh) | 时序数据库的有损压缩及解压缩方法、系统、存储介质、设备 | |
CN116414076B (zh) | 一种回收醇生产数据智能监控系统 | |
AU2020100249A4 (en) | Method and device for predicting product price and computer medium | |
US20230067182A1 (en) | Data Processing Device and Method, and Computer Readable Storage Medium | |
WO2023077823A1 (zh) | 慢查询告警方法、电子设备及存储介质 | |
Lang | Back to the future: an even more nearly optimal cardinality estimation algorithm | |
US20110093477A1 (en) | Method for estimation of order-based statistics on slowly changing distributions | |
Gómez-Brandón et al. | Lossless compression of industrial time series with direct access | |
CN107835025B (zh) | 一种电力负荷历史数据自适应压缩方法和系统 | |
CN112667582A (zh) | 一种用于工业实时数据库的数据压缩方法 | |
CN108595553A (zh) | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 | |
CN112862179A (zh) | 一种用能行为的预测方法、装置及计算机设备 | |
JP2002297236A (ja) | 製造実績データベース装置 | |
EP4124967A1 (en) | A method for adaptive data storage optimization | |
WO2021102888A1 (zh) | 数据处理设备和方法、计算机可读存储介质 | |
CN115564128A (zh) | 基于重过载概率统计和相似日的配变负载率修正预测方法 | |
Zhang et al. | An agile sample maintenance approach for agile analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |