專利名稱:一種在快速數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于對(duì)流程工廠中的大量過(guò)程數(shù)據(jù)采集后壓縮處理技術(shù)領(lǐng)域,特別涉及提供了一種在快速數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法。具體涉及到在采集到大量的快速數(shù)據(jù)和普通過(guò)程數(shù)據(jù)后,對(duì)大量數(shù)據(jù)實(shí)現(xiàn)高效的數(shù)據(jù)壓縮的方法。
背景技術(shù):
在流程工程中,隨著自動(dòng)化水平的不斷提高,設(shè)備也越來(lái)越復(fù)雜。生長(zhǎng)過(guò)程的數(shù)據(jù)點(diǎn)也越來(lái)越多。通過(guò)對(duì)這些過(guò)程數(shù)據(jù)進(jìn)行回放不僅可以再現(xiàn)生產(chǎn)過(guò)程,同時(shí)也是設(shè)備調(diào)試、 生產(chǎn)過(guò)程數(shù)據(jù)優(yōu)化、生產(chǎn)過(guò)程故障問(wèn)題的有效手段。通常情況下,這些數(shù)據(jù)采集周期小、數(shù)據(jù)通訊量大,動(dòng)輒上萬(wàn)點(diǎn)甚至更多。如果不對(duì)這些采集到的數(shù)據(jù)進(jìn)行一定的壓縮處理而直接存儲(chǔ),生成的數(shù)據(jù)文件會(huì)在極短的時(shí)間內(nèi)會(huì)占據(jù)大量的存儲(chǔ)空間,從而造成對(duì)存儲(chǔ)空間容量的需求越來(lái)越高,造成極大的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在快速數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法,解決了對(duì)采集到的大量的過(guò)程數(shù)據(jù)實(shí)現(xiàn)高效壓縮的問(wèn)題是。與傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)對(duì)比,利用該方法后,解決了把大量過(guò)程數(shù)據(jù)不加處理的存入數(shù)據(jù)庫(kù)表或文件中,造成大量存儲(chǔ)空間浪費(fèi)的問(wèn)題。為了解決以上問(wèn)題,本發(fā)明的實(shí)施方案步驟如下步驟1、根據(jù)過(guò)程數(shù)據(jù)的數(shù)據(jù)類型和取值范圍對(duì)數(shù)據(jù)進(jìn)行類型的基本壓縮。數(shù)據(jù)壓縮模塊對(duì)采集到的過(guò)程數(shù)據(jù)進(jìn)行高效的壓縮,最終形成二進(jìn)制數(shù)據(jù)文件。 壓縮的算法包括參從數(shù)據(jù)類型、閾值自適應(yīng)的變點(diǎn)存儲(chǔ)和數(shù)據(jù)時(shí)間戳三個(gè)方面進(jìn)行。首先是數(shù)據(jù)類型的壓縮。數(shù)據(jù)的類型決定數(shù)據(jù)占內(nèi)存的字節(jié)數(shù)和取值范圍。在采集的過(guò)程數(shù)據(jù)中,一般都是整型(int)和浮點(diǎn)型(float)。單精度的實(shí)型,使用四個(gè)字節(jié)空間存儲(chǔ),取值范圍為10-38 10+38,數(shù)據(jù)的有效位數(shù)為7位數(shù)字;而對(duì)于雙精度實(shí)型,使用八個(gè)字節(jié)空間存儲(chǔ),取值范圍為10-308 10+308,數(shù)據(jù)的有效位數(shù)為15位數(shù)字。無(wú)疑,如果按照這樣存儲(chǔ)的方式進(jìn)行存儲(chǔ),會(huì)帶來(lái)極大存儲(chǔ)空間的浪費(fèi)。本發(fā)明的方法在于,對(duì)于BOOL型數(shù)據(jù),我們按照一個(gè)字節(jié)進(jìn)行存儲(chǔ),對(duì)于float型和long型數(shù)據(jù),在精度允許范圍內(nèi),我們轉(zhuǎn)換成short類型進(jìn)行存儲(chǔ),將存儲(chǔ)空間從4字節(jié)有效的降低為2字節(jié)。步驟2、采用閾值自適應(yīng)的變點(diǎn)存儲(chǔ)方法。對(duì)每個(gè)過(guò)程數(shù)據(jù),都會(huì)有最大值和最小值。本發(fā)明結(jié)合最大值和最小值的范圍設(shè)定閾值,每個(gè)采樣周期,系統(tǒng)對(duì)采集到的數(shù)據(jù)與前一個(gè)采樣周期的數(shù)據(jù)進(jìn)行對(duì)比,如果兩個(gè)數(shù)的差小于閾值,則認(rèn)為該數(shù)未發(fā)生變化,在該采樣周期不對(duì)該數(shù)進(jìn)行采集,只有當(dāng)前采樣周期的數(shù)值與上一個(gè)采樣數(shù)據(jù)的大小差超過(guò)閾值的時(shí)候我們才對(duì)該數(shù)進(jìn)行存儲(chǔ)。同時(shí),結(jié)合過(guò)程數(shù)據(jù)采集的過(guò)程中的范圍,對(duì)閾值說(shuō)的大小進(jìn)行不斷的修正和自學(xué)習(xí),以達(dá)到閾值的最佳取值。
閾值自學(xué)習(xí)方法在于,對(duì)每個(gè)壓縮周期(例如1小時(shí))內(nèi)的數(shù)據(jù)的最大值和最小值進(jìn)行記錄后,最大值和最小值的差的一定比例(例如萬(wàn)分之一或者千分之一)作為下一個(gè)壓縮周期內(nèi)數(shù)據(jù)采集的閾值。這樣,該閾值可以根據(jù)數(shù)據(jù)范圍進(jìn)行不斷的調(diào)整和優(yōu)化。步驟3,采用段頁(yè)式時(shí)間存儲(chǔ)法。生產(chǎn)過(guò)程數(shù)據(jù)如果沒(méi)用時(shí)間坐標(biāo),也沒(méi)有任何意義。從第二步的計(jì)算中可以看出,每個(gè)數(shù)據(jù)的時(shí)間戳在存儲(chǔ)過(guò)程中占用了大部分的存儲(chǔ)空間。為了解決該問(wèn)題,本發(fā)明了以下段頁(yè)式時(shí)間存儲(chǔ)方法。首先,我們選擇一個(gè)時(shí)間基準(zhǔn)點(diǎn), 我們稱為段時(shí)間T0,該時(shí)間我們稱為標(biāo)準(zhǔn)時(shí)間戳。從段時(shí)間TO開始,對(duì)于該周期的時(shí)間戳, 我們選取他與段時(shí)間的間隔,我們稱為頁(yè)時(shí)間,也就是時(shí)間偏移量。段時(shí)間在存儲(chǔ)的時(shí)候占有8字節(jié),而頁(yè)時(shí)間為short類型,只占2字節(jié)。數(shù)據(jù)壓縮率進(jìn)一步得到提高。本發(fā)明取得了以下效果擯棄了大部分系統(tǒng)采樣的直接將過(guò)程數(shù)據(jù)存入數(shù)據(jù)庫(kù)的模式,直接將過(guò)程數(shù)據(jù)文件壓縮處理,形成二進(jìn)制文件,實(shí)現(xiàn)了對(duì)歷史數(shù)據(jù)文件的高效壓縮,有效節(jié)約了存儲(chǔ)空間。
圖1為工業(yè)生產(chǎn)過(guò)程數(shù)據(jù)采集分析整體架構(gòu)示意圖。圖2為壓縮過(guò)程水溫變化趨勢(shì)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)所述的壓縮過(guò)程的具體方法進(jìn)行說(shuō)明。圖1是工業(yè)生產(chǎn)過(guò)程數(shù)據(jù)采集分析整體架構(gòu)示意圖。PLC—側(cè)最為數(shù)據(jù)源,將過(guò)程數(shù)據(jù)源源不斷的發(fā)送給數(shù)據(jù)接收端。數(shù)據(jù)接收服務(wù)接收到數(shù)據(jù)后,發(fā)送給快速數(shù)據(jù)分析系統(tǒng)。數(shù)據(jù)分析系統(tǒng)對(duì)這部分?jǐn)?shù)據(jù)進(jìn)行壓縮。以現(xiàn)場(chǎng)水溫參數(shù)為例,最小值為0攝氏度,最大值為100攝氏度,閾值首先設(shè)定為 0. 1,采樣周期為500ms。如果不做任何處理,經(jīng)過(guò)一天的時(shí)間,水溫?cái)?shù)據(jù)文件所占空間為 4X2X24X3600 = 691200字節(jié)。壓縮過(guò)程如下假設(shè),采集過(guò)程中水溫的變化趨勢(shì)在一定的時(shí)間內(nèi)如圖2所示水溫的類型為float類型,存儲(chǔ)的時(shí)候占據(jù)4字節(jié),而水溫的范圍為0-100。因此在存儲(chǔ)的時(shí)候,我們首先將25. 0,25. 1和25. 2等數(shù)據(jù)按照250,251和252進(jìn)行存儲(chǔ),這樣數(shù)據(jù)轉(zhuǎn)換為short型,存儲(chǔ)占據(jù)2字節(jié)。再次,根據(jù)變點(diǎn)存儲(chǔ)的方式,從25. 0到25. 3,數(shù)據(jù)從圖中看出,采集到的數(shù)據(jù)顯示變化超過(guò)了 30次,但是因?yàn)槲覀兌x的閾值范圍,從圖中可以看出,我們只有3次該值的變化超過(guò)了閾值,所以采集的過(guò)程中我們只存儲(chǔ)三次即可。最后,對(duì)于段頁(yè)式時(shí)間存儲(chǔ)方式。按照常規(guī)的模式,數(shù)據(jù)時(shí)間在存儲(chǔ)的時(shí)候,我們采用系統(tǒng)時(shí)間的格式進(jìn)行,需要8字節(jié)。而采用段頁(yè)式時(shí)間存儲(chǔ)的模式,我們僅對(duì)TO存儲(chǔ)的時(shí)候采用系統(tǒng)時(shí)間的格式,而對(duì)于Tl、T2和T3則為時(shí)間的偏移量,以500ms作為一個(gè)采樣周期的話,Tl則為3000,T2則為10500,T3則為11000。時(shí)間存儲(chǔ)占用的空間明顯減少。
權(quán)利要求
1.一種在快速數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法,數(shù)據(jù)壓縮模塊對(duì)采集到的過(guò)程數(shù)據(jù)進(jìn)行高效的壓縮,最終形成二進(jìn)制數(shù)據(jù)文件;壓縮的算法包括參從數(shù)據(jù)類型、閾值自適應(yīng)的變點(diǎn)存儲(chǔ)和數(shù)據(jù)時(shí)間戳三個(gè)方面進(jìn)行;首先是數(shù)據(jù)類型的壓縮,數(shù)據(jù)的類型決定數(shù)據(jù)占內(nèi)存的字節(jié)數(shù)和取值范圍,在采集的過(guò)程數(shù)據(jù)中,都是整型int和浮點(diǎn)型float,單精度的實(shí)型,使用四個(gè)字節(jié)空間存儲(chǔ),取值范圍為10-38 10+38,數(shù)據(jù)的有效位數(shù)為7位數(shù)字; 而對(duì)于雙精度實(shí)型,使用八個(gè)字節(jié)空間存儲(chǔ),取值范圍為10-308 10+308,數(shù)據(jù)的有效位數(shù)為15位數(shù)字;無(wú)疑,如果按照這樣存儲(chǔ)的方式進(jìn)行存儲(chǔ),會(huì)帶來(lái)極大存儲(chǔ)空間的浪費(fèi);其特征在于,壓縮步驟如下(1)根據(jù)過(guò)程數(shù)據(jù)的數(shù)據(jù)類型和取值范圍對(duì)數(shù)據(jù)進(jìn)行類型的基本壓縮對(duì)于BOOL型數(shù)據(jù),按照一個(gè)字節(jié)進(jìn)行存儲(chǔ),對(duì)于float型和long型數(shù)據(jù),在精度允許范圍內(nèi),我們轉(zhuǎn)換成short類型進(jìn)行存儲(chǔ),將存儲(chǔ)空間從4字節(jié)有效的降低為2字節(jié);(2)采用閾值自適應(yīng)的變點(diǎn)存儲(chǔ)方法對(duì)每個(gè)過(guò)程數(shù)據(jù),都會(huì)有最大值和最小值;結(jié)合最大值和最小值的范圍設(shè)定閾值,每個(gè)采樣周期,系統(tǒng)對(duì)采集到的數(shù)據(jù)與前一個(gè)采樣周期的數(shù)據(jù)進(jìn)行對(duì)比,如果兩個(gè)數(shù)的差小于閾值,則認(rèn)為該數(shù)未發(fā)生變化,在該采樣周期不對(duì)該數(shù)進(jìn)行采集,只有當(dāng)前采樣周期的數(shù)值與上一個(gè)采樣數(shù)據(jù)的大小差超過(guò)閾值的時(shí)候我們才對(duì)該數(shù)進(jìn)行存儲(chǔ);同時(shí),結(jié)合過(guò)程數(shù)據(jù)采集的過(guò)程中的范圍,對(duì)閾值說(shuō)的大小進(jìn)行不斷的修正和自學(xué)習(xí),以達(dá)到閾值的最佳取值;(3)采用段頁(yè)式時(shí)間存儲(chǔ)法首先,選擇一個(gè)時(shí)間基準(zhǔn)點(diǎn),稱為段時(shí)間T0,該時(shí)間我們稱為標(biāo)準(zhǔn)時(shí)間戳;從段時(shí)間TO開始,對(duì)于該周期的時(shí)間戳,選取他與段時(shí)間的間隔,稱為頁(yè)時(shí)間,也就是時(shí)間偏移量;段時(shí)間在存儲(chǔ)的時(shí)候占有8字節(jié),而頁(yè)時(shí)間為short類型,只占2 字節(jié);數(shù)據(jù)壓縮率進(jìn)一步得到提高。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,閾值自學(xué)習(xí)是對(duì)每個(gè)壓縮周期內(nèi)的數(shù)據(jù)的最大值和最小值進(jìn)行記錄后,最大值和最小值的差的一定比例作為下一個(gè)壓縮周期內(nèi)數(shù)據(jù)采集的閾值;這樣,該閾值根據(jù)數(shù)據(jù)范圍進(jìn)行不斷的調(diào)整和優(yōu)化。
全文摘要
一種在快速數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)高效數(shù)據(jù)壓縮的方法,屬于對(duì)流程工廠中的大量過(guò)程數(shù)據(jù)采集后壓縮處理技術(shù)領(lǐng)域。壓縮步驟為根據(jù)過(guò)程數(shù)據(jù)的數(shù)據(jù)類型和取值范圍對(duì)數(shù)據(jù)進(jìn)行類型的基本壓縮;采用閾值自適應(yīng)的變點(diǎn)存儲(chǔ)方法;采用段頁(yè)式時(shí)間存儲(chǔ)法。優(yōu)點(diǎn)在于,摒棄了大部分系統(tǒng)采樣的直接將過(guò)程數(shù)據(jù)存入數(shù)據(jù)庫(kù)的模式,直接將過(guò)程數(shù)據(jù)文件壓縮處理,形成二進(jìn)制文件,實(shí)現(xiàn)了對(duì)歷史數(shù)據(jù)文件的高效壓縮,有效節(jié)約了存儲(chǔ)空間。
文檔編號(hào)H03M7/30GK102361458SQ201110235290
公開日2012年2月22日 申請(qǐng)日期2011年8月16日 優(yōu)先權(quán)日2011年8月16日
發(fā)明者凌杰, 周月杰, 彭會(huì)軍, 李亮舉, 高雷 申請(qǐng)人:北京首鋼自動(dòng)化信息技術(shù)有限公司