潘勝男
【摘? 要】隨著遙感衛(wèi)星領(lǐng)域科學(xué)技術(shù)的不斷發(fā)展,遙感影像的數(shù)據(jù)量呈現(xiàn)快速增長(zhǎng)之勢(shì)。為了高效利用遙感影像,更好地創(chuàng)造數(shù)據(jù)服務(wù)價(jià)值,各個(gè)單位、公司均在建設(shè)各自的遙感影像數(shù)據(jù)分發(fā)平臺(tái),而平臺(tái)中海量遙感影像的查詢效率就成為影響平臺(tái)服務(wù)能力的關(guān)鍵。論文針對(duì)海量遙感影像的查詢效率問題進(jìn)行了分析,提出了結(jié)合ElasticSearch的遙感影像查詢服務(wù)的應(yīng)用方案。
【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.
【關(guān)鍵詞】ElasticSearch;海量遙感影像;快速檢索
【Keywords】ElasticSearch; massive remote sensing images; fast retrieval
【中圖分類號(hào)】P237;TP311.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號(hào)】1673-1069(2021)02-0194-03
1 引言
當(dāng)今時(shí)代遙感衛(wèi)星技術(shù)正在飛速發(fā)展,國(guó)內(nèi)外的有關(guān)機(jī)構(gòu)、公司正在逐漸加大研發(fā)力度,隨之而來(lái)的是太空上的在軌遙感衛(wèi)星越來(lái)越多,遙感衛(wèi)星的影像數(shù)據(jù)量在迅速增長(zhǎng)。遙感影像數(shù)據(jù)的應(yīng)用十分廣泛,包括農(nóng)業(yè)、森林、水利、地質(zhì)、交通、海上艦船識(shí)別、軍事基地識(shí)別、情報(bào)收集等多個(gè)領(lǐng)域,海量遙感影像數(shù)據(jù)的快速檢索和查詢有利于更好地創(chuàng)造出數(shù)據(jù)的價(jià)值,提升遙感影像數(shù)據(jù)服務(wù)的整體能力。
海量遙感影像數(shù)據(jù)具有種類繁多、設(shè)計(jì)各異的特點(diǎn),不同種類的衛(wèi)星具有不同分辨率、不同傳感器、不同成像模式以及不同譜段的特性[1]。這就意味著遙感影像的查詢檢索不只是根據(jù)編目信息獲取數(shù)據(jù)這樣單一的模式,這類數(shù)據(jù)的查詢往往是多維度的,包括時(shí)間信息、空間信息和影像的各種實(shí)際屬性信息[2]。同時(shí),根據(jù)遙感影像的應(yīng)用方向,遙感數(shù)據(jù)也會(huì)有很多應(yīng)用的標(biāo)簽,這些標(biāo)簽代表了遙感數(shù)據(jù)在服務(wù)方向上的分類,因此,遙感影像也需要根據(jù)標(biāo)簽查詢。對(duì)于數(shù)據(jù)量不大的情況,遙感影像的查詢效率不是問題,但隨著遙感影像數(shù)量的增多,查詢難度也在不斷增大。
基于上述情況,如何快速在海量遙感影像中多維度地查詢到目標(biāo)數(shù)據(jù)以提升遙感數(shù)據(jù)的服務(wù)能力成為亟待解決的關(guān)鍵問題。傳統(tǒng)的空間查詢和地理范圍查詢方式在海量遙感數(shù)據(jù)的查詢上存在很多問題,已經(jīng)無(wú)法滿足當(dāng)前的需求。針對(duì)這些問題,本文從大數(shù)據(jù)量的遙感數(shù)據(jù)快速查詢和精準(zhǔn)定位的需求出發(fā),結(jié)合互聯(lián)網(wǎng)先進(jìn)的查詢技術(shù),使用分布式搜索引擎ElasticSearch對(duì)海量遙感影像數(shù)據(jù)進(jìn)行了查詢檢索的應(yīng)用,查詢效率有了很大的提升。
2 分布式搜索引擎ElasticSearch
2.1 ElasticSearch的介紹
ElasticSearch是一個(gè)分布式的搜索引擎,它是一個(gè)用Java高級(jí)語(yǔ)言寫成的開源項(xiàng)目,它的服務(wù)是遵循超文本傳輸協(xié)議的接口,是目前應(yīng)用非常廣泛的搜索服務(wù)架構(gòu)[3]。該引擎經(jīng)常應(yīng)用在云計(jì)算之中,搜索速度很快,能夠達(dá)到實(shí)時(shí)響應(yīng),服務(wù)的健壯性很好,安全可靠,安裝和使用也非常方便。
ElasticSearch具有高可擴(kuò)展性的優(yōu)勢(shì),支持橫向擴(kuò)展,節(jié)點(diǎn)數(shù)量可以根據(jù)實(shí)際需要自由增加,它存儲(chǔ)的所有字段都可以建立索引進(jìn)行搜索操作,它消耗很少的時(shí)間就可以存儲(chǔ)和搜索海量的各類數(shù)據(jù),可以處理PB級(jí)別的數(shù)據(jù)。ElasticSearch存儲(chǔ)數(shù)據(jù)的方式是按照J(rèn)SON的格式存儲(chǔ)的,一個(gè)JSON就是一條數(shù)據(jù)。ElasticSearch具有很多優(yōu)點(diǎn),例如,它隱藏了Lucene的復(fù)雜性,對(duì)外提供易用的API。本身是一個(gè)高可用的服務(wù),提供了復(fù)制機(jī)制,每個(gè)分片都可以復(fù)制,沒有單點(diǎn)故障,當(dāng)其中幾個(gè)節(jié)點(diǎn)出問題時(shí)集群仍可正常運(yùn)行。ElasticSearch服務(wù)需要增加服務(wù)器時(shí),只需要做很少的操作,啟動(dòng)該節(jié)點(diǎn)的服務(wù)即可輕松加入集群。ElasticSearch采用“分而治之”的處理思路,將一個(gè)索引以劃片的思路分開存儲(chǔ),以獲取最大的性能。
ElasticSearch分布式集群以單個(gè)節(jié)點(diǎn)為單位,采用了不同于數(shù)據(jù)庫(kù)的非典型索引結(jié)構(gòu),ES中的一個(gè)索引的概念類似于一個(gè)數(shù)據(jù)庫(kù)。在ES中的一個(gè)索引下面有多個(gè)類型,這個(gè)類型也不同于傳統(tǒng)概念,它類似于數(shù)據(jù)庫(kù)中的一個(gè)表。類型下面是一個(gè)個(gè)文檔,文檔類似于數(shù)據(jù)庫(kù)表中的一個(gè)記錄。文檔包括很多字段,此處字段的含義和數(shù)據(jù)庫(kù)表中字段意義相同。ES采用主備結(jié)構(gòu),默認(rèn)創(chuàng)建五個(gè)主分片和五個(gè)副分片。這些擁有相同數(shù)據(jù)的分片分別儲(chǔ)存在不同節(jié)點(diǎn),在數(shù)據(jù)檢索時(shí)ES會(huì)向所有節(jié)點(diǎn)發(fā)出查詢請(qǐng)求,最后采納返回最快的查詢結(jié)果。
2.2 ElasticSearch的應(yīng)用分析
在當(dāng)今的互聯(lián)網(wǎng)時(shí)代,ElasticSearch的應(yīng)用場(chǎng)景非常廣泛,很多大型網(wǎng)站和應(yīng)用都用到了ES,例如,人們熟知的百度、京東、攜程、滴滴,等等。
下面以酒店預(yù)定訂單中心管理為例,介紹ElasticSearch在海量數(shù)據(jù)查詢方面的應(yīng)用。日活量較高的酒店預(yù)定網(wǎng)站平均每天的訂單量可以超過三十萬(wàn),加上其他來(lái)源的訂單加起來(lái)可以達(dá)到一百萬(wàn)。如果采用傳統(tǒng)的數(shù)據(jù)庫(kù)方法來(lái)進(jìn)行存儲(chǔ)管理,那么可以采用分庫(kù)分表的形式,可以將近六個(gè)月的訂單放在熱表中,將歷史數(shù)據(jù)放到其他數(shù)據(jù)表中。如果只對(duì)該網(wǎng)站的訂單進(jìn)行管理,熱表中的數(shù)據(jù)總量超過了四千萬(wàn),再加上其他渠道的訂單,熱表的數(shù)量很快就會(huì)增加到上億條,單純靠數(shù)據(jù)庫(kù)查詢效率很低、速度較慢,無(wú)法滿足酒店訂單的業(yè)務(wù)需求。而且上億條酒店訂單數(shù)據(jù)還包括很多屬性,如預(yù)定時(shí)間、入店時(shí)間、離店時(shí)間、姓名、手機(jī)號(hào)、酒店名稱等非常多的屬性。這些都需要作為條件進(jìn)行酒店訂單的查詢,所以分表策略也很難實(shí)現(xiàn),即無(wú)法按照單一維度進(jìn)行分表。引入ElasticSearch可以很好地解決這些問題,人們可以對(duì)訂單模型進(jìn)行抽象和分類,把設(shè)計(jì)查詢的屬性信息和訂單詳情信息分開,數(shù)據(jù)庫(kù)只用于存儲(chǔ)訂單詳情,而涉及查詢的字段全部存入ElasticSearch中,同時(shí),根據(jù)實(shí)際情況去調(diào)整ES的分片數(shù)量和副本數(shù),以達(dá)到最佳的性能。
這樣的架構(gòu)在實(shí)際應(yīng)用中可以很好地解決上億量級(jí)酒店訂單的快速查詢問題。ElasticSearch在酒店訂單查詢方面的應(yīng)用驗(yàn)證了該搜索引擎同樣也可以在海量遙感數(shù)據(jù)的查詢檢索中發(fā)揮作用。
3 基于ElasticSearch架構(gòu)實(shí)現(xiàn)海量遙感影像的快速查詢和檢索
3.1 海量遙感影像查詢檢索特點(diǎn)
海量遙感影像數(shù)據(jù)的查詢檢索首先是對(duì)性能方面有較高的要求,當(dāng)用戶瀏覽遙感影像數(shù)據(jù)服務(wù)平臺(tái)時(shí),數(shù)據(jù)檢索的時(shí)效性是決定用戶對(duì)此是否感興趣的關(guān)鍵因素,如果響應(yīng)時(shí)間過長(zhǎng),用戶可能會(huì)直接放棄該平臺(tái);其次當(dāng)系統(tǒng)需要快速檢索遙感影像進(jìn)行二次加工或者應(yīng)急響應(yīng)時(shí),也對(duì)查詢數(shù)據(jù)的時(shí)效性有較高要求,因此,滿足檢索數(shù)據(jù)的時(shí)效性要求是海量遙感影像檢索的首要考慮因素。
海量遙感影像查詢是一種多維度、多條件的查詢,從實(shí)際屬性出發(fā),這類查詢的常見條件包括:
按照產(chǎn)品類型查詢、按照分辨率查詢、按照衛(wèi)星代號(hào)查詢、按照云量查詢、按照側(cè)擺要求查詢、按照產(chǎn)品質(zhì)量查詢、按照譜段查詢,等等。圖1是長(zhǎng)光衛(wèi)星技術(shù)有限公司數(shù)據(jù)服務(wù)平臺(tái)的遙感影像查詢條件頁(yè)面,這些條件可以在該頁(yè)面得到佐證。除了這些條件之外,海量遙感影像的查詢還有兩個(gè)重要的條件:一個(gè)是時(shí)間條件;另一個(gè)是空間條件。時(shí)間條件指的是影像的拍攝時(shí)間、歸檔時(shí)間、數(shù)傳時(shí)間等;空間條件指的是遙感影像的地理位置。表征地理信息的文件格式有很多,例如,GEOJSON、SHP文件、WKT、KML文件以及KMZ文件,成熟的遙感影像數(shù)據(jù)服務(wù)平臺(tái)是需要支持使用上述所有類型的地理信息文件對(duì)遙感影像進(jìn)行查詢的。這兩個(gè)維度是消耗檢索時(shí)間的重要影響因素,也是提升遙感影像查詢速度的重要突破口。
3.2 海量遙感影像檢索服務(wù)架構(gòu)設(shè)計(jì)
基于上文對(duì)海量遙感影像查詢檢索特點(diǎn)的分析,本文設(shè)計(jì)了“ElasticSearch+PostgreSQL”的底層查詢服務(wù)架構(gòu)來(lái)實(shí)現(xiàn)海量遙感影像的檢索服務(wù)。PostgreSQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù),并支持地理信息擴(kuò)展插件PostGIS。ES中增加了對(duì)地理信息的支持,就地理信息運(yùn)算這項(xiàng)ES和PostGIS各有優(yōu)缺點(diǎn),在這里采用PostGIS插件進(jìn)行地理信息的運(yùn)算,因?yàn)镻ostGIS對(duì)復(fù)雜地理信息的運(yùn)算支持較好一些。針對(duì)遙感影像的各種元數(shù)據(jù)信息,參與查詢的元數(shù)據(jù)字段均存儲(chǔ)于ElasticSearch中,其余各個(gè)字段存儲(chǔ)在PostgreSQL數(shù)據(jù)庫(kù)中,以備查詢影像的詳細(xì)信息。ElasticSearch服務(wù)采用集群的形式,設(shè)置一層網(wǎng)關(guān)服務(wù)來(lái)進(jìn)行智能負(fù)載均衡,網(wǎng)關(guān)對(duì)數(shù)據(jù)檢索請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)至ES的數(shù)據(jù)節(jié)點(diǎn),ES集群設(shè)置一個(gè)主分片以及一個(gè)副分片。該架構(gòu)將一次遙感影像數(shù)據(jù)查詢請(qǐng)求中的除地理范圍外各項(xiàng)屬性條件在ES中快速定位,并將中間結(jié)果按地理信息在PostgreSQL中進(jìn)行二次篩選,這樣可以很快檢索到目標(biāo)數(shù)據(jù),充分發(fā)揮ElasticSearch和PostgreSQL的優(yōu)勢(shì)。該架構(gòu)如圖2所示。
3.3 ElasticSearch架構(gòu)下遙感影像查詢檢索性能驗(yàn)證
本文對(duì)ElasticSearch架構(gòu)下的遙感影像查詢檢索的性能進(jìn)行了實(shí)驗(yàn)驗(yàn)證,表1為傳統(tǒng)單純依賴數(shù)據(jù)庫(kù)的搜索架構(gòu)和本文架構(gòu)在同一個(gè)數(shù)據(jù)庫(kù)中的實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)選用同一個(gè)千萬(wàn)級(jí)遙感影像元數(shù)據(jù)庫(kù),分別搜索2018-2020年?yáng)|北三省范圍內(nèi)的遙感影像數(shù)據(jù),可以看出本文架構(gòu)的搜索速度明顯占優(yōu)。實(shí)現(xiàn)了千萬(wàn)量級(jí)數(shù)據(jù)中查詢返回前一萬(wàn)條所需時(shí)間壓縮至1s以內(nèi),極大地提升了產(chǎn)品體驗(yàn)與核心競(jìng)爭(zhēng)力,以及遙感影像的數(shù)據(jù)服務(wù)能力。該架構(gòu)擴(kuò)展性較好,當(dāng)我們的數(shù)據(jù)總量進(jìn)一步擴(kuò)大時(shí),可以橫向擴(kuò)展ES集群的節(jié)點(diǎn)數(shù),配置簡(jiǎn)單,降低了開發(fā)人員的研發(fā)成本。
4 結(jié)語(yǔ)
本文介紹了時(shí)下流行的分布式搜索引擎ElasticSearch,對(duì)ElasticSearch的概念和優(yōu)勢(shì)進(jìn)行了詳細(xì)剖析,并對(duì)該搜索引擎進(jìn)行了實(shí)例分析,將互聯(lián)網(wǎng)先進(jìn)的技術(shù)應(yīng)用到了海量遙感影像數(shù)據(jù)的查詢、檢索上,充分分析了海量遙感影像的檢索需求和特點(diǎn),針對(duì)這些特點(diǎn)設(shè)計(jì)了基于ElasticSearch的遙感影像檢索服務(wù)架構(gòu),最后對(duì)這個(gè)架構(gòu)的實(shí)際性能進(jìn)行了驗(yàn)證,該架構(gòu)在千萬(wàn)級(jí)遙感影像數(shù)據(jù)庫(kù)中進(jìn)行時(shí)空查詢時(shí)速度達(dá)到了毫秒級(jí)別,滿足了海量、多時(shí)相、多分辨率、多譜段遙感影像的快速檢索需求。
【參考文獻(xiàn)】
【1】陳愛玲.海量影像數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2019,42(10):145-146+149.
【2】呂喜軍,陳中林,龔建輝.海量影像管理與服務(wù)技術(shù)研究及實(shí)現(xiàn)[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.