一种实时数据库中历史数据的压缩方法与流程

文档序号:15047426发布日期:2018-07-27 22:59阅读:1393来源:国知局

本发明涉及工业自动化控制技术领域,特别涉及一种实时数据库中历史数据的压缩方法。



背景技术:

实时数据库是实时系统技术和数据库技术相结合的产物,具有高实时性、高数据吞吐量等特点,在自动控制领域得到了广泛的应用。当前,国内外主流实时数据库产品一般都提供了历史数据存储功能,能够长时间地保存、备份现场的过程数据。但是由于控制现场的采集点多,采集时间周期短,因而要保存的历史数据量非常大。如果将这些数据直接存储,不仅会占用大量的系统存储空间,而且会降低数据的实时性,使数据的传输、查询变得困难。因此如何在保持数据库高实时性的同时,尽可能地提高数据库的容量,是实时数据研究的一个热点方向。



技术实现要素:

本发明要解决的技术问题,在于提供一种实时数据库中历史数据的压缩方法,用以解决现有技术中由于控制现场的采集点多,采集时间周期短、数据量大,导致历史数据存储困难、占用系统空间大,进而影响客户体验的问题。

本发明是这样实现的:一种实时数据库中历史数据的压缩方法,包括:

步骤s1、在内存中开辟实时数据缓存区和历史数据缓存区;

步骤s2、将采集到的实时数据搬迁至实时数据缓存区;

步骤s3、将实时数据缓存区的实时数据搬迁至历史数据压缩模块,将其压缩成历史数据压缩文件保存在所述历史数据缓存区中;

步骤s4、当所述历史数据缓存区中的历史数据压缩文件的大小超过设定大小时,附上索引文件后进行保存在历史数据存储区中。

进一步的,所述实时数据的提取与存储的过程是:

(a)由数据采集装置将采集的实时数据传输至控制站中;

(b)位于pc端的通讯程序根据事先配置好的控制站地址与通讯点信息将该控制站地址实时数据搬迁至位于内存中的实时数据缓存区进行存储,所述实时数据包含控制站信息及通讯点信息;

(c)通信数据搬迁执行模块将位于实时数据缓存区的实时数据值搬迁至实时数据同步模块、历史数据压缩存储模块、历史数据服务接口模块和报警数据判定储存模块。

进一步的,

所述通信数据搬迁执行模块为car.exe;

所述实时数据同步模块为valueintf.exe;

所述历史数据压缩存储模块为bag.exe;

所述历史数据服务接口模块为door.exe;

所述报警数据判定储存模块为alarm.exe。

进一步的,所述历史数据压缩文件包含历史io点信息、历史数据缓存头和历史数据内容。

进一步的,所述步骤s3和步骤s4由历史数据压缩存储模块bag.exe来执行。

进一步的,所述索引文件包括日期索引文件和时期索引文件。

进一步的,所述压缩的规则包括模拟量规则和数字量规则:

所述模拟量规则为:

(m1)、数据变化满足压缩算法的压缩条件时压缩数据;

(m2)、距离前一压缩时间点的间隔时间超过压缩时间设置值时压缩数据;

所述数字量规则为:

(d1)、数据变化时压缩数据;

(d2)、通信质量发生变化时压缩数据;

(d2)、距离前一压缩时间点的间隔时间超过压缩时间设置值压缩数据。

进一步的,所述步骤s4中,当所述历史数据压缩文件的大小超过历史数据存储大小设置值时,对其进行二次压缩,生成包含所述历史数据压缩文件、日期索引文件和时间索引文件在内的二次压缩文件,然后再存储在所述历史数据存储区中。

本发明具有如下优点:本发明方法给出了一种新的文件型历史数据结构的设计,能同时应对多个通信点大量数据的输入,在满足历史数据文件最小化的同时,将历史数据进行有效的压缩,并确保高效的历史数据查询效率,提高了客户体验。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法中实时数据的提取与存储执行流程图。

图2为本发明方法中历史数据的压缩与存储执行流程图。

具体实施方式

本发明的实时数据库中历史数据的压缩方法,包括:

步骤s1、在内存中开辟实时数据缓存区和历史数据缓存区;

步骤s2、将采集到的实时数据搬迁至实时数据缓存区;

步骤s3、将实时数据缓存区的实时数据搬迁至历史数据压缩模块,将其压缩成历史数据压缩文件保存在所述历史数据缓存区中;

步骤s4、当所述历史数据缓存区中的历史数据压缩文件的大小超过设定大小时,附上索引文件后进行保存在历史数据存储区中,所述索引文件包括日期索引文件和时期索引文件。

如图1所示,所述实时数据的提取与存储的过程是:

(a)由传感器、plc等备数据采集设将采集的实时数据传输至控制站中;

(b)位于pc端的通讯程序根据事先配置好的控制站地址与通讯点信息将该控制站地址实时数据搬迁至位于内存中的实时数据缓存区进行存储,所述实时数据包含控制站信息及通讯点信息;

(c)通信数据搬迁执行模块car.exe将位于实时数据缓存区的实时数据值搬迁至实时数据同步模块valueintf.exe、历史数据压缩存储模块bag.exe、历史数据服务接口模块door.exe、报警数据判定储存模块alarm.exe。

如图2所示,历史数据的压缩与存储的过程:

(1)由历史数据压缩存储模块bag.exe来执行对历史数据的压缩与存储

(2)历史数据压缩存储模块bag.exe将由实时数据内存区搬迁来的历史数据压缩后保存在历史数据缓存区域中,所述历史数据压缩文件包含历史io点信息、历史数据缓存头和历史数据内容。

其中,所述压缩的规则包括模拟量规则和数字量规则:

所述模拟量规则为:

(m1)、数据变化满足压缩算法的压缩条件时压缩数据;

(m2)、距离前一压缩时间点的间隔时间超过压缩时间设置值时压缩数据;

所述数字量规则为:

(d1)、数据变化时压缩数据;

(d2)、通信质量发生变化时压缩数据;

(d2)、距离前一压缩时间点的间隔时间超过压缩时间设置值压缩数据。

(3)当所述历史数据压缩文件的大小超过历史数据存储大小设置值时,对其进行二次压缩,生成包含所述历史数据压缩文件、日期索引文件和时间索引文件在内的二次压缩文件,然后再存储在所述历史数据存储区中。所述历史数据文件包含历史数据的详细内容,文件编号为1-32000,编号顺序由该历史数据文件的生成顺序依次排列;所述日期索引文件,包含日期索引文件生成时的日期信息;时间索引文件则包含该文件生成时的时间信息,具体至秒。以此来保证历史信息的查询效率,提高了客户体验。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1