一、 需求背景
- 時(shí)空數(shù)據(jù)存儲(chǔ)的需求愈發(fā)龐大,80%的信息與空間信息有關(guān);
- 時(shí)空數(shù)據(jù)時(shí)用于整合其他各種類型數(shù)據(jù)的基礎(chǔ);
- 對(duì)完善的時(shí)空大數(shù)據(jù)存儲(chǔ)解決方案的需求日益迫切。
二、Geomesa簡(jiǎn)介
-
Geomesa是一款開源的基于分布式計(jì)算系統(tǒng)的面向海量時(shí)空數(shù)據(jù)查詢與分析的工具包,可用于交通軌跡數(shù)據(jù)存儲(chǔ)分析等相關(guān)領(lǐng)域。 - Geomesa可以在分布式列數(shù)據(jù)庫(kù)的基礎(chǔ)上進(jìn)行擴(kuò)展,目前支持
Accumulo,HBase,Cassandra和Kafka等作為底層存儲(chǔ)。 - 提供高效的索引來(lái)讀取和查詢存儲(chǔ)的數(shù)據(jù),支持通過(guò)指定空間條件(距離和范圍)來(lái)快速查詢,基于kafka提供了時(shí)空數(shù)據(jù)的近實(shí)時(shí)流處理能力。
- 提供了
Spark分析能力,增加針對(duì)空間數(shù)據(jù)的UDT、UDF、UDAF,方便用戶直接使用SparkSQL進(jìn)行空間數(shù)據(jù)查詢與分析。 -
Geomesa基于GeoTools API設(shè)計(jì),與GeoServer進(jìn)行集成。
三、Geomesa特性
- 能夠存儲(chǔ)和處理海量時(shí)空數(shù)據(jù)
- 支持實(shí)時(shí)性強(qiáng)、需要快速讀寫的數(shù)據(jù)
- 支持
spark分析 - 支持水平擴(kuò)展(存儲(chǔ)介質(zhì))
- 通過(guò)
GeoServer提供地圖服務(wù),支持Common Query Language(CQL) -
GeoMesa擴(kuò)展了數(shù)據(jù)的字段類型,主要支持的類型如下所示。
四、 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)行空間分析。

4.2 體系架構(gòu)

藍(lán)色標(biāo)識(shí)的是用戶接口,GeoMesa提供了geomesa-web這類使用restful接口形式訪問(wèn)的接口、geomesa-tools的javaAPI接口,最常用的是geomesa-tools接口。
最重要的部分是黃色標(biāo)識(shí)的索引部分,GeoMesa還進(jìn)行了多種數(shù)據(jù)庫(kù)擴(kuò)展功能,底層可以連接Accumulo、Cassandra、Hbase等NoSql數(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)了OGC的Web 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ù)寫入流程

數(shù)據(jù)導(dǎo)入流程從左向右,可以通過(guò)
spark任務(wù)、mapreduce任務(wù)、strom流處理等不同的任務(wù)來(lái)調(diào)用GeoMesa提供的API或GeoTools 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 API或GeoTools API從Accumulo中進(jìn)行數(shù)據(jù)查詢,把數(shù)據(jù)讀出來(lái)。

查詢流程首先從右向左,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進(jìn)行空間查詢:

(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)行了封裝。