Geomesa學(xué)習(xí)1- 概要

一、 需求背景

  1. 時(shí)空數(shù)據(jù)存儲(chǔ)的需求愈發(fā)龐大,80%的信息與空間信息有關(guān);
  2. 時(shí)空數(shù)據(jù)時(shí)用于整合其他各種類型數(shù)據(jù)的基礎(chǔ);
  3. 對(duì)完善的時(shí)空大數(shù)據(jù)存儲(chǔ)解決方案的需求日益迫切。

二、Geomesa簡(jiǎn)介

  1. Geomesa是一款開源的基于分布式計(jì)算系統(tǒng)的面向海量時(shí)空數(shù)據(jù)查詢與分析的工具包,可用于交通軌跡數(shù)據(jù)存儲(chǔ)分析等相關(guān)領(lǐng)域。
  2. Geomesa可以在分布式列數(shù)據(jù)庫(kù)的基礎(chǔ)上進(jìn)行擴(kuò)展,目前支持Accumulo,HBase, CassandraKafka等作為底層存儲(chǔ)。
  3. 提供高效的索引來(lái)讀取和查詢存儲(chǔ)的數(shù)據(jù),支持通過(guò)指定空間條件(距離和范圍)來(lái)快速查詢,基于kafka提供了時(shí)空數(shù)據(jù)的近實(shí)時(shí)流處理能力。
  4. 提供了Spark分析能力,增加針對(duì)空間數(shù)據(jù)的UDT、UDFUDAF,方便用戶直接使用SparkSQL進(jìn)行空間數(shù)據(jù)查詢與分析。
  5. Geomesa基于GeoTools API設(shè)計(jì),與GeoServer進(jìn)行集成。

三、Geomesa特性

  1. 能夠存儲(chǔ)和處理海量時(shí)空數(shù)據(jù)
  2. 支持實(shí)時(shí)性強(qiáng)、需要快速讀寫的數(shù)據(jù)
  3. 支持spark分析
  4. 支持水平擴(kuò)展(存儲(chǔ)介質(zhì))
  5. 通過(guò)GeoServer提供地圖服務(wù),支持Common Query Language(CQL)
  6. GeoMesa擴(kuò)展了數(shù)據(jù)的字段類型,主要支持的類型如下所示。
geomesa數(shù)據(jù)類型.PNG

四、 Geomesa架構(gòu)與流程

4.1 服務(wù)架構(gòu)

GeoMesa支持多種可擴(kuò)展的、基于云端的數(shù)據(jù)存儲(chǔ)架構(gòu),包括Apache Accumulo, Apache HBased,Google Cloud Bigtable以及用于流計(jì)算的Apache Kafka 。同時(shí)GeoMesa還可以和Apache Storm一起處理流數(shù)據(jù),并使用Spark進(jìn)行空間分析。

服務(wù)架構(gòu).png

4.2 體系架構(gòu)

體系架構(gòu).png

藍(lán)色標(biāo)識(shí)的是用戶接口,GeoMesa提供了geomesa-web這類使用restful接口形式訪問(wèn)的接口、geomesa-toolsjavaAPI接口,最常用的是geomesa-tools接口。

最重要的部分是黃色標(biāo)識(shí)的索引部分,GeoMesa還進(jìn)行了多種數(shù)據(jù)庫(kù)擴(kuò)展功能,底層可以連接AccumuloCassandra、HbaseNoSql數(shù)據(jù)庫(kù)。

4.3 Geomesa的GeoTools

為了方便用戶使用GeoMesa中存儲(chǔ)的數(shù)據(jù),GeoMesa通過(guò)實(shí)現(xiàn)GeoTools接口提供了使用OGC標(biāo)準(zhǔn)服務(wù)接口訪問(wèn)數(shù)據(jù)的能力。

OGC標(biāo)準(zhǔn):Open Geospatial Consortium, 是一個(gè)指定與空間信息、基于位置服務(wù)相關(guān)的標(biāo)準(zhǔn)的組織。舉例:GeoMesa中用到了OGC標(biāo)準(zhǔn)中的SimpleFeatures標(biāo)準(zhǔn),該標(biāo)準(zhǔn)用來(lái)進(jìn)行簡(jiǎn)單要素對(duì)象的通用描述。

GeoMesa實(shí)現(xiàn)了OGCWeb Feature Service(要素web服務(wù))、Web Mapping Service(地圖web服務(wù))、 Web Processing Service(地理處理web服務(wù))、 Web Coverage Service標(biāo)準(zhǔn)(柵格web服務(wù))。

4.4 數(shù)據(jù)寫入流程

導(dǎo)入流程.png

數(shù)據(jù)導(dǎo)入流程從左向右,可以通過(guò)spark任務(wù)、mapreduce任務(wù)、strom流處理等不同的任務(wù)來(lái)調(diào)用GeoMesa提供的APIGeoTools API進(jìn)行數(shù)據(jù)寫入,在寫入數(shù)據(jù)時(shí)GeoMesa為數(shù)據(jù)創(chuàng)建實(shí)行索引、featureID索引、空間索引、時(shí)空索引等,完成數(shù)據(jù)導(dǎo)入流程。

4.5 數(shù)據(jù)查出流程

通過(guò)GeoMesa APIGeoTools APIAccumulo中進(jìn)行數(shù)據(jù)查詢,把數(shù)據(jù)讀出來(lái)。

查詢流程.png

查詢流程首先從右向左,QueryClient發(fā)起查詢請(qǐng)求,GeoMesa根據(jù)查詢請(qǐng)求選擇可用的最優(yōu)索引從底層拉取數(shù)據(jù),通過(guò)API將結(jié)果返回。

五、 Geomesa優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
(1)支持Spark大數(shù)據(jù)分析。
提供了用于空間數(shù)據(jù)分析的SpatialRDD模型;
提供了多種時(shí)空函數(shù)實(shí)現(xiàn),如buffer、contains等;
擴(kuò)展Spark SQL以支持標(biāo)準(zhǔn)的時(shí)空查詢

sparksql對(duì)geomesa的支持.png

舉例SparkSQL進(jìn)行空間查詢:

sparksql查詢示例.png

(2)多種空間索引,最大化優(yōu)化查詢
(3)提供基于Coprocessor的空間查詢方式,將計(jì)算放在Server端,減少數(shù)據(jù)通訊開銷,性能較好。

缺點(diǎn):
(1)時(shí)空索引構(gòu)建采用Z-ordering會(huì)存在距離突變情況。
(2)目前不支持柵格數(shù)據(jù)存儲(chǔ)

六、 hbase ganos

6.1 Ganos簡(jiǎn)介

Hbase Ganos時(shí)空引擎是基于LocationTech 開源項(xiàng)目 GeoMesa 開發(fā)的一套時(shí)空大數(shù)據(jù)引擎系統(tǒng)。HBase Ganos提供一系列時(shí)空索引(點(diǎn)、線、面)、數(shù)據(jù)類型、查詢算法,基于阿里云NoSQL分布式存儲(chǔ)系統(tǒng)中對(duì)空間/時(shí)空數(shù)據(jù)進(jìn)行高效的存儲(chǔ)、索引、查詢和分析計(jì)算。

6.2 Ganos使用場(chǎng)景

基礎(chǔ)地理信息數(shù)據(jù)管理:
HBase Ganos提供的高效時(shí)空索引系統(tǒng),允許用戶使用NoSQL數(shù)據(jù)庫(kù)對(duì)點(diǎn)、線、面等空間要素進(jìn)行分布式存儲(chǔ)與快速查詢。
大規(guī)模傳感網(wǎng)實(shí)時(shí)數(shù)據(jù)管理:
HBase Ganos可以Stream流式計(jì)算框架、MQ、Spark分析框架等進(jìn)行無(wú)縫銜接,用來(lái)存儲(chǔ)和管理實(shí)時(shí)的流式數(shù)據(jù)并進(jìn)行實(shí)時(shí)分析。
大規(guī)模軌跡數(shù)據(jù)管理:
HBase Ganos提供了針對(duì)隨時(shí)間連續(xù)變化的軌跡數(shù)據(jù)的存儲(chǔ)模型,并提供了TubeSelect等空間查詢算法實(shí)現(xiàn)基于軌跡數(shù)據(jù)的時(shí)空查詢算法。可廣泛應(yīng)用在網(wǎng)約車、共享單車、船只、飛行器等領(lǐng)域的軌跡存儲(chǔ)與查詢。
海量數(shù)據(jù)統(tǒng)計(jì)分析:
HBase Ganos提供了多種如KNN、直方圖、熱點(diǎn)分析等空間分析算法,允許用戶進(jìn)行空間大數(shù)據(jù)的實(shí)時(shí)分析挖掘。

6.3 Ganos優(yōu)勢(shì)

(1)PB級(jí)存儲(chǔ)與海量并發(fā)寫入。
(2)多種空間索引方式供用戶靈活選擇。
(3)基于Coprocessor的空間查詢與計(jì)算方式,將計(jì)算過(guò)程放置在server端,能夠最大化并行效率,從而獲得較好的性能提升。
(4)提供了多種空間數(shù)據(jù)分析算法,如KNN、直方圖、熱點(diǎn)分析、TubeSelect等。
(5)基于OGC標(biāo)準(zhǔn)設(shè)計(jì),便于系統(tǒng)間的集成與互操作。
(6)冷熱數(shù)據(jù)存儲(chǔ)分離與無(wú)縫訪問(wèn)。
(7)基于阿里云HBase專業(yè)運(yùn)維,全托管方式,提供可靠穩(wěn)定的服務(wù)。

相比GeoMesa,Ganos并沒(méi)有進(jìn)行二次開發(fā),只是進(jìn)行了封裝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容