专利名称:一种基于两级体系的分布式数据压缩处理方法
技术领域:
本申请属于实时历史数据库中的数据压缩技术领域,具体涉及一种基于两级体系的分布式数据压缩处理方法。
背景技术:
实时历史数据库产品是企业信息化的基础平台和管控一体化的桥梁。生产过程中所产生的大量实时数据是流程企业的宝贵资源之一。这些数据需要长期存储、快速检索,并作为生产数据分析、数据挖掘、优化控制与优化管理的基础。典型的流程企业所需集成的数据采集点通常有几千到十几万,由于采集点数据是动态变化的,刷新速度快(秒级),这样的大规模的海量数据很难以数据原型长期保存下来,实时历史数据库就是专门为处理生产过程海量数据问题而产生的新技术。一个良好的实时历史数据库,必须要处理好实时压缩问题,只有处理好数据压缩问题,才能使系统的整体性能达到某个可用性指标。用关系数据库保存10000个每秒钟变化一次的双精度数,同时建立一个索引,保存一年需要磁盘空间为U922G,而用实时数据库保存,则只需103G,大家可以换算一下,U922G,需要多少块磁盘?磁盘容量只是问题的一个方面,另一方面,数据的高压缩率意味着整个系统的数据处理速度更快,这体现在三个方面高压缩率的数据,占用磁盘空间小,将数据从磁盘读入内存的速度快,网络传输的速度快,数据在内存中占用的空间小。而这三个因素,是实时数据库提高系统整体运行速度很重要的几个因素。从数据压缩方式来看,目前市面上的实时历史数据库主要采用服务器端数据压缩方式。数据从采集端发送到数据库服务器,在服务器端进行统一的数据压缩处理,然后存储到磁盘文件。这种压缩方式极大的占用了网络资源,整个数据存储的重心都在数据库服务器上,致使服务器的性能决定了整个实时历史数据库的性能。试想拥有100000个标签点的上限要求的数据库,每秒更新一次数据,数据量为7811Λ,如果全部上传到服务器进行压缩, 需要占用6M多的带宽,极大的耗费了网络资源。另外,每个标签点的数据只有在服务器端累计达到一定的数据量后才能利用压缩算法进行压缩,这对服务器的内存消耗也将大幅增加。即使是服务器内存够用,如此大规模的数据压缩处理过程,也将使对服务器CPU带来极大的负担。
发明内容
为了解决现有技术中存在的上述问题,本发明提出了一种基于两级体系的分布式数据压缩处理方法。首先,对发明中使用的技术名词进行说明或定义。接口机负责把底层控制系统的数据经过一定的方式传送到数据库中;服务器以数据库的方式存储接口机上传的数据。本发明具体采用以下技术方案。
一种基于两级体系的分布式数据压缩处理方法,所述处理方法采用接口机分布式压缩数据的处理方式,其特征在于均衡网络节点资源,所述分布式数据压缩处理方法包括以下步骤(1)通过接口机采集底层控制系统的数据;(2)在接口机中对采集数据进行压缩;(3)在接口机中设置一级缓存,将压缩后的数据存入接口机中设置的一级缓存中;(4)当所述接口机中设置的一级缓存满或者达到设定的最大上传时间时,进入步骤⑶;(5)接口机将压缩后的数据打包上传至服务器中设置的二级缓存中,进入步骤 (6);(6)判断所述服务器中设置的二级缓存的存储状态,当二级缓存满或达到最大上传时间时,进入步骤(7);(7)将二级缓存中的压缩数据写入磁盘文件中。本发明具有以下技术效果把压缩的负载由一台服务器转移到多台接口机上,不仅减少了服务器的内存负载,减少了不必要的开销,使服务器对于实时数据的响应更加快捷,又合理的利用了网络中各结点的资源,达到资源的合理配置。而在接口机进行数据压缩再上传到服务器中的压缩方式,也大大的减少了网络中数据的传输,节约了网络资源。这种在接口机压缩数据再上传到服务器的方法将更加适合超大数据量的实时数据库的实现。
图1所示为本发明分布式压缩处理方法原理图;图2所示为本发明分布式压缩处理方法流程图。
具体实施例方式下面结合说明书附图对本发明的技术方案作进一步详细说明。如图1所示为本发明公开的分布式压缩处理方法原理图。接口机负责从底层的控制系统(如DCS、PLC等)采集数据,通过调用数据库接口 API的方式往服务器中的数据库写入数据。由于数据的海量性以及采集数据的时效性,接口机需要快速的把采集到的数据写入到服务器中。而接口机与服务器之间采用的是TCP/IP 协议,网络的传输速率也成为制约数据库写入速度的重要因素。因此,在接口机上先进行数据压缩,然后在上传到服务器上就可以减少网络环境对数据库速率的影响。而一台数据库服务器对应多台接口机,把压缩的负荷由一台服务器分配到多台接口机上,合理的利用了网络中各结点的资源,减少了服务器的资源占有率。如图2所示为本发明分布式压缩方式处理方法流程图。所述处理方法采用接口机和服务器两级压缩方式,其特征在于用户可以根据硬件环境和数据数量自定义压缩模式。压缩模式分为两种第一种是在接口机进行数据压缩; 第二种是在服务器进行数据压缩。本发明公开的基于两级体系的分布式数据压缩处理方法采用第二种压缩模式,具体操作步骤如下所述处理方法采用接口机和服务器两级压缩方式,其特征在于用户可以根据硬件环境和数据数量自定义压缩模式,所述分布式数据压缩处理方法包括以下步骤(1)通过接口机采集底层控制系统的数据,底层控制系统包括DCS、PLC、SCADA等;(2)在接口机中对采集数据进行压缩,压缩方法为基于平行四边形的压缩方法,其基本原理是从第一个归档数据点开始,以它到当前点的连线为中轴做指定宽度(压缩精度的两倍)做平行四边形,随着当前数据点的不断更新以同样的方法做平行四边形并继续扩展,当产生的平行四边形不能容纳上个存档点到当前点之间的所有数据时,则让当前点通过本段压缩,再以最新压缩归档点为起点重复此过程;(3)在接口机中设置一级缓存,将压缩后的数据按照一定的格式存入接口机中设置的一级缓存中(以实时历史数据库为例,压缩后的数据可以按照数据值、数据采集时间、 数据状态、数据所属的标签点KKS编码的格式存储),考虑在出现断电等异常情况下缓存的数据会丢失,缓存不宜设置过大;(4)当所述接口机中设置的一级缓存满,进入步骤(5);有时上传的数据量少,缓存长时间不能存满时,可通过设置最大上传时间即达到一定时间后,不考虑缓存的状态,直接进入步骤(5);(5)接口机将压缩后的数据打包,通过TCP/IP协议上传至服务器;在服务器上设置二级缓存,二级缓存是以若干个大小相等的缓存块组成,每个数据源对应一个缓冲块,缓存块的个数由数据源的个数决定,上传的数据存储到数据源对应的缓冲块中;(6)判断所述服务器中每个数据源对应缓存块的存储状态,当缓存块满或达到最大上传时间时,进入步骤(7);(7)将对应的缓冲块中存储的数据以批量的形式写入磁盘文件中,完成数据从采集到压缩、存储的过程。为了防止压缩算法对数据的过滤导致长时间没有数据上传到服务器,保证数据的实时性,每个标签点有一个最大上传时间的属性,数据上传站点会根据每个标签点的这个属性来上传数据,从而保证数据的实时性。本发明申请人结合说明书附图对本发明的实施例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
权利要求
1.一种基于两级体系的分布式数据压缩处理方法,所述处理方法采用接口机和服务器两级压缩方式,其特征在于用户可以根据硬件环境和数据数量自定义压缩模式,所述分布式数据压缩处理方法包括以下步骤(1)通过接口机采集底层控制系统的数据;(2)在接口机中对采集数据进行压缩;(3)在接口机中设置一级缓存,将压缩后的数据存入接口机中设置的一级缓存中;(4)当所述接口机中设置的一级缓存满或者达到设定的最大上传时间时,进入步骤(5);(5)接口机将压缩后的数据打包上传至服务器中设置的二级缓存中,进入步骤(6);(6)判断所述服务器中设置的二级缓存的存储状态,当二级缓存满或达到最大上传时间时,进入步骤(7);(7)将二级缓存中的压缩数据写入磁盘文件中。
2.根据权利要求1所述的基于两级体系的分布式数据压缩处理方法,其特征在于 在步骤( 中,采用的通讯协议为TCP/IP协议将接口机压缩后的数据打包上传至服务器中设置的二级缓存中。
全文摘要
基于两级体系的分布式数据压缩处理方法在原有在服务器端进行数据压缩的基础上,提出在接口机进行压缩数据,到一定时间或一定量后上传服务器,服务器再累计到一定量后调用文件处理程序保存数据。把压缩的负载由一台服务器转移到多台接口机上,不仅减少了服务器的内存负载,减少了不必要的开销,使服务器对于实时数据的响应更加快捷,又合理的利用了网络中各结点的资源,达到资源的合理配置。而在接口机进行数据压缩再上传到服务器中的压缩方式,也大大的减少了网络中数据的传输,节约了网络资源。这种在接口机压缩数据再上传到服务器的方法将更加适合超大数据量的实时数据库的实现。
文档编号H04L29/08GK102497450SQ201110445899
公开日2012年6月13日 申请日期2011年12月28日 优先权日2011年12月28日
发明者康芳, 程睿君, 蒋禾青, 黄孝彬 申请人:北京华电天仁电力控制技术有限公司