本發(fā)明涉及工業(yè)控制軟件技術(shù)領(lǐng)域,尤其涉及一種實時數(shù)據(jù)分布式并行壓縮的方法。
背景技術(shù):
Storm是一個分布式的、容錯的實時計算系統(tǒng),其可以方便的在一個計算機集群中編寫與擴展復雜的實時計算提供了一組通用的原語,并且它也具有容錯性和可靠的消息處理機制,能夠在水平方向上方便的進行擴展。另一方面,在對被監(jiān)測設備的運行數(shù)據(jù)進行保存時通常因為數(shù)據(jù)量的龐大因此采取對運行數(shù)據(jù)進行壓縮處理的方式以減少儲存空間的使用且使運行數(shù)據(jù)保存處理更加快速高效;因此在對運行數(shù)據(jù)進行壓縮處理過程中都會采用相應的算法進行操作,但是現(xiàn)有對實時的運行數(shù)據(jù)進行壓縮處理時通常存在著以下缺陷,數(shù)據(jù)壓縮處理效率低,并且面對大量的并發(fā)運行數(shù)據(jù)系統(tǒng)處理能力較低。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中對運行數(shù)據(jù)進行壓縮處理時存在的上述問題,現(xiàn)提供一種旨在對多個被測設備的運行數(shù)據(jù)分別進行壓縮處理且壓縮處理效率更高的實時數(shù)據(jù)分布式并行壓縮的方法。
具體技術(shù)方案如下:
一種實時數(shù)據(jù)分布式并行壓縮的方法,應用于對多個被監(jiān)測設備的運行數(shù)據(jù)進行壓縮處理;其中,提供一處理單元,所述處理單元用以對遠程連接的多個所述被監(jiān)測設備發(fā)送的所述運行數(shù)據(jù)進行處理,所述運行數(shù)據(jù)中包括多個數(shù)據(jù)點,于所述運行數(shù)據(jù)中將所需計算的數(shù)據(jù)點數(shù)量作為計算節(jié)點的數(shù)量,并預設收到的第一個數(shù)據(jù)點為第一基準點,還包括:
步驟S1、所述處理單元于所述運行數(shù)據(jù)中獲取所述待計算的數(shù)據(jù)點數(shù)量,并建立與所述待計算數(shù)據(jù)點數(shù)量相同的所述計算節(jié)點;
步驟S2、所述處理單元對當前的所述計算節(jié)點進行處理以獲得對應當前的所述計算節(jié)點的上下臨界精度值,以及對所述第一基準點進行處理以獲得對應所述第一基準點的上下臨界精度值;
步驟S3、所述處理單元根據(jù)當前的所述計算節(jié)點的上下臨界精度值以及所述第一基準點的上下臨界精度值構(gòu)建一數(shù)據(jù)計算模型;
步驟S4、所述處理單元分別將當前的所述計算節(jié)點與所述第一基準點之間的每個所述數(shù)據(jù)點作為待處理數(shù)據(jù)點,并根據(jù)所述數(shù)據(jù)計算模型分別對每個所述待處理數(shù)據(jù)點進行計算,以獲得對應所述待處理數(shù)據(jù)點的個數(shù)的計算結(jié)果;
步驟S5、所述處理單元判斷所有所述計算結(jié)果是否均滿足一預設計算值:
若是,則轉(zhuǎn)向步驟S7;
步驟S6,所述處理單元選取當前的所述計算節(jié)點與所述第一基準點之間的多個所述待判斷數(shù)據(jù)點并保留,并結(jié)束對當前的所述計算節(jié)點的處理;
步驟S7、所述處理單元保存當前的所述計算節(jié)點,并結(jié)束對當前的所述計算節(jié)點的處理。
優(yōu)選的, 所述步驟S7中還包括以下步驟:
步驟S71、將所述計算結(jié)果對應的所述待處理數(shù)據(jù)點的前一個所述待處理數(shù)據(jù)點作為一第二基準點;
步驟S72、保留除所述第一基準點及所述第二基準點之間的所有所述待處理數(shù)據(jù)點之外的所述待處理數(shù)據(jù)點;
步驟S73、結(jié)束對當前的所述計算節(jié)點的處理后,將所述第二基準點作為所述第一基準點,并返回所述步驟S2。
優(yōu)選的,所述步驟S8中,保存當前的所述計算節(jié)點,并結(jié)束對當前的所述計算節(jié)點的處理后,將當前的所述計算節(jié)點作為第一基準點,并返回步驟S2。
優(yōu)選的,在執(zhí)行所述步驟S1前,所述處理單元預先對所述被監(jiān)測設備發(fā)送的所述運行數(shù)據(jù)進行篩選,以去除所述運行數(shù)據(jù)中的異常數(shù)據(jù)。
優(yōu)選的,按照對應于所述運行數(shù)據(jù)的所述被監(jiān)測設備的編號,通過預設的排序方法對所述運行數(shù)據(jù)進行排序。
優(yōu)選的,所述排序方法為歸并排序法。
優(yōu)選的,提供一數(shù)據(jù)庫,用以保存經(jīng)過壓縮處理的所述運行數(shù)據(jù)對應的所述數(shù)據(jù)點。
優(yōu)選的,所述處理單元為基于storm集群的管理系統(tǒng)。
優(yōu)選的,提供一服務端,與所述所數(shù)據(jù)庫以及所述處理單元連接,用以獲取經(jīng)過處理的所述運行數(shù)據(jù)對應的所述數(shù)據(jù)點。
優(yōu)選的,每個所述被監(jiān)測設備中設置有一通信模塊,每個所述被監(jiān)測設備分別通過所述通信模塊將所述運行數(shù)據(jù)發(fā)送至所述處理單元。
上述技術(shù)方案具有如下優(yōu)點或有益效果:根據(jù)運行數(shù)據(jù)中獲取的計算節(jié)點,進而根據(jù)計算節(jié)點對運行數(shù)據(jù)進行壓縮處理,不僅實現(xiàn)了對多個被監(jiān)測設備的運行數(shù)據(jù)進行壓縮處理,而且數(shù)據(jù)壓縮處理效率更高,克服了現(xiàn)有技術(shù)中對運行數(shù)據(jù)的壓縮處理效率低且無法滿足對龐大的運行數(shù)據(jù)進行壓縮處理的缺陷。
附圖說明
參考所附附圖,以更加充分的描述本發(fā)明的實施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對本發(fā)明范圍的限制。
圖1為本發(fā)明一種實時數(shù)據(jù)分布式并行壓縮的方法實施例的流程圖;
圖2為本發(fā)明一種實時數(shù)據(jù)分布式并行壓縮的方法實施例中,關(guān)于處理待處理數(shù)據(jù)節(jié)點的流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
本發(fā)明包括一種實時數(shù)據(jù)分布式并行壓縮的方法。
一種實時數(shù)據(jù)分布式并行壓縮的方法方法的實施例,應用于對多個被監(jiān)測設備的運行數(shù)據(jù)進行壓縮處理;其中,提供一處理單元,處理單元用以對遠程連接的多個被監(jiān)測設備發(fā)送的運行數(shù)據(jù)進行處理,運行數(shù)據(jù)中包括多個數(shù)據(jù)點,于運行數(shù)據(jù)中將所需計算的數(shù)據(jù)點數(shù)量作為計算節(jié)點的數(shù)量,并預設收到的第一個數(shù)據(jù)點為第一基準點,還包括:
還包括:如圖1所示,還包括:
步驟S1、處理單元于運行數(shù)據(jù)中獲取待計算的數(shù)據(jù)點數(shù)量,并建立與待計算數(shù)據(jù)點數(shù)量相同的計算節(jié)點;
步驟S2、處理單元對當前的計算節(jié)點進行處理以獲得對應當前的計算節(jié)點的上下臨界精度值,以及對第一基準點進行處理以獲得對應第一基準點的上下臨界精度值;
步驟S3、處理單元根據(jù)當前的計算節(jié)點的上下臨界精度值以及第一基準點的上下臨界精度值構(gòu)建一數(shù)據(jù)計算模型;
步驟S4、處理單元分別將當前的計算節(jié)點與第一基準點之間的每個數(shù)據(jù)點作為待處理數(shù)據(jù)點,并根據(jù)數(shù)據(jù)計算模型分別對每個待處理數(shù)據(jù)點進行計算,以獲得對應待處理數(shù)據(jù)點的個數(shù)的計算結(jié)果;
步驟S5、處理單元判斷所有計算結(jié)果是否均滿足一預設計算值:
若是,則轉(zhuǎn)向步驟S7;
步驟S6,處理單元選取當前的計算節(jié)點與第一基準點之間的多個待判斷數(shù)據(jù)點并保留,并結(jié)束對當前的計算節(jié)點的處理;
步驟S7、處理單元保存當前的計算節(jié)點,并結(jié)束對當前的計算節(jié)點的處理。
上述技術(shù)方案中,處理單元可對多個被監(jiān)測設備發(fā)送的運行數(shù)據(jù)進行壓縮處理,以提高對多個被監(jiān)測設備的運行數(shù)據(jù)進行處理的效率,其中對運行數(shù)據(jù)具體壓縮處理的過程可包括,對于獲取的運行數(shù)據(jù)使用者可通過處理單元預先于運行數(shù)據(jù)中設置需要處理的計算節(jié)點,進而方便對運行數(shù)據(jù)的壓縮處理;
處理單元根據(jù)需要計算的數(shù)據(jù)點數(shù)量于運行數(shù)據(jù)中建立與待計算數(shù)據(jù)點數(shù)量相同的計算節(jié)點;
根據(jù)計算節(jié)點于運行數(shù)據(jù)中的先后位置,依次于運行數(shù)據(jù)中獲取計算節(jié)點,在獲取到計算節(jié)點后,可通過處理單元對當前的計算節(jié)點進行處理以獲取對應與當前計算節(jié)點的上下臨界精度值,在處理獲得當前計算節(jié)點的上下臨界精度值后,可通過處理單元對第一基準點進行處理,以獲得對應第一基準點的上下臨界精度值;
處理單元通過當前的計算節(jié)點的上下臨界精度值以及第一基準點的上下臨界精度值進行處理以形成數(shù)據(jù)計算模型,其中數(shù)據(jù)計算模型用以對當前節(jié)點及第一基準點之間的所有數(shù)據(jù)點進行分別處理以分別獲取對應于每個數(shù)據(jù)點的計算結(jié)果;
若所有的計算結(jié)果均滿足一預設計算值,則處理單元將保留當前計算節(jié)
點及第一基準點之間的所有待處理處理點,并結(jié)束對當前的計算節(jié)點的處理;
若所有的計算結(jié)果中的其中一個計算結(jié)果不滿足預設計算值,則保存當前的計算節(jié)點,并結(jié)束對當前的計算節(jié)點的處理。
在一種較優(yōu)的實施方式中,如圖2所示, 步驟S7中還包括以下步驟:
步驟S71、將計算結(jié)果對應的待處理數(shù)據(jù)點的前一待處理數(shù)據(jù)點作為第二基準點;
步驟S72、保留除第一基準點及第二基準點之間的所有待處理數(shù)據(jù)點之外的待處理數(shù)據(jù)點;
步驟S73、結(jié)束對當前的計算節(jié)點的處理后,將第二基準點作為第一基準點并返回上述的步驟S2。
上述技術(shù)方案中,若其中的一個計算結(jié)果不滿足預設計算值,則表示此計算結(jié)果對應的待處理數(shù)據(jù)點已經(jīng)出現(xiàn)變化,即不在同一變化趨勢內(nèi),此時可將該計算結(jié)果對應的數(shù)據(jù)點作為第二基準點,并將第一基準點與第二基準點之間存在數(shù)據(jù)點進行壓縮去除后,將此時的第二基準點做為對下一個計算節(jié)點處理的第一基準點,并繼續(xù)于上述計算節(jié)點中依次獲取下一個計算節(jié)點進行上述的處理,直到選取的所有計算節(jié)點均處理完畢結(jié)束。
在一種較優(yōu)的實施方式中,步驟S8中,保存當前計算節(jié)點,并結(jié)束對當前的計算節(jié)點處理后,將當前的計算節(jié)點作為第一基準點并返回步驟S2。
上述技術(shù)方案中,若所有的計算結(jié)果均滿足預設計算值,則表示自第一基準點至當前的計算節(jié)點之間的所有待處理數(shù)據(jù)點,均為同一變化中,即可對同一變化中的待處理數(shù)據(jù)點進行壓縮,進而可達到使數(shù)據(jù)存儲容量更小,此時的處理單元可將當前節(jié)點做為第一基準點,并且于獲取的計算節(jié)點中按照順序依次獲取下一個計算節(jié)點重復上述的處理方式直到所有的計算節(jié)點處理完畢。
在一種較優(yōu)的實施方式中,在執(zhí)行步驟S1前,
在執(zhí)行步驟S1前,處理單元預先對被檢測設備發(fā)送的運行數(shù)據(jù)進行篩選,以去除運行數(shù)據(jù)中的異常數(shù)據(jù)。
上述技術(shù)方案中,處理單元通過對被監(jiān)測設備發(fā)送的運行數(shù)據(jù)進行預處理,即對運行數(shù)據(jù)中出現(xiàn)的異常數(shù)據(jù)點及出錯的數(shù)據(jù)進行篩選剔除,以方便后續(xù)對運行數(shù)據(jù)的壓縮處理。
在一種較優(yōu)的實施方式中,按照對應于運行數(shù)據(jù)的被檢測設備的編號,通過預設的排序方法對運行數(shù)據(jù)進行排序。
在一種較優(yōu)的實施方式中,排序方法為歸并排序法。
上述技術(shù)方案中,每個被監(jiān)測設備均包括一設備編號,其中為了對被監(jiān)測設備發(fā)送的運行數(shù)據(jù)進行有序的壓縮處理操作,即通過將監(jiān)測設備對應的運行數(shù)據(jù)按照其設備的編號,采用歸并排序法進行排序,其中歸并排序法(MERGE-SORT)是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法(Divide and Conquer)的一個非常典型的應用
在一種較優(yōu)的實施方式中,提供一數(shù)據(jù)庫,用以保存經(jīng)過壓縮處理的運行數(shù)據(jù)對應的數(shù)據(jù)點。
在一種較優(yōu)的實施方式中,處理單元為基于storm集群的管理系統(tǒng)。
在一種較優(yōu)的實施方式中,提供一服務端,與所數(shù)據(jù)庫以及處理單元連接,用以獲取經(jīng)過處理的運行數(shù)據(jù)對應的數(shù)據(jù)點。
在一種較優(yōu)的實施方式中,每個被監(jiān)測設備中設置有一通信模塊,每個被監(jiān)測設備分別通過通信模塊將運行數(shù)據(jù)發(fā)送至處理單元。
上述技術(shù)方案中,被監(jiān)測設備的通信模塊可通過基于tcp/ip協(xié)議與處理單元建立連接,進而使處理單元接收由被監(jiān)測設備發(fā)送的運行數(shù)據(jù);
被監(jiān)測設備的通信模塊還可通過基于OPC(OLE for Process Control, 用于過程控制的OLE)工業(yè)標準,與處理單元建立連接,進而使處理單元接收由被監(jiān)測設備發(fā)送的運行數(shù)據(jù)。
在具體實施例中,在處理單元為基于storm集群的管理系統(tǒng)的實施例下,在對多個被監(jiān)測設備發(fā)送的運行數(shù)據(jù)進行壓縮處理時;
可通過storm集群對運行數(shù)據(jù)進行預處理之后,在storm集群中構(gòu)建nimbus主節(jié)點,其中nimbus主節(jié)點于運行數(shù)據(jù)的進程中獲取需要計算的節(jié)點數(shù)量,進而于數(shù)據(jù)點中獲取與節(jié)點數(shù)量匹配的supervisor計算節(jié)點,通過于supervisor計算節(jié)點中按照排列順序獲取一supervisor計算節(jié)點,于運行數(shù)據(jù)中處理獲得當前的supervisor計算節(jié)點的上下臨界精度值,以及于運行數(shù)據(jù)中通過對的第一基準點進行處理以獲取對應一基準點的上下臨界精度值,進而根據(jù)supervisor計算節(jié)點的上下臨界精度值及第一基準點分別計算出上下臨界精度值中的四個端點的臨界值構(gòu)建一平行四邊形即上述的數(shù)據(jù)計算模型;
通過對當前的supervisor計算節(jié)點以及第一基準點之間存在的數(shù)據(jù)點,通過構(gòu)建并啟用與待處理數(shù)據(jù)點個數(shù)相同的worker進程,將其中的所有的待處理數(shù)據(jù)點分別代入上述的數(shù)據(jù)計算模型,即判斷其中的所有待處理數(shù)據(jù)點是否存在于平行四邊構(gòu)建的區(qū)域內(nèi);
若其中的一個待處理數(shù)據(jù)點不存在于平行四邊形的區(qū)域內(nèi)則將當前的待處理數(shù)據(jù)點的前一個待處理數(shù)據(jù)點作為第二基準點,并將第二基準點與第一基準點之間的所有待處理數(shù)據(jù)點進行壓縮處理以去除第一基準點及第二基準點之中的所有待處理數(shù)據(jù)點后,將第二基準點作為第一基準點并繼續(xù)于上述的supervisor計算節(jié)點中按照順序選擇另一supervisor計算節(jié)點,重復上述的計算判斷過程,直到所有的supervisor計算節(jié)點處理完畢后,保存經(jīng)過處理壓縮后運行數(shù)據(jù);
若上述的所有數(shù)據(jù)點均存在于上述的平行四邊形范圍內(nèi),則將當前的supervisor計算節(jié)點作為第一基準點重復上述的計算判斷過程,直到所有的supervisor計算節(jié)點處理完畢后,保存經(jīng)過處理壓縮后運行數(shù)據(jù)。
以上所述僅為本發(fā)明較佳的實施例,并非因此限制本發(fā)明的實施方式及保護范圍,對于本領(lǐng)域技術(shù)人員而言,應當能夠意識到凡運用本發(fā)明說明書及圖示內(nèi)容所作出的等同替換和顯而易見的變化所得到的方案,均應當包含在本發(fā)明的保護范圍內(nèi)。