孫 晶,高井祥,史紹雨,汪匯兵,艾 波
(1. 中國礦業大學環境與測繪學院,江蘇 徐州 221116; 2. 國家測繪地理信息局衛星測繪應用中心,北京 100048; 3. 山東科技大學海島(礁)測繪技術國家測繪地理信息局重點實驗室,山東 青島 266590)
分布式空間數據庫在海量衛星影像管理中的應用
孫 晶1,2,高井祥1,史紹雨2,汪匯兵2,艾 波3
(1. 中國礦業大學環境與測繪學院,江蘇 徐州 221116; 2. 國家測繪地理信息局衛星測繪應用中心,北京 100048; 3. 山東科技大學海島(礁)測繪技術國家測繪地理信息局重點實驗室,山東 青島 266590)
針對現有影像存儲方法在海量衛星影像存儲中性能不足的問題,分析了現有衛星影像數據存儲方法的特點,提出了基于分布式空間數據庫管理影像元數據的改進方法。該方法采用文件系統存儲影像非結構化的實體數據,影像的空間信息及元數據存儲在分布式空間數據庫中,實現了海量衛星影像數據的高性能存儲,并開展了資源三號衛星影像數據管理試驗。試驗表明該方法在海量衛星影像數據查詢性能方面有顯著提高,適用于海量衛星影像數據存儲。
分布式空間數據庫;海量數據;衛星影像;影像管理;MySQL數據庫
近年來,國內外對地觀測技術正朝著多傳感器、多平臺、多角度和高時空分辨率的方向發展。對地觀測技術的發展提高了影像數據的質量,但同時也帶來了數據量驟增的問題[1]。衛星影像數據量呈指數式增長,數據日增量從GB級迅速增長到TB級,數據總量從TB級迅速增至PB級,傳統的影像數據存儲方法已無法滿足海量衛星影像存儲中的性能要求[2]。衛星影像數據量的劇增緩解了社會經濟應用中影像數據不足的問題,但在影像數據存儲管理、分發服務、統計分析等方面,也帶來了巨大挑戰。海量衛星影像數據不僅具有數據海量性的特征,還具有影像數據的空間特性和非結構化特性等,在影像數據存儲時,需綜合考慮其各種特征。
衛星影像數據具有結構復雜、數據量大、時效性強等特點,如何高效存儲海量衛星影像以滿足大數據環境下快速查詢及分發的需求,是衛星影像數據管理中的熱點與難點[3]。目前,國內外許多科研機構和公司提出了多種衛星影像存儲管理方法,主要可分為以下幾類。
1.1 基于文件系統的影像存儲
基于文件系統的衛星影像數據存儲方法是將衛星影像存儲在高性能的存儲設備中,通過文件的方式對影像的空間信息和屬性信息進行組織管理。管理服務器在管理存儲設備的同時還需要負責整個系統的控制處理,以滿足客戶端對影像存儲、查詢、分發的高性能需求,其存儲方法如圖1所示。

圖1 基于文件系統的影像數據存儲方法
國內外基于此方法存儲海量衛星影像數據的主要有:美國NASA開發的三維虛擬地球World Wind系統[4]、NASA EOS數據中心開發的EOSDIS系統[5]、Google公司依托于其云計算技術開發的Google Map和Google Earth系統[6-7],以及國內吉奧公司開發的GeoImageDB系統[8]等。
該方法能夠高效存儲衛星影像數據,在數據存儲容量和讀寫速率方面有著其獨特的優勢。但文件系統在影像數據的備份、恢復等技術上存在著技術難題。而且,隨著影像數據量的增加,管理服務器將會成為系統瓶頸[9]。除此之外,文件系統在數據查詢等應用上不能很好地滿足衛星影像數據管理需求,需要自行開發系統實現。
1.2 基于數據庫的影像存儲
基于數據庫的衛星影像存儲方法是將影像元數據信息以記錄的形式存儲在數據庫的表中,影像實體以BLOB數據類型存儲在表的某一字段中,數據庫服務器作為整個系統的中心處理器,負責處理應用層對數據庫管理、應用、維護等操作,其存儲方法如圖2所示。

圖2 基于數據庫的影像數據存儲方法
使用此方法存儲海量衛星影像數據的有:Microsoft公司推出的TerraServer在線海量影像電子地圖集[10],以及Microsoft依托其分布式存儲系統和云平臺的Bing Map系統[11]等。
該方法充分發揮了數據庫在數據查詢效率、并發操作、數據安全性等方面的性能優勢,但此方法存在著一些不足,如關系型數據庫的結構不適合存儲非結構化的衛星影像。此外,衛星影像數據日增量大,數據總量大,這將導致數據庫的體積變得異常龐大,降低其管理性能,使其成為系統的瓶頸。
1.3 集中式數據庫與文件結合的影像存儲
集中式數據庫與文件結合的影像存儲方法是將影像的結構化信息以表記錄的形式存儲在數據庫中,非結構化的影像實體則以文件的形式存儲在存儲設備中,其存儲方法如圖3所示。

圖3 數據庫與文件結合的存儲方法
國內外多家單位采用該方法存儲衛星影像,如:歐空局ESA數據中心采用數據庫管理與影像分級存儲的方式[12],我國國家地理信息服務平臺天地圖、中國資源衛星應用中心、國家衛星海洋應用中心、國家衛星氣象中心都采用商業數據庫與多級存儲設備的存儲方式[13-16]。
該方法將影像數據的元數據信息存儲在空間數據庫中,實現了元數據的高效管理。影像實體存儲在文件系統中充分發揮了文件系統的高讀寫效率及大存儲容量的優勢。該方法提高了海量影像數據存儲管理效率,但在海量大數據環境下,集中式數據庫的存儲、查詢性能都會降低,數據庫服務器將成為整個系統的性能瓶頸,影響影像數據的管理效率。
為解決集中式數據庫與文件系統結合的影像存儲方法中數據庫瓶頸的問題,本文提出采用分布式數據庫代替集中式數據庫的改進方案,以解決集中式數據庫在海量數據存儲管理中的瓶頸問題。采用分布式空間數據庫與文件結合的方法存儲海量衛星影像數據可充分挖掘數據庫的數據管理能力,提高系統海量影像數據的管理能力。衛星影像的元數據信息存儲在分布式空間數據庫中以實現海量衛星影像的快速查詢、管理,同時影像實體存儲在文件系統中,并以文件路徑的形式在分布式數據庫中記錄相應的存儲位置信息,這既充分利用了分布式數據庫在管理海量數據方面的優勢,解決了集中式數據庫的瓶頸問題,又利用了文件系統在影像存儲方面的高讀寫效率及大存儲容量的優勢。
2.1 分布式數據庫表分片
在分布式數據庫中,為解決單表數據量過大影響數據庫性能的問題,通常采用數據表分片的方案。按照一定的分片規則將數據表切分成多個節點上的不同邏輯片段,所有的邏輯片段經過合并、連接等操作得到原數據表。通過表的分片,可以將原有的單庫單表查詢分成多庫多表并行查詢,提高了查詢效率的同時還解決了單節點數據庫網絡帶寬的問題,增加了數據庫存儲容量。
分布式數據庫中常用的數據分片方式有垂直分片、水平分片及二者嵌套使用產生的混合分片方式。垂直分片是按業務對全局關系進行的投影運算,將關系表在垂直方向上切分為若干個片段,使用戶的不同應用在不同的片段上運行,以提高數據庫效率[17]。水平分片是按照一定的分片謂詞對關系表進行的選擇操作,將關系表在水平方向上切分成若干個邏輯片段[17],每個邏輯片段保存原關系表的部分記錄。
數據切分作為分布式數據庫的關鍵技術之一,它決定了數據的分片位置,影響著數據查詢性能及其聚合處理的難易程度。目前,常用的水平分片規則有固定哈希分片、范圍分片、求模分片等。
2.2 數據表分片方案設計
影像元數據表中的ID字段作為自增主鍵,其字段值在全局關系中具有連續性和唯一性。按照ID字段值對數據表進行切分,既可以控制數據在各節點間的分布,還可以降低數據分片帶來的插入、查詢中的事務控制難度,提高分布式數據庫的性能。
影像數據的云量是評判影像質量的標準之一,云量的多少直接影響數據的使用頻率。在實際生產應用中,云量小于20的影像數據使用頻率最高,數據查詢時常選擇其作為一個重要的查詢條件。因此,將影像的云量作為分片字段對于研究分布式數據庫的性能有一定參考意義。結合衛星影像數據表中的ID值與云量,對原有數據表設計了以下分片方案。
2.2.1 基于ID值的固定哈希分片
固定哈希分片規則類似于十進制的取模運算,是通過先取分片字段二進制值的低10位,再進行取模運算。這種分片規則的優點在于當插入分片字段(ID值)連續的10條記錄時,這些記錄可能會分到連續的分片,減少插入事務控制難度的同時使數據在節點間均勻分布,其數據庫模型如圖4所示。

圖4 基于ID值的哈希分片模型
2.2.2 基于云量的范圍分片
范圍分片是按照預先制定的分片范圍,根據分片字段的值對表中的記錄進行水平切分。為了選擇最佳的分片范圍,制定了兩種不同的分片范圍方案:
第一種是按云量的使用頻率劃分,云量不超過20的影像使用頻率高,可將其切分為4個分片。云量超過20的影像數據使用頻率較低,將其單獨切分為1個分片,其數據庫模型如圖5(a)所示。

圖5 基于云量的范圍分片模型
第二種是對云量進行范圍均分,每個分片中的云量范圍相同,云量小于20的數據都存放在同一個分片中,其數據庫模型如圖5(b)所示。
2.3 存儲設計
2.3.1 數據庫存儲模型設計
存儲衛星影像元數據信息的影像元數據庫采用混合分片的方式進行存儲模型設計,結合多種分片方案進行數據多節點分庫和分表存儲,既提高了數據庫的性能,又緩解了計算機資源沖突,其存儲模型如圖6所示。

圖6 分布式數據庫存儲模型示意圖
2.3.2 數據實體存儲系統設計
海量衛星影像實體的存儲采用存儲區域網絡(storage area network,SAN)架構實現數據的集中存儲與應用。SAN網設計采用典型的雙Fabric結構,搭建全冗余的SAN存儲結構,保證了數據的安全性,實現影像數據存儲中的高性能與高可用性。
根據衛星影像數據的數據量、生命周期、存儲成本等特征,將海量衛星影像數據存儲分為在線、近線和離線3級存儲,以實現影像數據的全生命周期管理。隨著影像數據的不斷更新,在線影像數據從在線磁盤陣列逐步遷移到近線磁盤陣列中及離線磁帶庫中,以保證數據存儲效率,其存儲系統設計如圖7所示。

圖7 數據實體存儲示意圖
筆者在海量衛星影像分布式存儲系統研制中,以MySQL 5.6作為底層數據庫,使用Mycat數據庫中間件構建系統底層分布式數據庫平臺,設計實現了3種分布式數據庫分片方案,并以Visual Studio 2010作為系統開發平臺,開發了分布式影像管理原型系統,實現了海量衛星影像管理中的快速歸檔、查詢、并行統計分析等功能需求。
該系統底層框架主要包括分布式空間數據庫和文件系統這兩部分,分布式空間數據庫系統使用兩臺Mycat服務器及多臺MySQL數據庫服務器,實現服務器的主備的自動切換,保障系統的高可用性。文件系統采用全冗余的SAN存儲結構存儲影像實體并進行數據的動態遷移,系統設計如圖8所示。

圖8 衛星影像數據管理系統
影像數據歸檔時,系統應用層解析影像元數據信息后將非結構化的影像實體存儲在文件系統中。文件服務器接收影像數據的實體文件,并將其存儲在文件系統的在線存儲中。當在線存儲中的數據量達到預定值時,文件服務器則會根據數據遷移策略將使用頻率較低的數據遷移到近線存儲中。同樣,近線存儲中使用頻率較低的將遷移至離線存儲。
影像元數據信息在分布式空間數據庫中存儲時,Mycat服務器接收應用層傳來的數據,并對其進行解析以獲取分片字段的值。Mycat中間件根據預先制定的分片規則計算影像元數據的分片節點,并將元數據信息存儲到對應的MySQL數據庫中。同時,影像實體在文件系統中的存儲路徑也將記錄在元數據表中。
為研究分布式空間數據庫在海量衛星影像存儲中的可行性,筆者對設計構建的海量衛星影像分布式存儲系統進行了影像元數據庫查詢性能測試。使用資源三號衛星影像元數據庫編目數據表作為試驗數據,數據表約有42萬條記錄。為進行大數據環境下的查詢性能測試,采用重復插入數據的方式,以實現單表的最大數據量達到千萬級。
4.1 測試環境
分布式數據庫服務器是Vmware上建立的5臺虛擬機,其共用物理機的CPU為Intel E7440 4核,每個虛擬機的配置如下:8 GB內存,500 GB硬盤,操作系統為Linux 2.6.32,數據庫使用MySQL 5.6.26,數據庫中間件采用Mycat 1.3。
Oracle數據庫配置如下:32 GB內存,20 TB硬盤,操作系統為Solaris 11.2,數據庫版本為 Oracle 11 g專業版。
4.2 多種數據庫平臺查詢性能測試
將資源三號衛星影像庫中的編目數據表分別導入MySQL分布式數據庫、MySQL單一數據庫及Oracle數據庫,并進行多種數據量下的查詢測試,所有測試通過直連數據庫的方式進行,避免其他因素影響測試。主要進行了以下兩個測試:
(1) 空間查詢性能測試,通過3款數據庫分別查詢覆蓋河南省數據,試驗結果如圖9(a)所示。
(2) 空間和屬性聯合查詢測試,通過在3款數據庫查詢覆蓋河南省且云量小于20的數據,試驗結果如圖9(b)所示。

圖9 3款數據庫查詢性能測試
4.3 多種分片方案查詢性能測試
為進一步研究分布式空間數據庫中分片方案對查詢性能的影響,筆者在構建的分布式數據庫平臺上進行了多種分片方案的查詢測試,按照實際應用的需求,設計了以下兩個測試:
(1) 多屬性查詢測試,查詢2014年全年,云量小于20的數據,試驗結果如圖10(a)所示。
(2) 空間與屬性聯合查詢測試,查詢覆蓋河南省且云量小于20的數據,試驗結果如圖10(b)所示。

圖10 不同分片方案查詢性能測試
圖中3種方案對應上文設計的3種數據庫的分片方案。方案一是根據哈希分片對ID值進行分片;方案二通過范圍分片將常用的云量小于20的影像在4個數據節點間分片;方案三將云量小于20的數據分片存儲在一個數據節點中。
4.4 試驗結果分析
通過以上幾個試驗,筆者對分布式數據庫進行了多角度、多數據量的影像元數據查詢性能測試,分析試驗結果得到以下結論:
(1) 筆者搭建的MySQL分布式數據庫測試平臺相比原有的Oracle數據庫平臺及MySQL單一數據庫平臺,其查詢性能得到顯著的提高。
(2) 分布式數據庫的分片方案影響著其查詢性能,在數據庫模型設計時需選擇合適的分片規則,設計合理的分片方案。
本文討論了現有衛星影像數據存儲方法的特點,針對海量衛星影像數據存儲中的性能問題,在現有方法基礎上結合海量影像數據管理中的性能需求,提出了一種分布式空間數據庫與文件結合的海量衛星影像存儲方法;進行了分布式空間數據庫的存儲模型設計及其分片方案設計,并在研究基礎上開發完成了海量衛星影像數據分布式存儲原型系統。最后,開展了資源三號衛星影像數據管理試驗,試驗表明本方法可以有效地存儲和管理衛星影像數據,查詢性能得到顯著的提高,適用于海量衛星影像數據的存儲管理。
[1] 胡正華,孟令奎,張文.面向關系數據庫擴展的自適應影像金字塔模型[J].測繪學報,2015,44(6):678-685.
[2] 王華斌,唐新明,李黔湘.海量遙感影像數據存儲管理技術研究與實現[J].測繪科學,2008(6):156-157.
[3] 李成名,劉曉麗,印潔,等.數字城市到智慧城市的思考與探索[J].測繪通報,2013(3):1-3.
[4] BOSCHETTI L, ROY D P, JUSTICE C O. Using NASA’s World Wind Virtual Globe for Interactive Internet Visualization of the Global MODIS Burned Area Product[J].International Journal of Remote Sensing,2008,29(11):3067-3072.
[5] RAMAPRIYAN H K, PFISTER R, WEINSTEIN B. An Overview of the EOS Data Distribution Systems[J]. Land Remote Sensing and Global Environmental Change, 2010,11:183-202.
[6] GUO W, GONG J Y, JIANG W S, et al. OpenRS-Cloud: A Remote Sensing Image Processing Platform Based on Cloud Computing Environment[J].Science China Technological Sciences,2010,53(1):221-230.
[7] 呂雪鋒,程承旗,龔健雅,等.海量遙感數據存儲管理技術綜述[J].中國科學(技術科學),2011(12):1561-1573.
[8] 方濤,李德仁,龔健雅,等.GeoImageDB多分辨率無縫影像數據庫系統的開發與實現[J].武漢測繪科技大學學報,1999,24(3):189-193.
[9] 陳時遠.基于HDFS的分布式海量遙感影像數據存儲技術研究[D].北京:中國科學院大學,2013.
[10] BARCLAY T, GRAY J, SLUTZ D. Microsoft Terra Server: a Spatial Data Warehouse[J].Acm Sigmod Record, 2000,29(2):307-318.
[11] PENDLETON C. The World According to Bing[J].IEEE Computer Graphics and Applications,2010,30(4):15-17.
[12] ALBANI S, GIARETTA D. Long-term Preservation of Earth Observation Data and Knowledge in ESA through CASPAR[J].International Journal of Digital Curation,2009,4(3):4-16.
[13] GONG J Y, XIANG L G, CHEN J, et al. Multi-source Geospatial Information Integration and Sharing in Virtual Globes[J].Science China Technological Sciences,2010,53(1):1-6.
[14] 周偉,黃煒,王彥佐,等.資源一號 02C 衛星數據管理與服務系統研建[J].國土資源遙感,2014,26(1):179-185.
[15] 王紅,彭海龍.海洋一號衛星離線數據長期歸檔方法研究[J].海洋通報,2008,27(4):98-100.
[16] 賈樹澤,楊軍,施進明,等.新一代氣象衛星資料處理系統并行調度算法研究與應用[J].氣象科技,2010, 38(1):96-101.
[17] 朱欣焰.分布式空間數據集成與查詢優化技術[M].北京:測繪出版社,2013.
Application of Distributed Spatial Database in Massive Satellite Images Management
SUN Jing1,2,GAO Jingxiang1,SHI Shaoyu2,WANG Huibing2,AI Bo3
(1. School of Environment Science and Spatial Informatics, CUMT, Xuzhou 221116, China; 2. Satellite Surveying and Mapping Application Center, NASG, Beijing 100048, China; 3. Key Laboratory of Surveying and Mapping Technology on Island and Reef, Qingdao 266590, China)
Aiming at the problem that the existing satellite image storage solutions have poor performance in massive image data, this paper gives the analysis of characteristics of the existing satellite image data storage solutions, and puts forward an improved solution based on distributed spatial database to manage the image metadata. This solution utilized file system to store unstructured entity data of satellite image, in the same time, the spatial information and image metadata is stored in distributed spatial database. As a result, it achieves the high performance storage of unstructured image data. ZY-3 satellite image data management experiment has been carried out, and it shows that this solution is of a significant improvement in the query performance of massive satellite image data, and it is suitable for the storage of massive satellite image data.
distributed spatial database; massive data; satellite image; image management; MySQL
孫晶,高井祥,史紹雨,等.分布式空間數據庫在海量衛星影像管理中的應用[J].測繪通報,2017(5):56-61.
10.13474/j.cnki.11-2246.2017.0154.
2016-10-09;
2017-01-12
國家自然科學基金(41271394)
孫 晶(1992—),男,碩士生,主要研究方向為海量影像數據管理。E-mail:sunj92@126.com
P208
A
0494-0911(2017)05-0056-06