天地(常州)自動化股份有限公司 高 文
基于MongoDB的大容量測控數(shù)據(jù)集成平臺設(shè)計
天地(常州)自動化股份有限公司 高 文
針對目前遠程測控數(shù)據(jù)集成工程中大容量數(shù)據(jù)集成平臺可用性不高和價格昂貴的問題,提出了一種基于MongoDB的大容量測控數(shù)據(jù)集成平臺設(shè)計方案,重點闡述了遠程測控數(shù)據(jù)集成工程的現(xiàn)狀與問題、基于MongoDB的大容量測控數(shù)據(jù)集成平臺設(shè)計方案架構(gòu)、功能組成和關(guān)鍵技術(shù)。
MongoDB;數(shù)據(jù)采集;測控
遠程測控數(shù)據(jù)集成工程是近年來新興的一類自動化數(shù)據(jù)集成工程項目,這些工程項目的特點是并發(fā)性高、數(shù)據(jù)量大、實時性要求相對較低。隨著企業(yè)不斷發(fā)展,工業(yè)過程日益復(fù)雜,現(xiàn)場產(chǎn)生的測控數(shù)據(jù)采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫和單機實時數(shù)據(jù)庫已經(jīng)無法滿足現(xiàn)有的數(shù)據(jù)處理要求[1]。
筆者從方案的高擴展性、低成本和實用性方面考慮,設(shè)計了基于MongoDB的大容量測控數(shù)據(jù)集成平臺方案。該平臺可用于采集、處理和存儲海量的測控數(shù)據(jù),并支持用戶快速的對數(shù)據(jù)進行各類前端可視化。本文將著重闡述遠程測控數(shù)據(jù)采集工程的現(xiàn)狀與問題、基于MongoDB的大容量測控數(shù)據(jù)集成平臺架構(gòu)設(shè)計和關(guān)鍵技術(shù)。
近年來,隨著各類遠程測控數(shù)據(jù)集成工程的實施和應(yīng)用,生產(chǎn)管理人員可以隨時掌握現(xiàn)場生產(chǎn)情況,及時指導(dǎo)現(xiàn)場管理,大大提高了生產(chǎn)效率[1]。信息管理系統(tǒng)要求能夠處理多樣性的數(shù)據(jù)類型,包括結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)和Web數(shù)據(jù)等,要求能夠?qū)崿F(xiàn)海量數(shù)據(jù)的高效率存儲和訪問需求[2]。
但是在實際工程實施和應(yīng)用中,大部分現(xiàn)場仍然采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲實時數(shù)據(jù)或單機版實時數(shù)據(jù)庫產(chǎn)品。這些方案主要局限性在于以下幾點:
2.1 單機數(shù)據(jù)庫產(chǎn)品容易出現(xiàn)縱向擴容瓶頸
使用量較大的單機數(shù)據(jù)庫很少完美支持大規(guī)模橫向擴展的特性,一般僅支持計算機硬件的縱向擴展。在遠程測控數(shù)據(jù)集成工程的實際應(yīng)用中,由于越來越多的項目是一個廠區(qū)、一個集團公司甚至一個地區(qū)所有的測控系統(tǒng)數(shù)據(jù)集成,因此常常出現(xiàn)性能不夠的情況,
2.2 后端數(shù)據(jù)處理平臺與流行的前端界面技術(shù)兼容性不佳
對于使用了專業(yè)實時數(shù)據(jù)庫的集成平臺來說,前端界面一般由組態(tài)軟件提供。但是對于流行的大多數(shù)基于Web技術(shù)的前端界面與這些平臺的交互就比較困難,沒有成熟的接口,并且經(jīng)常出現(xiàn)托管型代碼調(diào)用非托管API出現(xiàn)的內(nèi)存越界和內(nèi)存未正確釋放等問題。
2.3 專業(yè)實時數(shù)據(jù)庫支持的數(shù)據(jù)類型較單一
大部分專業(yè)的實時數(shù)據(jù)庫歸檔能力較強,但是支持的數(shù)據(jù)類型比較單一,比如僅支持模擬量、開關(guān)量等數(shù)字類型,一般不支持用戶自定義結(jié)構(gòu)類型或者字符串類型等。這樣就在實際應(yīng)用中產(chǎn)生較大的局限性,類似人員行走軌跡數(shù)據(jù)、文字數(shù)據(jù)、語音數(shù)據(jù)和圖像視頻數(shù)據(jù)就不方便歸檔存儲。
基于MongoDB的大容量測控數(shù)據(jù)集成平臺整體架構(gòu)共分五大部分,分別是數(shù)據(jù)采集、數(shù)據(jù)緩存、數(shù)據(jù)處理容器、數(shù)據(jù)存儲和前端界面。
數(shù)據(jù)采集模塊負責從子系統(tǒng)中采集原始數(shù)據(jù),可支持OPC、文本文件、Http以及自定義等幾種采集方式;數(shù)據(jù)緩存模塊負責在內(nèi)存中暫時緩存數(shù)據(jù),并提供常見的緩存失效、刷新機制;數(shù)據(jù)處理容器提供了一個數(shù)據(jù)處理插件運行的環(huán)境和框架,容器可提供加載、卸載、重啟、監(jiān)控等功能;數(shù)據(jù)存儲模塊以MongoDB為基礎(chǔ),提供了多種類型數(shù)據(jù)庫的存儲接口;前端界面模塊使用當前較流行的Web技術(shù)開發(fā),與后端數(shù)據(jù)庫無縫集成,提供了豐富的數(shù)據(jù)展現(xiàn)形式。采用上述的架構(gòu)方案后,集成平臺將形成一個簡潔的內(nèi)核。在這個內(nèi)核的基礎(chǔ)上,再以插件的方式開發(fā)業(yè)務(wù)功能。
4.1 測點和數(shù)據(jù)類型的設(shè)計
無論集成平臺集成的是什么類型的數(shù)據(jù),本次設(shè)計均把這些數(shù)據(jù)歸類為有限的幾種測點類型。平臺支持的數(shù)據(jù)類型如下:
整型:32位無符號整型。
數(shù)值型:保留8位小數(shù)的數(shù)值。
字符串型:長度不超過150字符(英文字符)的字符串。
軌跡類數(shù)據(jù)的設(shè)計:軌跡類的數(shù)據(jù)也是按時間流逝產(chǎn)生的大量記錄,但數(shù)據(jù)本身是結(jié)構(gòu)化的記錄,由于MongoDB中文檔內(nèi)的結(jié)構(gòu)是可變的(無模式),因此可以直接支持這樣的兼容性設(shè)計。
其他類型的數(shù)據(jù)設(shè)計:對于大文本數(shù)據(jù)、語音數(shù)據(jù)和圖像視頻數(shù)據(jù),可以直接存入MongoDB,也不需要額外的工作。
4.2 數(shù)據(jù)庫選型
平臺選擇MongoDB作為商業(yè)實時數(shù)據(jù)庫的替代方案。MongoDB的設(shè)計采用橫向擴展,面向文檔的數(shù)據(jù)模型使它能很容易地在多臺服務(wù)器之間進行數(shù)據(jù)分割。如果一個集群需要更大的容量,只需要向集群添加新服務(wù)器,MongoDB就會自動將現(xiàn)有數(shù)據(jù)向新服務(wù)器傳送[3]。MongoDB支持各種類型的數(shù)據(jù),無需轉(zhuǎn)換格式。
4.3 數(shù)據(jù)接口設(shè)計
常用的公共接口寄宿在數(shù)據(jù)處理容器服務(wù)中,對外發(fā)布WCF-http類型的接口。業(yè)務(wù)密切相關(guān)的定制接口也寄宿在數(shù)據(jù)處理容器服務(wù)中。這些接口對外發(fā)布的接口類型由開發(fā)人員自己根據(jù)實際項目情況確定,可以是HTTP接口,也可以是RS232/ RS485等接口。
本文梳理了常見測控數(shù)據(jù)集成工程的需求、現(xiàn)狀和問題,提出了一種基于MongoDB的大容量測控數(shù)據(jù)集成平臺的設(shè)計方案。作為分布式監(jiān)控系統(tǒng),系統(tǒng)設(shè)計的關(guān)鍵是高并發(fā)服務(wù)調(diào)用的負載均衡和異構(gòu)大數(shù)據(jù)的存儲和分析[4]。該方案支持多種數(shù)據(jù)類型的集成,支持橫向擴展來應(yīng)對性能不足的問題。該平臺已經(jīng)在多個實際工程中應(yīng)用并取得了較好的效果,但也存在MongoDB技術(shù)支持力量比較薄弱,同時文檔模式的存儲方法對于開發(fā)人員的要求較高等問題,這些問題將在后續(xù)平臺的完善中不斷改進,從而進一步滿足用戶需求。
[1]徐升,呂健,劉文強,等.實時數(shù)據(jù)技術(shù)在某選礦廠MES系統(tǒng)中的應(yīng)用[A].現(xiàn)代礦業(yè)雜志社.中國礦業(yè)科技文匯--2015[C],安徽:現(xiàn)代礦業(yè)雜志社,2015.588-590.
[2]劉茜,毛善君,武建軍,等.基于傳感網(wǎng)的煤礦瓦斯監(jiān)測數(shù)據(jù)發(fā)布系統(tǒng)關(guān)鍵技術(shù)[J].煤炭科學(xué)技術(shù),2015,43(5):100-105.
[3]霍多羅夫.MongoDB權(quán)威指南(第2版)[D].人民郵電出版社,2014.
[4]張華麗,楊帆,于海平.分布式數(shù)據(jù)監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)[J].計算機與數(shù)字工程.2013,41(8):1298-1301.
高文(1981―),男,山西朔州人,工程師,主要研究方向為煤礦信息化軟件、監(jiān)測監(jiān)控軟件、云計算和大數(shù)據(jù)應(yīng)用等。
A large capacity measurement data integration platform design based on MongoDB
GAO Wen
(Tiandi(Changzhou) Automation Co., Ltd., ChangZhou 213015, China)
In view of the present remote measurement and control data acquisition project in capacity data integration platform availability is not high and expensive problems, puts forward a large capacity measurement and control based on directing a data integration platform design, expounds the present situation and existing problems of remote measurement and control data acquisition project, large capacity measurement and control based on directing a data integration platform design of architecture, function and key technology.
MongoDB; data collection; Measurement and control
研發(fā)項目:天地(常州)自動化股份有限公司研發(fā)項目(14GY001-01)。