張家勇,劉黔云,鄧衛(wèi)衛(wèi),龔 偉,張 楠,李 程,李 瀟,胡 嶼
(貴州省地質(zhì)環(huán)境監(jiān)測院,貴州 貴陽 550001)
科技創(chuàng)新是提升地質(zhì)災(zāi)害防治能力的永恒話題,地質(zhì)災(zāi)害自動化監(jiān)測是減災(zāi)防災(zāi)的主要手段之一。
貴州省地質(zhì)環(huán)境監(jiān)測院在組織實施貴州省提升地質(zhì)災(zāi)害監(jiān)測預(yù)警科技能力行動方案重大專項的過程中,通過運(yùn)用傳感器、物聯(lián)網(wǎng)、無線通信等高科技手段,全面提升地質(zhì)災(zāi)害監(jiān)測預(yù)警科技能力,打造“人防+技防”地質(zhì)災(zāi)害專業(yè)防治體系。貴州省地質(zhì)環(huán)境監(jiān)測院在地質(zhì)災(zāi)害監(jiān)測預(yù)警和運(yùn)行維護(hù)調(diào)度工作經(jīng)驗的基礎(chǔ)上,對地質(zhì)災(zāi)害監(jiān)測預(yù)警物聯(lián)網(wǎng)運(yùn)維保障工作進(jìn)行了進(jìn)一步的發(fā)展和創(chuàng)新,建立了貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度平臺。
平臺經(jīng)歷了自動化監(jiān)測示范點建設(shè)到大規(guī)模應(yīng)用,設(shè)備數(shù)量和監(jiān)測實時數(shù)據(jù)呈現(xiàn)幾何級增長。平臺面臨著高并發(fā)、海量存儲、高效訪問的技術(shù)瓶頸。本文將重點介紹時序數(shù)據(jù)庫在運(yùn)行維護(hù)調(diào)度平臺中的應(yīng)用,旨在解決貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度平臺中傳統(tǒng)的數(shù)據(jù)庫所遇到的問題并提出有效的解決方案。
貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度平臺基于B/S模式,運(yùn)行于Internet互聯(lián)網(wǎng)絡(luò)環(huán)境?;赪EB的數(shù)據(jù)檢索、數(shù)據(jù)可視化和空間可視化、數(shù)據(jù)分析、流程管理等功能集于一身,解決了隱患點信息以及地質(zhì)災(zāi)害監(jiān)測信息的檢索、可視化、統(tǒng)計查詢、實時監(jiān)控、預(yù)警分析、設(shè)備運(yùn)行維護(hù)調(diào)度等問題,從而達(dá)到地質(zhì)災(zāi)害設(shè)備實時監(jiān)控和保障野外監(jiān)測設(shè)備穩(wěn)定運(yùn)行的目的,為防災(zāi)減災(zāi)做出指導(dǎo)和支持[1](圖1)。
圖1 貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度平臺邏輯架構(gòu)圖Fig.1 Guizhou Povince gological disaster monitoring euipment operation maintenance sheduling platform logical structure model
1.1.1數(shù)據(jù)服務(wù)層
主要用來管理、存儲平臺業(yè)務(wù)數(shù)據(jù)以及自動化監(jiān)測數(shù)據(jù),為業(yè)務(wù)平臺提供數(shù)據(jù)支撐。其中自動化監(jiān)測數(shù)據(jù)提供兩種接入方式:第一種方式是按照平臺的數(shù)據(jù)協(xié)議標(biāo)準(zhǔn),根據(jù)平臺提供的服務(wù)接口,向平臺推送數(shù)據(jù),適用于全新接入的設(shè)備。第二種方式是平臺數(shù)據(jù)同步服務(wù),通過數(shù)據(jù)同步定期將設(shè)備的數(shù)據(jù)同步到平臺,適用于已經(jīng)建設(shè)的監(jiān)測設(shè)備進(jìn)行數(shù)據(jù)集成[2]。
1.1.2監(jiān)測預(yù)警平臺層
主要用來提供基礎(chǔ)軟件服務(wù),監(jiān)測預(yù)警平臺層,分別包含物聯(lián)網(wǎng)云平臺(提供設(shè)備注冊、設(shè)備接入、指令下發(fā)、監(jiān)測數(shù)據(jù)存儲等基礎(chǔ)的物聯(lián)網(wǎng)服務(wù))、地圖服務(wù)平臺、消息中間件(提供消息隊列服務(wù)等)、短信平臺(提供短信發(fā)送服務(wù)等)(提供基礎(chǔ)地圖服務(wù))等公共組件及Web服務(wù),是監(jiān)測預(yù)警平臺的核心,是業(yè)務(wù)應(yīng)用的基礎(chǔ)。
1.1.3業(yè)務(wù)應(yīng)用層
面向平臺用戶,為用戶提供信息管理,查詢統(tǒng)計、分析,監(jiān)測預(yù)警、設(shè)備運(yùn)維管理等功能,將貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度業(yè)務(wù)成果以數(shù)據(jù)、圖形等多種形式體現(xiàn),為專業(yè)人員進(jìn)行科學(xué)研究提供平臺支撐,為管理人員決策、研判提供輔助支持。
2018年7月運(yùn)維調(diào)度平臺上線運(yùn)行,設(shè)備正常狀態(tài)下每一小時自動上報一次,應(yīng)急狀態(tài)下每5秒自動上報一次數(shù)據(jù)。設(shè)備通過北斗每天上傳一次數(shù)據(jù)。當(dāng)時約有100個監(jiān)測點、800余臺監(jiān)測設(shè)備。按照當(dāng)前的設(shè)備數(shù)據(jù)和采集頻率,從數(shù)據(jù)的并發(fā)讀寫、儲存效率和訪問性能來看,通過使用傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)庫是完全可以滿足的。隨著自動化監(jiān)測項目的開展,到目前約2 500個監(jiān)測點,13 000余臺設(shè)備,平臺每天要接收、下發(fā)和處理的數(shù)據(jù)量從之前的幾萬條到當(dāng)前的幾百萬條,每天還會產(chǎn)生大量的消息和狀態(tài)等過程數(shù)據(jù),進(jìn)入汛期時,每天的數(shù)據(jù)量可達(dá)上千萬條。同時平臺還要為統(tǒng)計、分析、運(yùn)維管理等應(yīng)用提供必要的數(shù)據(jù)支持。后期待建設(shè)的監(jiān)測點還有1 300余處,在這種海量、高并發(fā)數(shù)據(jù)的現(xiàn)狀下,傳統(tǒng)的結(jié)構(gòu)化實時監(jiān)測數(shù)據(jù)庫瓶頸越來越突出。
時序數(shù)據(jù)庫是基于大數(shù)據(jù)技術(shù),用于管理時間序列數(shù)據(jù)的專業(yè)化數(shù)據(jù)庫。區(qū)別于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,時序數(shù)據(jù)庫針對時間序列數(shù)據(jù)的存儲、查詢和展現(xiàn)進(jìn)行了專門的優(yōu)化,從而獲得極高的數(shù)據(jù)壓縮能力、極優(yōu)的查詢性能,特別適用于存儲監(jiān)測數(shù)據(jù)等物聯(lián)網(wǎng)應(yīng)用場景的數(shù)據(jù)[3]。
因此,我們提出使用時序數(shù)據(jù)庫來替代傳統(tǒng)結(jié)構(gòu)化數(shù)庫存儲實時監(jiān)測數(shù)據(jù)的解決方案。
目前貴州省地質(zhì)環(huán)境監(jiān)測院用自動化監(jiān)測設(shè)備通過兩種方式上報數(shù)據(jù):一種是通過第四代移動通訊方式(4G),一種是通過北斗通訊方式上報數(shù)據(jù)。這兩種終端上傳的實時數(shù)據(jù)和短報文都屬于典型的時序數(shù)據(jù),在一段時間內(nèi)連續(xù)間隔上報采集數(shù)據(jù)。時序數(shù)據(jù)庫很好的解決了物聯(lián)網(wǎng)下的大數(shù)據(jù)存儲和高并發(fā)等問題。本項目將選擇InfoEarth ThingDB時序數(shù)據(jù)庫來進(jìn)行應(yīng)用[4]。
時序數(shù)據(jù)庫是按時間序列來存儲實時變化的數(shù)據(jù),庫中按照“ 時標(biāo)一值”的數(shù)據(jù)結(jié)構(gòu)來存儲。時序數(shù)據(jù)庫的優(yōu)勢是通過有效壓縮來存儲高頻變化的海量數(shù)據(jù),同時還能實現(xiàn)對海量數(shù)據(jù)的快速訪問。但時序數(shù)據(jù)庫對數(shù)據(jù)模型的描述能力相對較弱,例如針對隱患點、監(jiān)測點、設(shè)備信息等模型和網(wǎng)絡(luò)結(jié)構(gòu),時序數(shù)據(jù)庫就無法描述其復(fù)雜的層次結(jié)構(gòu)關(guān)系。這時就需要考慮采用關(guān)系數(shù)據(jù)庫,因此,運(yùn)維調(diào)度平臺采用時序數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫相結(jié)合,可充分發(fā)揮兩種類型數(shù)據(jù)庫各自的技術(shù)優(yōu)勢。時序數(shù)據(jù)通過服務(wù)接口的形式與運(yùn)維調(diào)度平臺進(jìn)行集成[5](圖2)。
圖2 Infoearth ThingDB技術(shù)架構(gòu)圖Fig.2 Infoearth ThingDB technical structure model
InfoEarth ThingDB是面向物聯(lián)網(wǎng)(ToT)海量監(jiān)測數(shù)據(jù)存儲、管理和調(diào)度設(shè)計的一個時間序列數(shù)據(jù)庫,系統(tǒng)應(yīng)用最新Go語言和NodeJS開發(fā),無需任何外部依賴即可獨立部署,支持Windows、Linux等操作系統(tǒng)。
InfoEarth ThingDB同時具有以下幾個特點:
(1)極簡架構(gòu):物聯(lián)網(wǎng)系統(tǒng)往往需要嚴(yán)苛的運(yùn)行環(huán)境,InfoEarth ThingDB只需要安裝一個二級制文件,即可運(yùn)行于Windows、Linux等系統(tǒng),完全沒有任何的外部依賴[6]。
(2)系統(tǒng)底層采用了基于NoSQL架構(gòu)的存儲引擎,提供極強(qiáng)的寫能力以及高壓縮率。
(3)數(shù)據(jù)接口:系統(tǒng)提供REST API讀寫、查詢接口,以及SQL-Like的查詢語言,使用方便。
(4)TimeSeries Index:對Tags會進(jìn)行索引,提供高效的檢索。
(1) 設(shè)備模型
{
"id":設(shè)備編號,
"product_id":所屬產(chǎn)品,
"device_sn":設(shè)備SN
"parent_did":主設(shè)備編號
“monitor_types”:監(jiān)測類型
[{
"id":監(jiān)測序號,(表示通道號、傳感器編號)
"monitor_type_code":監(jiān)測類型編碼
"monitor_type_name":監(jiān)測類型名稱
"type_name":監(jiān)測方法名稱
"type_code":監(jiān)測方法名稱
}]
}
(2)監(jiān)測數(shù)據(jù)模型
監(jiān)測數(shù)據(jù)的模型見圖1。
表1 監(jiān)測實時數(shù)據(jù)模型Table 1 Monitor real-time data model
(3)設(shè)備狀態(tài)模型
設(shè)備狀態(tài)模型見圖2。
表2 設(shè)備狀態(tài)模型Table 2 Device status model
通過InfoEarth ThingDB提供的數(shù)據(jù)服務(wù)接口(OPenAPI)實現(xiàn)與運(yùn)維調(diào)度平臺的集成(表3)。
表3 接口清單Table 3 Interface listing
目前在原有業(yè)務(wù)體系基礎(chǔ)之上,對系統(tǒng)技術(shù)方案整體升級改造之后,很好的解決之前系統(tǒng)卡頓、經(jīng)常沒有反應(yīng)的問題,首頁面加載時間控制在2 s以內(nèi),系統(tǒng)操作響應(yīng)時間平均0.5 s。
為進(jìn)一步精確的分析時序數(shù)據(jù)庫其與關(guān)系型數(shù)據(jù)庫之間的性能優(yōu)勢,分別從數(shù)據(jù)庫讀寫性能、并發(fā)性、可擴(kuò)展性幾方面比較[7]。
(1)批量讀寫測試比較
分別在同一類型三個主機(jī)上安裝Oracle 11、MySQL 5.7以及InfoEarth ThingDB 1.0,對其在不同數(shù)據(jù)量下數(shù)據(jù)讀寫完成響應(yīng)時間測試,每條數(shù)據(jù)2個字段。多次測試獲得平均結(jié)果見表4、圖3、圖4。
表4 不同數(shù)據(jù)庫讀寫完成平均時間Table 4 Average read-write time for different databases 單位:s
圖3 數(shù)據(jù)庫寫入對比圖Fig.3 Database write contrast graph
圖4 數(shù)據(jù)庫讀取對比圖Fig.4 Database read contrast graph
從數(shù)據(jù)庫寫入完成相應(yīng)時間來看,在數(shù)據(jù)量較小的情況下,MySQL與InfoEarth ThingDB要比Oracle要有優(yōu)勢;隨數(shù)據(jù)量增大,Oracle 與MySQL性能接近,而InfoEarth ThingDB比二者性能高出接近一倍。數(shù)據(jù)庫讀取方面,InfoEarth ThingDB隨數(shù)據(jù)量的增大響應(yīng)時間依舊很短,性能遠(yuǎn)勝Oracle和MySQL??傮w來說,InfoEarth ThingDB在簡單、大量數(shù)據(jù)存儲方面比Oracle與MySQL具有更大的性能優(yōu)勢[8]。
(2)數(shù)據(jù)庫并發(fā)性測試
對以上三個數(shù)據(jù)并發(fā)性能測試,測試結(jié)果見表5。
表5 數(shù)據(jù)庫并發(fā)測試數(shù)據(jù)表Table 5 Database concurrency tests tables
圖5 數(shù)據(jù)庫并發(fā)對比圖Fig.5 Database concurrency comparison graph
單機(jī)數(shù)據(jù)庫并發(fā)測試結(jié)果可以看出,在數(shù)據(jù)并發(fā)方面,InfoEarth ThingDB數(shù)據(jù)庫性能要高于MySQL和Oracle,其并發(fā)性跟計算機(jī)的性能有直接關(guān)系,所以數(shù)據(jù)庫之間的差距不太大。
(3)可擴(kuò)展性
InfoEarth ThingDB數(shù)據(jù)存儲非結(jié)構(gòu)化,基于鍵值對,其數(shù)據(jù)結(jié)構(gòu)不固定,每個元組可以更具自己的需求增加自己的鍵值對,從而實現(xiàn)模式自由、支持簡單復(fù)制、橫向擴(kuò)展、簡單API等。Oracle和MySQL屬于關(guān)系型數(shù)據(jù)庫,具有完整性約束,支持多表聯(lián)合查詢、視圖、存儲過程、觸發(fā)器、索引等復(fù)雜查詢,為了保證數(shù)據(jù)庫的ACID,需要盡可能的按照要求的范式設(shè)計,從而難于橫向擴(kuò)展。
(4)結(jié)論
MySQL和Oracle在復(fù)雜業(yè)務(wù)處理方面具有得天獨厚的優(yōu)勢,但是在數(shù)據(jù)監(jiān)控業(yè)務(wù)的秒級數(shù)據(jù)采集、數(shù)據(jù)量龐大、快速響應(yīng)等方面,InfoEarth ThingDB更具有優(yōu)勢,解決系統(tǒng)瞬時的查詢和寫入壓力,用戶體驗更好。
基于時序數(shù)據(jù)庫的運(yùn)維調(diào)度平臺在實際應(yīng)用中,得到有效的驗證,運(yùn)維調(diào)度平臺實現(xiàn)貴州省地質(zhì)災(zāi)害隱患點監(jiān)測設(shè)備及監(jiān)測數(shù)據(jù)的管理,監(jiān)測設(shè)備預(yù)警管理以及設(shè)備運(yùn)行維護(hù)管理,平臺主要功能模塊見圖6。
圖6 貴州省地質(zhì)災(zāi)害監(jiān)測設(shè)備運(yùn)行維護(hù)調(diào)度平臺功能結(jié)構(gòu)圖Fig.6 Guizhou Povince gological disaster monitoring euipment operation maintenance sheduling platform functional block diagram
(1)首頁(一張圖)
通過空間的信息展示方式,展示隱患點、監(jiān)測點、監(jiān)測設(shè)備的空間分布信息,提供基礎(chǔ)的空間操作,包括地圖切換、距離量算,空間分析等功能;同時在頁面中也支持圖表展示的方式,實時動態(tài)展示隱患點監(jiān)測設(shè)備數(shù)據(jù)趨勢、監(jiān)測設(shè)備狀態(tài)、設(shè)備預(yù)警信息等。
(2)隱患點排查
動態(tài)集成貴州省高位隱蔽性地質(zhì)災(zāi)害隱患專業(yè)排查地質(zhì)災(zāi)害數(shù)據(jù)采集系統(tǒng)。
(3)治理項目瀏覽
治理項目瀏覽功能用來對治理項目的詳情進(jìn)行查看,主要是項目狀態(tài)、隱患類型、隱患等級、隱患規(guī)模等。
(4)監(jiān)測管理
監(jiān)測管理主要用來建立監(jiān)測設(shè)備和地質(zhì)災(zāi)害隱患點之間的關(guān)系,實現(xiàn)監(jiān)測設(shè)備和地質(zhì)災(zāi)害業(yè)務(wù)的對接,具體功能包括監(jiān)測項目管理、監(jiān)測點管理、鉆孔信息管理、監(jiān)測區(qū)域管理、設(shè)備維護(hù)管理、設(shè)備異常設(shè)置和監(jiān)測設(shè)備總覽。
(5)監(jiān)測設(shè)備
監(jiān)測設(shè)備主要用來管理設(shè)備的接入和設(shè)備的指令下發(fā)功能,包括監(jiān)測設(shè)備總覽、廠商管理、RTU信息管理、監(jiān)測設(shè)備管理、監(jiān)測設(shè)備列表、無線報警設(shè)備管理、監(jiān)測數(shù)據(jù)瀏覽、國際編號生成、視頻設(shè)備管理等功能。
(6)查詢?yōu)g覽
查詢?yōu)g覽包括監(jiān)測設(shè)備瀏覽和監(jiān)測設(shè)備查詢,監(jiān)測設(shè)備瀏覽以監(jiān)測設(shè)備樹與地圖相結(jié)合的方式展示系統(tǒng)中所有的災(zāi)害點、監(jiān)測點、監(jiān)測設(shè)備分布情況,監(jiān)測設(shè)備查詢模塊提供行政區(qū)劃、災(zāi)害點名稱、監(jiān)測點名稱等條件組合查詢監(jiān)測設(shè)備信息。
(7)統(tǒng)計分析
統(tǒng)計分析包括監(jiān)測設(shè)備統(tǒng)計、設(shè)備狀態(tài)統(tǒng)計、設(shè)備維護(hù)統(tǒng)計和監(jiān)測周報等功能。
(8)預(yù)警分析
預(yù)警分析包括預(yù)警點、預(yù)警策略管理、綜合曲線分析、降雨等值線、實時位移監(jiān)測、預(yù)警等級等功能。
(9)值班管理
值班管理主要服務(wù)于汛期值班服務(wù),通過大屏動態(tài)展示,實時監(jiān)控,聲音提示,方便值班人員實時了解監(jiān)測設(shè)備狀態(tài)變化狀況,從而為監(jiān)測預(yù)警工作提供輔助支撐。
(10)設(shè)備運(yùn)維管理
設(shè)備運(yùn)維管理主要是實現(xiàn)野外監(jiān)測設(shè)備及設(shè)備運(yùn)維過程的實時監(jiān)控和過程管理、建立設(shè)備異常信息及時發(fā)現(xiàn)機(jī)制、野外設(shè)備運(yùn)維人員及運(yùn)維狀態(tài)與設(shè)備運(yùn)維管理人員雙向信息通信、設(shè)備運(yùn)維過程信息跟蹤,保障野外監(jiān)測設(shè)備穩(wěn)定運(yùn)行(圖7)。
圖7 監(jiān)控一張圖界面Fig.7 Monitor diagram interface
目前平臺隱患點信息、監(jiān)測設(shè)備數(shù)據(jù)和狀態(tài)的實時展示、預(yù)警、設(shè)備運(yùn)維等查詢性能得到明顯的提升,極大地提高了數(shù)據(jù)存儲、查詢、分析能力,為地質(zhì)災(zāi)害監(jiān)測預(yù)警和應(yīng)急救援工作的順利進(jìn)行提供了更加穩(wěn)固的保障。
本文的分析表明,在貴州省地質(zhì)災(zāi)害運(yùn)行維護(hù)調(diào)度平臺中使用時序數(shù)據(jù)庫,可以很好的解決海量數(shù)據(jù)存儲和高頻次的數(shù)據(jù)訪問問題。同時為該平臺未來的功能擴(kuò)展提供必要的功能支持。隨著隱患點監(jiān)控的力度增加,覆蓋面更廣,監(jiān)測設(shè)備不斷增加,運(yùn)維數(shù)據(jù)也會大量增加,時序數(shù)據(jù)庫將會在后期的功能擴(kuò)展中得到更多更好的應(yīng)用。