999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

過程數(shù)據(jù)的壓縮與存取系統(tǒng)構(gòu)建策略

2018-09-22 01:10:20方宗順
機械設(shè)計與制造工程 2018年9期
關(guān)鍵詞:數(shù)據(jù)庫

方宗順

(中石化揚子石油化工有限責任公司,江蘇 南京 210048)

過程數(shù)據(jù)是非常寶貴的信息資源,在生產(chǎn)過程中加以挖掘并廣泛應(yīng)用于如設(shè)備運行監(jiān)控、故障檢測與遠程智能診斷、質(zhì)量實時控制、反饋控制等許多過程運行和控制任務(wù)場合[1]。隨著企業(yè)的設(shè)備數(shù)量越來越多、信息采集與控制技術(shù)的進步、計算機及網(wǎng)絡(luò)技術(shù)的發(fā)展,以及生產(chǎn)過程更加高效、安全的運行要求,使生產(chǎn)過程中的數(shù)據(jù)量劇增,產(chǎn)生了海量過程數(shù)據(jù)存儲與實時多任務(wù)并發(fā)讀取的需求[2]。

過程數(shù)據(jù)壓縮和重建是過程數(shù)據(jù)管理的重要組成部分,過程數(shù)據(jù)壓縮一般要遵守基于逼近誤差和顯著特征的保真度準則,像地震領(lǐng)域的大數(shù)據(jù)和語音壓縮算法以及傳統(tǒng)的圖像壓縮算法都不能滿足過程數(shù)據(jù)采集速度和壓縮質(zhì)量的要求。Hale等[3]闡述了實時數(shù)據(jù)壓縮的優(yōu)點,并提出了矩形波串法(box car)和后向斜率法,使人們認識到了過程數(shù)據(jù)壓縮的重要性。隨后,Bristol提出了旋轉(zhuǎn)門趨勢(swinging door trending, SDT)算法,Mah等[4]對SDT算法進行了改進,提出了一種分段線性在線趨勢化(piecewise linear on-line trending, PLOT)算法。這幾種算法的本質(zhì)是進行分段線性插值,將實際信號與壓縮信號之間的局部誤差控制在給定范圍之內(nèi)。

本文采用基于非關(guān)系型的開源的BDB(Berkeley data base),實現(xiàn)對過程數(shù)據(jù)的分布式存取管理。其突出優(yōu)點是數(shù)據(jù)存取算法易實現(xiàn)、執(zhí)行速度快、支持多操作系統(tǒng)、支持海量數(shù)據(jù)存儲(數(shù)據(jù)存儲容量達到256TB)[5]。同時,本文給出SDT壓縮算法的API軟件層代碼實現(xiàn),采用 Windows 通訊開發(fā)平臺(Windows communication foundation, WCF)技術(shù)開發(fā)分布式數(shù)據(jù)存取中間件,以此構(gòu)建了過程數(shù)據(jù)存儲系統(tǒng),并應(yīng)用于某石化企業(yè)的計量監(jiān)控系統(tǒng),與其他不同類型數(shù)據(jù)庫存儲系統(tǒng)相比,BDB在過程數(shù)據(jù)領(lǐng)域有很大優(yōu)勢。

1 數(shù)據(jù)處理與存儲軟件結(jié)構(gòu)

1.1 嵌入式開源數(shù)據(jù)庫BDB

BDB是一個開源的文件型嵌入式數(shù)據(jù)庫,通過內(nèi)嵌在程序中的函數(shù)庫完成對數(shù)據(jù)的增加、修改、刪除操作。它包含5個子系統(tǒng):存取管理子系統(tǒng)、內(nèi)存池管理子系統(tǒng)、事務(wù)處理子系統(tǒng)、加鎖子系統(tǒng)及日志子系統(tǒng),結(jié)構(gòu)如圖1所示。由關(guān)鍵字及數(shù)據(jù)構(gòu)成的Key/Data構(gòu)成BDB的基本結(jié)構(gòu)單元,數(shù)個這樣的結(jié)構(gòu)單元構(gòu)成數(shù)據(jù)庫整體[6]。

圖1 BDB數(shù)據(jù)庫子系統(tǒng)

BDB具有如下突出優(yōu)點:

1)嵌入式(eebedded)。直接鏈接到應(yīng)用程序中,對數(shù)據(jù)庫的操作就是對操作函數(shù)的調(diào)用。為幾乎所有常見編程語言提供API接口。多個進程,或者同一進程的多個線程可并發(fā)操作數(shù)據(jù)庫[7]。

2)輕便靈活(portable)。不僅可以運行于Windows操作系統(tǒng)下,還可運行于如Linux、UNIX及其他嵌入式實時操作系統(tǒng)之下。

3)可伸縮(scalable)。能夠管理高達256TB規(guī)模的數(shù)據(jù)庫,動態(tài)庫文件自身卻非常精簡,支持高并發(fā)度。

存儲在BDB中的數(shù)據(jù)結(jié)構(gòu)簡潔明了,可以保存任意類型的鍵/值對(Key/Value Pair),而且可以為一個鍵保存多個數(shù)據(jù)。

本文采用BDB存儲生產(chǎn)過程中采集的實時數(shù)據(jù)及文件、圖像等流數(shù)據(jù)。訪問BDB流程為:定義數(shù)據(jù)的結(jié)構(gòu)體,創(chuàng)建數(shù)據(jù)庫表訪問句柄,通過open函數(shù)打開數(shù)據(jù)庫,根據(jù)定義的結(jié)構(gòu)體創(chuàng)建Key/Data對象,調(diào)用put函數(shù)插入記錄,調(diào)用get函數(shù)查詢記錄。程序關(guān)閉時關(guān)閉創(chuàng)建的數(shù)據(jù)庫句柄。

1.2 數(shù)據(jù)壓縮與存取總體構(gòu)建

圖2為基于BDB的數(shù)據(jù)采集與壓縮存儲、分布式查詢提取的軟件結(jié)構(gòu)框圖。數(shù)據(jù)通道將采集的設(shè)備監(jiān)控數(shù)據(jù)送入數(shù)據(jù)預處理模塊,更新一部分斷面數(shù)據(jù)到緩存內(nèi)存區(qū),然后根據(jù)SDT算法進行數(shù)據(jù)壓縮,并將壓縮數(shù)據(jù)通過數(shù)據(jù)總線交給數(shù)據(jù)存儲服務(wù)API層,API層將壓縮后的數(shù)據(jù)存入BDB。歸檔服務(wù)會定期識別BDB中的非活動數(shù)據(jù)并將其轉(zhuǎn)移到其他設(shè)備中[8]。當人機交互軟件請求查詢采樣數(shù)據(jù)時,基于WCF的中間件服務(wù)層會先對BDB中的壓縮數(shù)據(jù)解壓,然后將數(shù)據(jù)發(fā)送給軟件。

圖2 數(shù)據(jù)壓縮存取軟件結(jié)構(gòu)圖

2 SDT數(shù)據(jù)壓縮算法分析

一個良好的實時數(shù)據(jù)庫,必須處理好實時數(shù)據(jù)的壓縮問題,才能使系統(tǒng)的整體性能達到海量數(shù)據(jù)存儲的實時性要求。數(shù)據(jù)壓縮算法流程如圖3所示。

圖3 數(shù)據(jù)壓縮算法流程

一般的數(shù)據(jù)壓縮算法都是通過對數(shù)據(jù)編碼和解碼來進行壓縮和解壓,不同的壓縮算法主要的不同點就在于采用的編碼方式不同。比較常見的是查字典法,字典中包含了許多與實際數(shù)據(jù)對應(yīng)的編碼數(shù)據(jù),通常情況下實際數(shù)據(jù)所對應(yīng)的編碼數(shù)據(jù)都比原數(shù)據(jù)占用更小的空間,通過對應(yīng)關(guān)系將實際數(shù)據(jù)轉(zhuǎn)化為編碼數(shù)據(jù)從而達到壓縮的目的[9]。

2.1 旋轉(zhuǎn)門壓縮算法模型

實時數(shù)據(jù)庫中,數(shù)據(jù)瞬時采集量巨大且相似度高,作為線性擬合的一種簡便算法,即旋轉(zhuǎn)門趨勢(SDT)算法[10-11],具有速度快、易實現(xiàn)、高壓縮、誤差可控等優(yōu)點,已成為一種專門算法[12]。

SDT算法形象地說就是構(gòu)建許多高度(有損壓縮的閾值)固定的平行四邊形,用這些四邊形去“覆蓋”數(shù)據(jù),當數(shù)據(jù)超出四邊形的范圍時,歸檔(存儲)數(shù)據(jù)點。圖4中不斷“膨脹”的平行四邊形就是旋轉(zhuǎn)門,任意時刻該旋轉(zhuǎn)門的寬度都為閾值的2倍。每次擴大后,都要判斷是否所有的數(shù)據(jù)點都能被平行四邊形所覆蓋,若不能完全被覆蓋,則擴張前的所有數(shù)據(jù)點就需要被歸檔(壓縮)[13]。

本文采用的SDT算法是一種直線趨勢化壓縮算法,其實質(zhì)是將一組連續(xù)的數(shù)據(jù)點用一條確定了起點和終點的直線替代。該算法需要使用時間間隔量、起點數(shù)據(jù)和終點數(shù)據(jù)3個參數(shù), 其中下一段的起點數(shù)據(jù)與前一段終點數(shù)據(jù)相同。圖4為其基本原理圖。

圖4 旋轉(zhuǎn)門壓縮算法原理圖

設(shè)ΔE為SDT算法的壓縮閾值,其壓縮原理為:起點t0為上一存儲結(jié)束的數(shù)據(jù)點,將與t0相距ΔE的上下兩點作為軸點,建立一扇有兩個門板的門,只有一個數(shù)據(jù)時門閉合;隨著數(shù)據(jù)點的增加,兩個門板會繞著軸點打開,門板的寬度可擴展,門只能朝著打開的方向旋轉(zhuǎn);只要兩個門板的內(nèi)角和小于180°(兩個門板未平行),旋轉(zhuǎn)操作就可以繼續(xù);一旦門板的內(nèi)角和大于等于180°,就結(jié)束開門的操作,存儲前一點數(shù)據(jù),并將該點作為下一壓縮操作的起點。

在圖4中經(jīng)過旋轉(zhuǎn)門壓縮后,壓縮段1由t0~t4的直線代替了t0~t4的數(shù)據(jù)點;壓縮段2由t4~t7的直線代替了t4~t7的數(shù)據(jù)點。

SDT壓縮算法主要步驟如下:

Step2,計算斜率S1,S2,Sj。

Step3,確定S1new,S2new的值。S1new=max(S1,S1new);S2new=max(S2,S2new)。

Step4,判斷數(shù)據(jù)是否需要存儲。如果S1new≥S2new,儲存前一刻值數(shù)據(jù)值D(j-1)與對應(yīng)時刻T(j-1),否則返回Step3。依次循環(huán),直至達到強制記錄極限(FSRL),結(jié)束當前循環(huán),開始新一輪壓縮。

2.2 壓縮數(shù)據(jù)重建

壓縮數(shù)據(jù)重建是將壓縮數(shù)據(jù)還原成原始數(shù)據(jù)。旋轉(zhuǎn)門壓縮算法屬于有損壓縮,因此解壓縮后的數(shù)據(jù)與原始數(shù)據(jù)存在誤差。壓縮設(shè)定了閾值ΔE,因此還原誤差不會超過2ΔE。相較壓縮算法,重構(gòu)還原算法要簡單得多,本質(zhì)上就是線性插值。設(shè)待解壓數(shù)據(jù)分為n段,D(i)中存放每段的長度,R(i)中存放i個數(shù)據(jù)點,Z(i)存放還原后的數(shù)據(jù),i=1,2,…,n,(n+1)。數(shù)據(jù)還原算法步驟為:

Step1n=1,i=1;

Step2incr=0.0+[R(i+1)-R(i)]/D(i),k=1;

Step3Z(n)=R(i)+incr× (k-1),k=k+1,n=n+1;

Step4 if (k>D(i)) Then Step5,Else Step3;

Step5i=i+1;

Step6 if (i=n) Then Step2, Else Return。

3 數(shù)據(jù)存取關(guān)鍵技術(shù)實現(xiàn)及應(yīng)用

3.1 系統(tǒng)構(gòu)建

某石化計量監(jiān)控系統(tǒng)數(shù)據(jù)采集存儲需求為:總計30 450個I/O點的數(shù)據(jù),I/O點數(shù)據(jù)存儲時間間隔為5s,24h不間斷存儲,存儲時間1a以上,數(shù)據(jù)查詢刷新時間小于2s。其中多區(qū)域質(zhì)量流量計230臺,每臺質(zhì)量流量計采集65個I/O點的數(shù)據(jù),多區(qū)域罐150個,每個罐采集50個I/O點的數(shù)據(jù),多區(qū)域PLC控制系統(tǒng)4套,累計采集2 000個I/O點的數(shù)據(jù)。多區(qū)域視頻流采集點50個,存儲時間大于6個月。

按1a時間計算,以上I/O點的數(shù)據(jù)總量大于8TB,按照常規(guī)思路按點存儲,數(shù)據(jù)的存儲與提取無法滿足實時性需求。本文基于BDB存儲I/O點數(shù)據(jù),采用SDT動態(tài)數(shù)據(jù)壓縮及重建算法,結(jié)合WCF技術(shù)封裝數(shù)據(jù)的提取中間件,以此構(gòu)建計量監(jiān)控系統(tǒng)。圖5為分布式存儲數(shù)據(jù)結(jié)構(gòu),區(qū)域1~區(qū)域m為獨立的前端采集存儲I/O點數(shù)據(jù)服務(wù)器,壓縮數(shù)據(jù)存儲在BDB。區(qū)域1~區(qū)域m的獨立的BDB數(shù)據(jù)與集中存儲服務(wù)器的BDB數(shù)據(jù)實時同步。基于壓縮數(shù)據(jù)重建API函數(shù),采用WCF技術(shù)構(gòu)建數(shù)據(jù)提取及適合于業(yè)務(wù)流的中間件,供計量監(jiān)控系統(tǒng)軟件客戶端調(diào)用。

圖5 計量監(jiān)控系統(tǒng)分布式存儲結(jié)構(gòu)

3.2 數(shù)據(jù)同步技術(shù)實現(xiàn)

數(shù)據(jù)存儲區(qū)域服務(wù)器主要實現(xiàn):

服務(wù)1,采集數(shù)據(jù)并壓縮,按Key/Data配置好數(shù)據(jù)結(jié)構(gòu)并結(jié)合時間戳,存儲到BDB對應(yīng)的表中;

服務(wù)2,實時監(jiān)控BDB對應(yīng)表中數(shù)據(jù)的變化,一旦數(shù)據(jù)有變化,建立socket監(jiān)聽端口,執(zhí)行與集中存儲服務(wù)器的連接操作,將變化且未傳的數(shù)據(jù)存儲到集中存儲服務(wù)器的BDB對應(yīng)表中,并更新上傳標志。

其中服務(wù)2采用了多線程的方式,包括1個主線程和2個子線程。主線程主要監(jiān)聽數(shù)據(jù)的變化及進行數(shù)據(jù)同步。子線程1用來偵聽存儲服務(wù)器的連接請求,如果有請求就與服務(wù)器建立連接;子線程2負責在已建立的連接上將變化的數(shù)據(jù)交給rep_process_message函數(shù)處理。3個線程之間相互獨立運行。具體流程如圖6所示。

圖6 數(shù)據(jù)同步流程圖

3.3 數(shù)據(jù)交互中間件設(shè)計

供客戶端及第三方軟件應(yīng)用的中間件的功能及流程為:基于WCF的異構(gòu)系統(tǒng)間交互數(shù)據(jù),接收外界并行請求,然后執(zhí)行處理,并且在集中存儲服務(wù)器端BDB重建并封裝請求的數(shù)據(jù),最終返回外界客戶端顯示。

WCF整合了.NET平臺下與通信服務(wù)相關(guān)的所有內(nèi)容,支持多種契約方式與服務(wù)運行方式,具有可靠性、統(tǒng)一性、互操作性和兼容性等優(yōu)點,提供多種類型的消息編碼及多種協(xié)議的消息傳遞。地址(address)、綁定(binding)和契約(contract)是WCF的三要素,必須對它們進行指定才能用WCF進行通信[14]。地址指的是WCF的服務(wù)器地址,契約則表示雙方要進行交互的內(nèi)容,綁定則是指雙方以什么樣的方式進行交互。為了能在不同的網(wǎng)絡(luò)和環(huán)境下實現(xiàn)分布式訪問,WCF支持多種綁定方式[15]。

數(shù)據(jù)交互中間件主要包括注冊、驗證數(shù)據(jù)、數(shù)據(jù)處理及更新反饋功能模塊。注冊模塊實現(xiàn)數(shù)據(jù)交互系統(tǒng)間的IP、端口號等基本信息及交互信息的管理功能,配置文件、保存設(shè)置的信息。驗證數(shù)據(jù)模塊提供對要操作數(shù)據(jù)的格式驗證。數(shù)據(jù)處理模塊主要工作是對請求方的格式進行驗證、解析,并將請求轉(zhuǎn)發(fā)到提供方,調(diào)取數(shù)據(jù)重建API函數(shù)從BDB提取數(shù)據(jù),并封裝成指定數(shù)據(jù)結(jié)構(gòu),同時將處理后的消息通過平臺反饋給請求者。更新反饋模塊實現(xiàn)了更改配置信息通知等功能,并定期給注冊到該平臺的關(guān)聯(lián)系統(tǒng)轉(zhuǎn)發(fā)系統(tǒng)配置文件。圖7為數(shù)據(jù)交互實現(xiàn)流程。

圖7 數(shù)據(jù)交互實現(xiàn)流程

3.4 測試分析

編寫并發(fā)存儲、并發(fā)讀取和邊存儲邊讀取的測試程序,對BDB和SQL server數(shù)據(jù)庫進行比較,整理測試結(jié)果,見表1。結(jié)果表明,采用BDB速度較快,且數(shù)據(jù)量越大效果越明顯。

表1 數(shù)據(jù)存取時間對比

采用SDT算法,基于BDB壓縮存儲及數(shù)據(jù)重建,對采集的I/O點數(shù)據(jù)存取性能指標進行計算,得到的計算結(jié)果見表2。表中數(shù)據(jù)1樣本為罐信息7 500個I/O點的數(shù)據(jù),數(shù)據(jù)2樣本為質(zhì)量流量計采集的14 950個I/O點數(shù)據(jù),數(shù)據(jù)3樣本為PLC系統(tǒng)2 000個I/O點的數(shù)據(jù)。結(jié)果表明,在對實際過程數(shù)據(jù)進行處理時,使用SDT算法可以明顯地減少數(shù)據(jù)占用的空間,降低現(xiàn)場總線網(wǎng)絡(luò)出現(xiàn)阻塞的可能性,提高控制監(jiān)控系統(tǒng)的性能、數(shù)據(jù)存取的效率及實時性。顯著缺點是數(shù)據(jù)為有損重建。

表2 I/O點過程數(shù)據(jù)壓縮性能結(jié)果

4 結(jié)束語

本文將BDB與SDT算法結(jié)合,達到了提高數(shù)據(jù)存取效率、減少數(shù)據(jù)占用空間的目的。結(jié)合WCF技術(shù),構(gòu)建的分布式數(shù)據(jù)存取系統(tǒng)[16]解決了大型實時數(shù)據(jù)存儲提取實時性不高的問題,已應(yīng)用于某石化企業(yè)的過程數(shù)據(jù)SCADA系統(tǒng)。因本文的SDT算法為有損數(shù)據(jù)壓縮重建,難以滿足計量數(shù)據(jù)的一致性要求,下一步將對數(shù)據(jù)壓縮的無損算法及異構(gòu)系統(tǒng)服務(wù)緩存機制加強研究。

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
數(shù)據(jù)庫
財經(jīng)(2015年3期)2015-06-09 17:41:31
數(shù)據(jù)庫
財經(jīng)(2014年21期)2014-08-18 01:50:18
數(shù)據(jù)庫
財經(jīng)(2014年6期)2014-03-12 08:28:19
數(shù)據(jù)庫
財經(jīng)(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 欧美a在线| 黄色一及毛片| 亚洲乱码在线播放| 丁香婷婷久久| 亚洲日本www| 69免费在线视频| 国产精品亚洲五月天高清| 女人一级毛片| 四虎AV麻豆| 潮喷在线无码白浆| 91福利国产成人精品导航| 欧美一区国产| 在线免费观看a视频| 国产精品无码久久久久久| 亚洲男女在线| 亚洲精品动漫在线观看| 香蕉久久国产精品免| 国产成人无码播放| 日韩成人在线网站| 亚洲国产精品一区二区第一页免| 国产91丝袜在线播放动漫 | 免费欧美一级| 国产精品视频猛进猛出| 国产麻豆精品在线观看| 综合社区亚洲熟妇p| 精品国产网| 精品国产免费观看一区| 亚洲av日韩av制服丝袜| 最新精品久久精品| 亚洲不卡av中文在线| 欧洲成人在线观看| 免费看a毛片| 中文国产成人精品久久一| 色妞永久免费视频| av在线手机播放| 精品久久久久久成人AV| 亚洲一区二区三区国产精品| 国产精品亚洲综合久久小说| 国产精品成人AⅤ在线一二三四| 国产色婷婷| 国产免费a级片| 在线a网站| 国产成人精品视频一区视频二区| 激情乱人伦| 激情综合五月网| 国模私拍一区二区三区| 久久青草精品一区二区三区 | 婷婷午夜影院| 亚洲美女一级毛片| 国产无码精品在线| 高清大学生毛片一级| 日韩视频精品在线| 人人爽人人爽人人片| 夜夜操国产| 国产自在线播放| 国产亚洲精品97在线观看| 国产精品.com| 日韩精品免费一线在线观看| 久久99热66这里只有精品一| 日韩在线永久免费播放| 亚洲精品视频免费看| 亚洲浓毛av| 成人午夜在线播放| 99成人在线观看| 亚洲第一页在线观看| 久久久黄色片| 无码高潮喷水专区久久| 久久精品中文字幕免费| 91丝袜乱伦| 日本午夜精品一本在线观看| 美女一级免费毛片| 亚洲开心婷婷中文字幕| 99精品一区二区免费视频| 91在线播放国产| 国产日韩精品欧美一区灰| 久草国产在线观看| 国产成人精品亚洲日本对白优播| 久久96热在精品国产高清| 亚洲a级在线观看| 91在线视频福利| 国产剧情无码视频在线观看| 又猛又黄又爽无遮挡的视频网站|