GeoMesa 詳細介紹

GeoMesa 是開源的基於分佈式計算系統的面向海量時空數據查詢與分析的工具包,它支持多種可擴展的、基於雲端的數據存儲架構,包括Apache Accumulo, HBase,Cassandra,Google Bigtable,以及用於流計算的Apache Kafka 。同時GeoMesa還可以和Apache Storm一起處理流數據,並使用Spark進行空間分析。 同時,GeoMesa以GeoServer插件的形式爲GeoServer提供了讀取GeoMesa表的功能。在GeoServer中,GeoMesa表作爲一種數據源存在,通過GeoServer,用戶可以通過WMS/WFS的形式訪問GeoMesa的數據。

GeoMesa的定位是一個基於分佈式數據庫的用於海量空間愛你數據處理的數據引擎(SDE)

GeoMesa 允許使用存儲在GeoMesa中的數據,其他GeoTools數據存儲中的數據在Spark上執行作業。GeoMesa運行創建Spark RDD和數據幀,將Spark RDD和數據幀寫入地理工具數據存儲,並使用Kryo 進行序列化。GeoMesa底層爲geomesa-spark-jts模塊,geomesa-spark-core模塊是spark core的擴展,支持geotools的query,生成序列化好的simply feature類型的RDD。

GeoMesa的定位是一個時空數據引擎,或者交數據庫中間件,目的在於使用戶可以在分佈式NoSql數據庫中 存儲和管理海量空間數據.

GeoMesa作爲空間大數據處理礦建,本身不存儲數據,數據存儲依賴底層的分佈式數據庫,如HBase,Accumulo等。

一方面,GeoMesa基於已有的GIS開源框架GeoTools,可以進行地理學方面的空間數據的處理,另一方面,GeoMesa也能夠支持比較成熟的大數據框架進行數據的處理,存儲和計算,此外GeoMesa本身還有器特有的時空索引的機制,尤其是對LineString,Polygon等要素提供的XZ索引機制,爲時空數據在大數據場景中進行運用提供了很好的拓展。

GeoMesa通過實現GeoTools接口,提供了使用OGC標準服務接口數據訪問能力,實現的OGC標準有:

WFS,WMS,WPS,WCS

2. Spark JTS
Spark JTS提供了一組用戶定義函數(UDF)和用戶定義類型(UDT),這些函數運行在spark中執行SQL查詢,從而對地理空間數據類型執行空間操作。支持基於Spark Sql模塊中存在的數據集/數據幀API,以提供地理空間功能,包括自定義地理空間數據類型和函數,從地理弓箭數據存儲創建數據幀的能力及改進SQL查詢性能的優化。

SparkSession

3. Spark Core
GeoMesa Spark Core 是直接處理geomesa 和其他地理空間數據存儲中的特徵RDD

SpaceialRDDProvider 提供了用於訪問Spark中地理空間數據的API

其主要包含倆部分,空間索引GeoMesaFeatureIndex 與數據存儲GeoMesaDataStore

空間索引主要是GeoMesa中定義的Z2/Z3,XZ2/XZ3的實現,用於將時空數據轉換爲可被列數據庫存儲一維鍵值形式,DataStore是基於GeoTools數據接口實現的用於數據訪問的標準接口.

GeoMesaSpark

SparkConf

4. 空間RDD
Accumulo RDD -> AccumuloApatialRDD

HBase RDD -> HBaseSpatialARDDProvider

FileSystem RDD -> FileSystemRDDProvider (默認的)

Converter RDD -> ConvertersPatialRDDProvider

GeoTools RDD -> GeotoolsSpatialRDDProvider

5. Spark SQL
GeoMesaSpark SQL 支持基於Spark SQl 模塊中存在的數據集/數據幀API,以提供地理空間功能,包括自定義地理空間數據類型和函數,從地理工具數據存儲創建數據幀的能力,及改進SQL查詢性能的優化

6. 重要概念
6.1 GeoMesaDataStore /GeoMesaIndexManager
GeoMesaDataStore 在進行數據表創建,數據導入,數據查詢等操作都會通過GeoMesaIndexManager類獲取空間愛你索引,然後針對每個空間愛你要素都會生成一個索引值作鍵值。

6.2 ShapefileIndest :Geomesa中導入shapefile文件
7. GeoMesa索引
GeoMesaIndexManager

日期類型屬性既可以作爲時空索引,也可以單獨的作爲屬性索引

GeoMesa會默認爲時間和空間建立索引,也可以自己指定索引

https://blog.csdn.net/An1090239782/article/details/95946215

空間索引(Z2/XZ2) Spatial Index 簡單要類型包含幾何類型屬性(點,線,面)

時空索引 Spatio-Temporal Index(Z3/XZ3) 簡單要素類型不僅包含幾何類型屬性,還包含日期屬性

Z2 [ z2] - Z2索引使用二維Z階曲線來索引點數據的緯度和經度。如果要素類型具有幾何類型,則將創建此索引 Point。這用於有效地回答具有空間組件但沒有時間組件的查詢。

Z3 [ z3] - Z3索引使用三維Z階曲線來索引點數據的緯度,經度和時間。如果要素類型具有幾何類型Point且具有時間屬性,則將創建此索引。這用於有效地回答具有空間和時間組件的查詢。

XZ2 [ xz2] - XZ2索引使用XZ-ordering [1]的二維實現來索引非點數據的緯度和經度。XZ排序是Z-排序的擴展,設計用於空間擴展對象(即非點幾何,如線串或多邊形)。如果要素類型具有非Point幾何圖形,則將創建此索引。這用於有效地回答具有空間組件但沒有時間組件的查詢。

XZ3 [ xz3] - XZ3索引使用XZ-ordering [1]的三維實現來索引非點數據的緯度,經度和時間。如果要素類型具有非Point幾何並且具有時間屬性,則將創建此索引。這用於有效地回答具有空間和時間組件的查詢。

Record / ID [ id] - 記錄索引使用功能ID作爲主鍵。它用於ID的任何查詢。此外,某些屬性查詢可能最終從記錄索引中檢索數據。

Attribute [ attr] - 屬性索引使用屬性值作爲主索引鍵。這允許在沒有時空組件的情況下快速檢索查詢。屬性索引包括輔助時空密鑰,其可以改進具有多個謂詞的查詢。

https://blog.csdn.net/An1090239782/article/details/95938690

7.1 典型查詢場景
某一個地理區域內在某個時間範圍發生的關鍵時間

一個任務區域的流量信息

給出2017年受血吸蟲病影像的區域

查詢最佳20分鐘進去颶風區域的汽車

查詢某個點附近的酒店

查找某嫌疑人在2018年8月的移動軌跡

7.2 查詢類型
時空查詢:區域 + 時間區間

空間查詢:區域信息

時序查詢:軌跡查看

屬性查詢:主題屬性信息

8. GeoMesa 寫入與查詢
https://blog.csdn.net/An1090239782/article/details/95964163

8.1 寫入
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rUWMzPTg-1577671522202)(C:\Users\ADMINI~1\AppData\Local\Temp\1572320608403.png)]

DataStore: 數據的核心訪問模型,存儲了數據集的名稱,數據結構與類型,數據訪問源信息,類似一種數據源信息的存儲幾何,用於定義和描述數據的基本信息。

SimpleFeatureType:

簡單要素類型,用於定義數據類型,類似SQL語句中create table是定義表字段時所指定的信息

SimpleFeature

簡單要素,用於定義舉得數據,可以使用Geotools 提供的SimpleFeatureBuilder 類創建

寫入

GeoMesaDataStore

創建好SimpleFeature後,就可以開始向數據庫中寫入數據了

FeatureWriter

8.2 查詢
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KHD5lxYJ-1577671522203)(C:\Users\ADMINI~1\AppData\Local\Temp\1572320584967.png)]查詢步驟

獲取要查詢的要素名稱,即SimpleFeatureType的Name

對要查詢的字段,編寫查詢條件並創建Filter類型的對象

創建Query對象,將查詢條件加入其中

執行查詢,獲得結構

FeatureReader

Query

查詢類型

最大返回條目
排序
統計查詢-查總數
聚合查詢,查每個分組的總數
統計查詢-最大值最小值
9. 空間分析
多種空間數據分析算法,如KNN、直方圖、熱點分析、TubeSelect等

10. 缺陷
不支持柵格數據存儲

空間索引基於Z曲線與GeoHash設計,存在位置突變等問題

參考
GeoMesa

hufeihu
https://blog.csdn.net/u011596455/article/details/85869199

和硬盤比記憶
https://blog.csdn.net/qq_21705851/article/category/9036552/1

地理空間大數據平臺
https://blog.csdn.net/huxuanlai/article/details/78687636
————————————————
版權聲明:本文爲CSDN博主「Freedom3568」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhanggqianglovec/article/details/103761710

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章