牛千+唐亞明+王佳運(yùn)
摘要:根據(jù)地質(zhì)災(zāi)害數(shù)據(jù)數(shù)據(jù)量大,更新速度快,種類多樣等特點(diǎn),提出MongoDB分布式存儲策略。探討了基于MongoDB的分布式地質(zhì)災(zāi)害數(shù)據(jù)存儲策略。為解決地質(zhì)災(zāi)害相關(guān)數(shù)據(jù)存取的性能、管理等問題提供了一個思路。
關(guān)鍵詞:地質(zhì)災(zāi)害;MongoDB;shards;mongos;GridFS
隨著全球定位系統(tǒng)設(shè)備、Smart Phone等新技術(shù)的應(yīng)用,以及各種傳感器、高清晰度圖像和視頻的大量應(yīng)用,數(shù)據(jù)正呈現(xiàn)指數(shù)級增長,為數(shù)據(jù)使用者開辟新的數(shù)據(jù)存儲、分析方法和模式顯得尤為重要。地質(zhì)災(zāi)害數(shù)據(jù)也不例外。MongoDB以其模式自由、面向集合存儲、高效的數(shù)據(jù)存儲、支持復(fù)制和故障恢復(fù)和自動分片等技術(shù)特點(diǎn),為地質(zhì)災(zāi)害數(shù)據(jù)的存儲、分析提供了—個新的思路。
1 MongoDB特性與結(jié)構(gòu)
1.1MongoDB特性
(1)模式自由。MongoDB可以對數(shù)據(jù)進(jìn)行動態(tài)查詢并提供完全的數(shù)據(jù)索引,從而便于對內(nèi)嵌對象及數(shù)組進(jìn)行查詢。
(2)面向集合的數(shù)據(jù)存儲。便于對象類型數(shù)據(jù)及內(nèi)嵌對象與數(shù)組的存儲。
(3)數(shù)據(jù)存儲效率高。MongoDB支持二進(jìn)制數(shù)據(jù)及大型非結(jié)構(gòu)化對象(例如照片和視頻)的存儲。
(4)MongoDB使用主一從、主一主模式的數(shù)據(jù)復(fù)制機(jī)制,便于故障的恢復(fù)與熱備。
(5)MongoDB通過自動分片技術(shù)實(shí)現(xiàn)動態(tài)數(shù)據(jù)添加,使數(shù)據(jù)庫具有很好的伸縮性,為水平數(shù)據(jù)庫集群提供了很大的便利“。
1.2 MongoDB結(jié)構(gòu)
MongoDB是由數(shù)據(jù)庫(database)、集合(collection)、文檔對象(document)三個層次組成這有別于傳統(tǒng)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫(database)、表(table)、記錄(record)三層結(jié)構(gòu)。MongoDB從模式自由出發(fā),其集合對應(yīng)于關(guān)系型數(shù)據(jù)庫的表,但集合中沒有行、列和關(guān)系的概念。MongoDB以鍵值對(key-value)集合的形式對數(shù)據(jù)進(jìn)行存儲,鍵是字符串,值可以取數(shù)組和文檔對象類型。
2 MongoDB分布式存儲策略
2.1地質(zhì)災(zāi)害數(shù)據(jù)組織
(1)數(shù)據(jù)內(nèi)容
本系統(tǒng)地質(zhì)災(zāi)害數(shù)據(jù)主要包括遙感影像數(shù)據(jù)、空間矢量數(shù)據(jù)等以及其他非結(jié)構(gòu)化數(shù)據(jù)。
(2)數(shù)據(jù)組織與管理
地質(zhì)災(zāi)害數(shù)據(jù)從形態(tài)種類上可分為文件型數(shù)據(jù)、空間數(shù)據(jù)、柵格數(shù)據(jù)、屙陛數(shù)據(jù)等。
①文件型數(shù)據(jù)的組織管理
系統(tǒng)采用文件庫的方式對這些文檔進(jìn)行管理,并將數(shù)據(jù)存放到GridFS中。
②矢量數(shù)據(jù)的組織管理
系統(tǒng)采用專題分層和空間分幅的方式來組織管理矢量數(shù)據(jù)。
③柵格數(shù)據(jù)的組織管理
同一分辨率的柵格數(shù)據(jù)被組織在一個層內(nèi),對不同分辨率的柵格數(shù)據(jù):分辨率越小,越靠近頂層。柵格數(shù)據(jù)進(jìn)行切圖緩存預(yù)處理。
④屬性數(shù)據(jù)的組織管理
地質(zhì)災(zāi)害數(shù)據(jù)所涉及的屬性數(shù)據(jù)包括原始搜集資料、遙感解譯數(shù)據(jù)、無人機(jī)航測數(shù)據(jù)、工程地質(zhì)測繪數(shù)據(jù)、地球物理勘探數(shù)據(jù)、工程地質(zhì)勘探數(shù)據(jù)、原位測試與室內(nèi)試驗數(shù)據(jù)、綜合研究與分析成果等多專題的地質(zhì)信息數(shù)據(jù),以非結(jié)構(gòu)化數(shù)據(jù)模式進(jìn)行組織管理。
⑤數(shù)據(jù)分布、傳輸與備份
A、數(shù)據(jù)分布方式:數(shù)據(jù)采用集中式與分布式兼容的管理模式。
B、數(shù)據(jù)傳輸與通訊:C/S系統(tǒng)的客戶端與數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)傳輸在局域網(wǎng)內(nèi)通過TIP/IP傳輸;Web服務(wù)器與數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)傳輸同上;瀏覽器與Web服務(wù)器的數(shù)據(jù)傳輸在廣域網(wǎng)上以Http協(xié)議進(jìn)行傳輸。
2.2 MongoDB分布式部署
MongoDB服務(wù)器部署可以根據(jù)需求選擇不同的方式。Config server、mongos、mongod可以作為單獨(dú)的服務(wù)器進(jìn)行部署。MongoDB分布式部署架構(gòu)如圖l所示。
mongos部署在Server2、4、6(mongod)上。mongos與mongod之間的通信在本地完成,大大降低了通信成本。mongos部署在三臺服務(wù)器上,避免了mongos出現(xiàn)單點(diǎn)故障,并且方便了管理員對系統(tǒng)進(jìn)行管理。Config serveI(配置服務(wù)器)部署在serverl、3上,避免了Config server(配置服務(wù)器)出現(xiàn)單點(diǎn)故障。將MongoDB作為一個相對獨(dú)立的系統(tǒng),與應(yīng)用的耦合度盡量降到最低,部署“客戶端服務(wù)器”在單獨(dú)的服務(wù)器上,更換數(shù)據(jù)庫時能有效減少工作量。
結(jié)束語:存儲在MongoDB中的地質(zhì)災(zāi)害相關(guān)數(shù)據(jù)文件,不用考慮文件名是否符合操作系統(tǒng)規(guī)范以及一個文件夾下的文件是否過多。另外,MongoDB還具有方便保存和讀取文件屬性的特性,例如判斷文件類型、大小、像素等等;方便實(shí)現(xiàn)大量的文件上傳及管理。通過以上方式,為解決海量地質(zhì)災(zāi)害相關(guān)數(shù)據(jù)的存儲、管理等問題提供了—個思路。endprint