潘勝男


【摘? 要】隨著遙感衛星領域科學技術的不斷發展,遙感影像的數據量呈現快速增長之勢。為了高效利用遙感影像,更好地創造數據服務價值,各個單位、公司均在建設各自的遙感影像數據分發平臺,而平臺中海量遙感影像的查詢效率就成為影響平臺服務能力的關鍵。論文針對海量遙感影像的查詢效率問題進行了分析,提出了結合ElasticSearch的遙感影像查詢服務的應用方案。
【Abstract】With the continuous development of science and technology in the field of remote sensing satellite, the amount of remote sensing image data shows a rapid growth trend. In order to make efficient use of remote sensing image and better create data service value, all units and companies are building their own remote sensing image data distribution platform, and the query efficiency of the massive remote sensing image in the platform becomes the key to influence the service capability of the platform. This paper analyzes the problem of query efficiency of massive remote sensing image, and puts forward the application scheme of remote sensing image query service combined with ElasticSearch.
【關鍵詞】ElasticSearch;海量遙感影像;快速檢索
【Keywords】ElasticSearch; massive remote sensing images; fast retrieval
【中圖分類號】P237;TP311.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻標志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2021)02-0194-03
1 引言
當今時代遙感衛星技術正在飛速發展,國內外的有關機構、公司正在逐漸加大研發力度,隨之而來的是太空上的在軌遙感衛星越來越多,遙感衛星的影像數據量在迅速增長。遙感影像數據的應用十分廣泛,包括農業、森林、水利、地質、交通、海上艦船識別、軍事基地識別、情報收集等多個領域,海量遙感影像數據的快速檢索和查詢有利于更好地創造出數據的價值,提升遙感影像數據服務的整體能力。
海量遙感影像數據具有種類繁多、設計各異的特點,不同種類的衛星具有不同分辨率、不同傳感器、不同成像模式以及不同譜段的特性[1]。這就意味著遙感影像的查詢檢索不只是根據編目信息獲取數據這樣單一的模式,這類數據的查詢往往是多維度的,包括時間信息、空間信息和影像的各種實際屬性信息[2]。同時,根據遙感影像的應用方向,遙感數據也會有很多應用的標簽,這些標簽代表了遙感數據在服務方向上的分類,因此,遙感影像也需要根據標簽查詢。對于數據量不大的情況,遙感影像的查詢效率不是問題,但隨著遙感影像數量的增多,查詢難度也在不斷增大。
基于上述情況,如何快速在海量遙感影像中多維度地查詢到目標數據以提升遙感數據的服務能力成為亟待解決的關鍵問題。傳統的空間查詢和地理范圍查詢方式在海量遙感數據的查詢上存在很多問題,已經無法滿足當前的需求。針對這些問題,本文從大數據量的遙感數據快速查詢和精準定位的需求出發,結合互聯網先進的查詢技術,使用分布式搜索引擎ElasticSearch對海量遙感影像數據進行了查詢檢索的應用,查詢效率有了很大的提升。
2 分布式搜索引擎ElasticSearch
2.1 ElasticSearch的介紹
ElasticSearch是一個分布式的搜索引擎,它是一個用Java高級語言寫成的開源項目,它的服務是遵循超文本傳輸協議的接口,是目前應用非常廣泛的搜索服務架構[3]。該引擎經常應用在云計算之中,搜索速度很快,能夠達到實時響應,服務的健壯性很好,安全可靠,安裝和使用也非常方便。
ElasticSearch具有高可擴展性的優勢,支持橫向擴展,節點數量可以根據實際需要自由增加,它存儲的所有字段都可以建立索引進行搜索操作,它消耗很少的時間就可以存儲和搜索海量的各類數據,可以處理PB級別的數據。ElasticSearch存儲數據的方式是按照JSON的格式存儲的,一個JSON就是一條數據。ElasticSearch具有很多優點,例如,它隱藏了Lucene的復雜性,對外提供易用的API。本身是一個高可用的服務,提供了復制機制,每個分片都可以復制,沒有單點故障,當其中幾個節點出問題時集群仍可正常運行。ElasticSearch服務需要增加服務器時,只需要做很少的操作,啟動該節點的服務即可輕松加入集群。ElasticSearch采用“分而治之”的處理思路,將一個索引以劃片的思路分開存儲,以獲取最大的性能。
ElasticSearch分布式集群以單個節點為單位,采用了不同于數據庫的非典型索引結構,ES中的一個索引的概念類似于一個數據庫。在ES中的一個索引下面有多個類型,這個類型也不同于傳統概念,它類似于數據庫中的一個表。類型下面是一個個文檔,文檔類似于數據庫表中的一個記錄。文檔包括很多字段,此處字段的含義和數據庫表中字段意義相同。ES采用主備結構,默認創建五個主分片和五個副分片。這些擁有相同數據的分片分別儲存在不同節點,在數據檢索時ES會向所有節點發出查詢請求,最后采納返回最快的查詢結果。
2.2 ElasticSearch的應用分析
在當今的互聯網時代,ElasticSearch的應用場景非常廣泛,很多大型網站和應用都用到了ES,例如,人們熟知的百度、京東、攜程、滴滴,等等。
下面以酒店預定訂單中心管理為例,介紹ElasticSearch在海量數據查詢方面的應用。日活量較高的酒店預定網站平均每天的訂單量可以超過三十萬,加上其他來源的訂單加起來可以達到一百萬。如果采用傳統的數據庫方法來進行存儲管理,那么可以采用分庫分表的形式,可以將近六個月的訂單放在熱表中,將歷史數據放到其他數據表中。如果只對該網站的訂單進行管理,熱表中的數據總量超過了四千萬,再加上其他渠道的訂單,熱表的數量很快就會增加到上億條,單純靠數據庫查詢效率很低、速度較慢,無法滿足酒店訂單的業務需求。而且上億條酒店訂單數據還包括很多屬性,如預定時間、入店時間、離店時間、姓名、手機號、酒店名稱等非常多的屬性。這些都需要作為條件進行酒店訂單的查詢,所以分表策略也很難實現,即無法按照單一維度進行分表。引入ElasticSearch可以很好地解決這些問題,人們可以對訂單模型進行抽象和分類,把設計查詢的屬性信息和訂單詳情信息分開,數據庫只用于存儲訂單詳情,而涉及查詢的字段全部存入ElasticSearch中,同時,根據實際情況去調整ES的分片數量和副本數,以達到最佳的性能。
這樣的架構在實際應用中可以很好地解決上億量級酒店訂單的快速查詢問題。ElasticSearch在酒店訂單查詢方面的應用驗證了該搜索引擎同樣也可以在海量遙感數據的查詢檢索中發揮作用。
3 基于ElasticSearch架構實現海量遙感影像的快速查詢和檢索
3.1 海量遙感影像查詢檢索特點
海量遙感影像數據的查詢檢索首先是對性能方面有較高的要求,當用戶瀏覽遙感影像數據服務平臺時,數據檢索的時效性是決定用戶對此是否感興趣的關鍵因素,如果響應時間過長,用戶可能會直接放棄該平臺;其次當系統需要快速檢索遙感影像進行二次加工或者應急響應時,也對查詢數據的時效性有較高要求,因此,滿足檢索數據的時效性要求是海量遙感影像檢索的首要考慮因素。
海量遙感影像查詢是一種多維度、多條件的查詢,從實際屬性出發,這類查詢的常見條件包括:
按照產品類型查詢、按照分辨率查詢、按照衛星代號查詢、按照云量查詢、按照側擺要求查詢、按照產品質量查詢、按照譜段查詢,等等。圖1是長光衛星技術有限公司數據服務平臺的遙感影像查詢條件頁面,這些條件可以在該頁面得到佐證。除了這些條件之外,海量遙感影像的查詢還有兩個重要的條件:一個是時間條件;另一個是空間條件。時間條件指的是影像的拍攝時間、歸檔時間、數傳時間等;空間條件指的是遙感影像的地理位置。表征地理信息的文件格式有很多,例如,GEOJSON、SHP文件、WKT、KML文件以及KMZ文件,成熟的遙感影像數據服務平臺是需要支持使用上述所有類型的地理信息文件對遙感影像進行查詢的。這兩個維度是消耗檢索時間的重要影響因素,也是提升遙感影像查詢速度的重要突破口。
3.2 海量遙感影像檢索服務架構設計
基于上文對海量遙感影像查詢檢索特點的分析,本文設計了“ElasticSearch+PostgreSQL”的底層查詢服務架構來實現海量遙感影像的檢索服務。PostgreSQL是一個開源的關系型數據庫,并支持地理信息擴展插件PostGIS。ES中增加了對地理信息的支持,就地理信息運算這項ES和PostGIS各有優缺點,在這里采用PostGIS插件進行地理信息的運算,因為PostGIS對復雜地理信息的運算支持較好一些。針對遙感影像的各種元數據信息,參與查詢的元數據字段均存儲于ElasticSearch中,其余各個字段存儲在PostgreSQL數據庫中,以備查詢影像的詳細信息。ElasticSearch服務采用集群的形式,設置一層網關服務來進行智能負載均衡,網關對數據檢索請求進行轉發,轉發至ES的數據節點,ES集群設置一個主分片以及一個副分片。該架構將一次遙感影像數據查詢請求中的除地理范圍外各項屬性條件在ES中快速定位,并將中間結果按地理信息在PostgreSQL中進行二次篩選,這樣可以很快檢索到目標數據,充分發揮ElasticSearch和PostgreSQL的優勢。該架構如圖2所示。
3.3 ElasticSearch架構下遙感影像查詢檢索性能驗證
本文對ElasticSearch架構下的遙感影像查詢檢索的性能進行了實驗驗證,表1為傳統單純依賴數據庫的搜索架構和本文架構在同一個數據庫中的實驗對比,實驗選用同一個千萬級遙感影像元數據庫,分別搜索2018-2020年東北三省范圍內的遙感影像數據,可以看出本文架構的搜索速度明顯占優。實現了千萬量級數據中查詢返回前一萬條所需時間壓縮至1s以內,極大地提升了產品體驗與核心競爭力,以及遙感影像的數據服務能力。該架構擴展性較好,當我們的數據總量進一步擴大時,可以橫向擴展ES集群的節點數,配置簡單,降低了開發人員的研發成本。
4 結語
本文介紹了時下流行的分布式搜索引擎ElasticSearch,對ElasticSearch的概念和優勢進行了詳細剖析,并對該搜索引擎進行了實例分析,將互聯網先進的技術應用到了海量遙感影像數據的查詢、檢索上,充分分析了海量遙感影像的檢索需求和特點,針對這些特點設計了基于ElasticSearch的遙感影像檢索服務架構,最后對這個架構的實際性能進行了驗證,該架構在千萬級遙感影像數據庫中進行時空查詢時速度達到了毫秒級別,滿足了海量、多時相、多分辨率、多譜段遙感影像的快速檢索需求。
【參考文獻】
【1】陳愛玲.海量影像數據管理系統的設計與實現[J].測繪與空間地理信息,2019,42(10):145-146+149.
【2】呂喜軍,陳中林,龔建輝.海量影像管理與服務技術研究及實現[J].地理空間信息,2017,15(02):33-35.
【3】Praveen M Dhulavvagol,Vijayakumar H Bhajantri,S G Totad.Performance Analysis of Distributed Processing System using Shard Selection Techniques on Elasticsearch[J].Procedia Computer Science,2020(167):1626-1635.