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