周振雄 宮浩鵬
摘 要:本文運(yùn)用基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)MongoDB,設(shè)計(jì)了存儲(chǔ)遙感元數(shù)據(jù)的數(shù)據(jù)庫(kù),并建立合適的索引,方便管理者快速查詢到需要的遙感影像元數(shù)據(jù)。同時(shí),結(jié)合使用MongoDB的GridFS分布式文件系統(tǒng),將遙感影像數(shù)據(jù)分割成塊存儲(chǔ)在MongoFiles中,利用遙感元數(shù)據(jù)中的位置信息,查詢到遙感影像數(shù)據(jù)文件的具體存儲(chǔ)狀態(tài)。研究成果是對(duì)是非關(guān)系數(shù)據(jù)庫(kù)在遙感影像存儲(chǔ)方面的一個(gè)嘗試,對(duì)遙感數(shù)據(jù)存儲(chǔ)管理有一定的參考價(jià)值。
關(guān)鍵詞:MongoDB;遙感影像
1 引言
近年來(lái),隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,帶動(dòng)了各行各業(yè)向信息化進(jìn)步的步伐。其中,遙感相關(guān)產(chǎn)業(yè)在這輪新的信息技術(shù)革命中也發(fā)生巨大的改變,尤其體現(xiàn)在遙感平臺(tái)的多方面應(yīng)用上以及傳感器的種類和數(shù)量爆炸式的增長(zhǎng)。這使得傳統(tǒng)的遙感影像越來(lái)越趨于高分辨率以及多光譜上發(fā)展,且由于搭載平臺(tái)的多樣化和普及化,遙感圖片的數(shù)量和質(zhì)量正在飛速的增長(zhǎng)。一方面,高質(zhì)量、多樣化的遙感圖像給用戶帶來(lái)了更加廣泛的運(yùn)用和深入的研究,便于遙感方向及各行各業(yè)相關(guān)從業(yè)人員使用;另一方面,為了最求高質(zhì)量的遙感影像能夠高速、清晰的加載顯示,目前大多都采用金字塔影像技術(shù)。但是與此同時(shí),也帶來(lái)了許多的挑戰(zhàn)與問(wèn)題。首先是隨著海量遙感影像數(shù)據(jù)井噴式涌現(xiàn),如何去存儲(chǔ)這些影像,才能使得整個(gè)存儲(chǔ)系統(tǒng)簡(jiǎn)單而高效,方面管理人員進(jìn)行即時(shí)的管理與監(jiān)控,從而進(jìn)行統(tǒng)一組織下的存儲(chǔ)與共享;其次是伴隨著用戶對(duì)遙感影像數(shù)據(jù)的精確度越來(lái)越高,怎么才能在雜亂無(wú)章的海量遙感數(shù)據(jù)中尋找出用戶所需求的影像,并且保證搜索的精度與控制搜索過(guò)程的時(shí)間;最后,金字塔遙感影像雖能給用戶提供高分辨的遙感影像顯示,卻使得原本數(shù)據(jù)量就很大的遙感數(shù)據(jù)更加增大,這將給存儲(chǔ)帶來(lái)巨大的壓力。
2 文檔數(shù)據(jù)庫(kù)MongoDB
MongoDB是當(dāng)下最流行的一種NoSQL文檔數(shù)據(jù)庫(kù),也是形式上最接近傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的一種NoSQL數(shù)據(jù)庫(kù)。MongoDB的系統(tǒng)架構(gòu)分為自動(dòng)分片和復(fù)制集,其數(shù)據(jù)模式是文檔性數(shù)據(jù),在一致性方面可通過(guò)次級(jí)讀操作實(shí)現(xiàn)最終一致性讀取,不能支持事務(wù),可擴(kuò)展性方面較為突出可以進(jìn)行分片和增加讀取從節(jié)點(diǎn),并且可支持二進(jìn)制文件以及GridFS大文件進(jìn)行存儲(chǔ)。
對(duì)比存在的四種不同類型的數(shù)據(jù)庫(kù),MongoDB數(shù)據(jù)庫(kù)在數(shù)據(jù)查詢方面方法多樣化,數(shù)據(jù)庫(kù)接口應(yīng)用層次更為豐富簡(jiǎn)單,支持自動(dòng)分片策略和復(fù)制集備份且備份恢復(fù)容易。其中,MongoDB中的BSON格式文檔,可以支持二進(jìn)制對(duì)象存儲(chǔ),與此同時(shí)MongoDB支持GridFS對(duì)大文件進(jìn)行存儲(chǔ)。這兩個(gè)特點(diǎn)滿足海量的遙感影像數(shù)據(jù)文件的存儲(chǔ)需求,所以在進(jìn)行遙感圖像的數(shù)據(jù)存儲(chǔ)設(shè)計(jì)時(shí),選擇Mongo DB數(shù)據(jù)庫(kù)最符合設(shè)計(jì)預(yù)期。綜合來(lái)說(shuō),MongoDB是一個(gè)開源的、分布式的、面向文檔的非關(guān)系型數(shù)據(jù)庫(kù)。
3 檢索技術(shù)流程
確定準(zhǔn)備數(shù)據(jù)的類型以及用于數(shù)據(jù)庫(kù)建立的遙感影像數(shù)據(jù)的采集;然后,確定開發(fā)的環(huán)境,確定本次使用的非關(guān)系型數(shù)據(jù)庫(kù)MongoDB的版本號(hào);搭建MongoDB數(shù)據(jù)庫(kù)確定遙感影像的元數(shù)據(jù),這個(gè)數(shù)據(jù)庫(kù)可以存儲(chǔ)不同類型的、不同格式的元數(shù)據(jù),對(duì)其進(jìn)行分類,建立索引,存儲(chǔ)進(jìn)MongoDB數(shù)據(jù)庫(kù)中;采用MongoDB自帶GridFS功能進(jìn)行遙感影像文件的分塊儲(chǔ)存,確定分塊的大小對(duì)遙感影像文件存儲(chǔ)速度與檢索速度的影像,確定好存儲(chǔ)塊大小;研究搜索影像的算法,將遙感影像的元數(shù)據(jù)與遙感影像文件數(shù)據(jù)關(guān)聯(lián),通過(guò)元數(shù)據(jù)的搜索進(jìn)而搜索到所查詢的遙感影像文件。
4 基于MongoDB的遙感數(shù)據(jù)存儲(chǔ)關(guān)鍵技術(shù)
采用MongoDB軟件,搭建出一個(gè)用于存儲(chǔ)遙感影像的非關(guān)系型數(shù)據(jù)庫(kù),可以用來(lái)存儲(chǔ)不同類型的遙感影像數(shù)據(jù),建立存儲(chǔ)遙感影像數(shù)據(jù)相應(yīng)的元數(shù)據(jù)的數(shù)據(jù)庫(kù)。同時(shí)在該數(shù)據(jù)庫(kù)下,創(chuàng)建索引,探尋查詢方法,能夠快速有效的查詢到自己所需的遙感影像。
現(xiàn)階段存儲(chǔ)的遙感影像在文件系統(tǒng)中大多是分開存儲(chǔ),分開為單純的圖像數(shù)據(jù)以及圖像的元數(shù)據(jù)信息。其中,圖像數(shù)據(jù)是指遙感影像的具體文件數(shù)據(jù),元數(shù)據(jù)則是包含這些遙感影像的數(shù)據(jù)的信息。元數(shù)據(jù)包括圖像的類型,拍攝的日期,拍攝的儀器,具體拍攝的位置經(jīng)緯度等信息。
以常見的美國(guó)衛(wèi)星LANDSAT系列的圖片為例,在遙感影像下載的壓縮文件夾中,除了有不同波段的以TIFF格式存儲(chǔ)的遙感影像圖片,還有一個(gè)遙感影像圖片信息介紹的文檔即遙感影像的元數(shù)據(jù)。
MongoDB中的數(shù)據(jù)庫(kù)都以BSON格式保存二進(jìn)制文件對(duì)象,但是BSON格式文件大小限制在16M以內(nèi),因此在存儲(chǔ)大文件時(shí)需要分割存儲(chǔ)。在分割存儲(chǔ)文件數(shù)據(jù)時(shí),不同大小的文件、分割成不同大小的塊文件在存儲(chǔ)時(shí)的速度與效率也不盡相同。設(shè)計(jì)基于Mongo DB集群和分布式文件系統(tǒng)相結(jié)合的遙感瓦片數(shù)據(jù)存儲(chǔ)管理策略,其中Mongo DB集群用來(lái)存儲(chǔ)瓦片數(shù)據(jù)的元數(shù)據(jù),分布式文件系統(tǒng)用來(lái)存儲(chǔ)瓦片數(shù)據(jù)的文件數(shù)據(jù)。通過(guò)分析遙感瓦片數(shù)據(jù)的屬性信息,在分布式文件系統(tǒng)中,通過(guò)構(gòu)建虛擬目錄以及絕對(duì)路徑構(gòu)造實(shí)現(xiàn)了瓦片文件數(shù)據(jù)的直接尋址。
要建立查詢索引,首先要對(duì)遙感影像元數(shù)據(jù)庫(kù)進(jìn)行搭建,之后對(duì)關(guān)鍵元數(shù)據(jù)進(jìn)行索引數(shù)據(jù)的確定。要建立存儲(chǔ)遙感影像元數(shù)據(jù)的數(shù)據(jù)庫(kù),就要針對(duì)不同數(shù)據(jù)源的遙感影像提取不同的元數(shù)據(jù)。其中,每一個(gè)遙感影像必須提取的元數(shù)據(jù)包括文件名,文件路徑,傳感器型號(hào)等。
5 小結(jié)
本文通過(guò)研究分析了國(guó)內(nèi)外現(xiàn)在已有的遙感影像存儲(chǔ)方式,針對(duì)現(xiàn)階段存儲(chǔ)系統(tǒng)的優(yōu)缺點(diǎn),尤其是我們目前在面臨大數(shù)據(jù)時(shí)的現(xiàn)狀,研發(fā)設(shè)計(jì)了關(guān)于基于非關(guān)系型數(shù)據(jù)庫(kù)MongoDB的遙感影像元數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。非關(guān)系型數(shù)據(jù)庫(kù)MongoDB具有水平擴(kuò)展性極強(qiáng)的特點(diǎn),并且可以存儲(chǔ)任意格式的遙感影像數(shù)據(jù)具有極強(qiáng)的靈活性,便于操作與管理。
在設(shè)計(jì)存儲(chǔ)遙感影像文件的數(shù)據(jù)庫(kù)時(shí),利用了MongoDB自身的GridFS分布式文件系統(tǒng)將大數(shù)據(jù)進(jìn)行分割存儲(chǔ),進(jìn)行分片大小的探索,優(yōu)化了存儲(chǔ)的效率。同時(shí),通過(guò)元數(shù)據(jù)檢索與遙感影像文件的檢索進(jìn)行關(guān)聯(lián)管理,提高了遙感影像數(shù)據(jù)文件的檢索效率。