1. 程式人生 > >GeoMesa編譯與二次開發專欄(2) — GeoMesa簡介

GeoMesa編譯與二次開發專欄(2) — GeoMesa簡介

本篇參考的文件與部落格:
1、GeoMesa官網介紹:https://www.geomesa.org/documentation/index.html
2、阿里雲-GeoMesa開發指南:https://help.aliyun.com/document_detail/87287.html
3、HuFeiHu-Blog的部落格:https://blog.csdn.net/u011596455/article/details/75868609
4、barrycug的部落格:https://www.jianshu.com/p/b031be6bf486
5、蕭博士的部落格:https://blog.csdn.net/xiaof22a/article/details/80288096

說明

本篇部落格立足於“總結+學習”的出發點,對網上現有的關於GeoMesa的資料進行總結,便於大家也便於自己對GeoMesa有一個較全面的認識。在此,筆者衷心感謝上述各位博主的分享。

簡介

1、GeoMesa 是由locationtech開發的一套開源的地理大資料處理工具套件,可在分散式計算系統上進行大規模的地理空間查詢和分析,可幫助使用者管理、使用來自於物聯網、社交媒體、手機應用的海量的時空資料。
2、GeoMesa以分散式時空索引為核心,在此基礎上基於不同的NoSQL資料庫提供資料管理工具,並以統一的介面對外提供服務,衍生出了多個開源專案 — 目前多個活躍的開源專案(如GeoTrellis,GeoWave,GeoDocker等)都提供了對GeoMesa資料來源的支援。

定位

GeoMesa 是一個基於NoSQL的時空資料管理(儲存、查詢)與分析引擎。

使用場景

1、基礎地理資訊資料管理:GeoMesa提供的高效時空索引系統,允許使用者使用NoSQL資料庫對點、線、面等空間要素進行分散式儲存與快速查詢。
2、大規模感測網實時資料管理:GeoMesa可以與Apache Streams、Kafka、Spark等專案進行無縫銜接,用來儲存和管理實時的流式資料並進行實時分析。
3、大規模軌跡資料管理:GeoMesa提供了針對隨時間連續變化的軌跡資料的儲存模型,並提供了TubeSelect等空間查詢演算法實現基於軌跡資料的時空查詢演算法。
4、海量資料統計分析:GeoMesa提供了多種如KNN、直方圖、熱點分析等空間分析演算法,允許使用者進行空間大資料的實時分析挖掘。

儲存、查詢

1、使用 key-value資料庫儲存資料,按照鍵值對的形式進行組織、索引和儲存。將海量的時空資料(如基礎地理資訊資料、感測網實時資料、GNSS軌跡資料等)儲存到Accumulo,HBase,Google Cloud Bigtable和Cassandra資料庫(雲端儲存架構)中, Accumulo,HBase和Google Cloud Bigtable等資料庫對這些鍵進行排序,可將它們儲存在任意數量的節點(伺服器)上,並提供高效的索引來讀取、查詢資料。2、可以和Apache Storm一起處理流資料,並使用Spark進行空間分析;基於Apache Kafka提供了時空資料的近實時流處理功能。
3、支援Common Query Language (CQL),支援指定空間條件(距離和範圍)的快速查詢;通過GeoMesa API或GeoTools API進行查詢等操作。
4、與關係資料庫不同的是,key-value資料庫中頻繁使用key進行查詢;GeoMesa根據時空資料的特點,實現生成包含時空資訊的Key的演算法(Z曲線);Z曲線上的每個點都可賦予一個順序值,GeoMesa通過此順序值將經緯度表示為一個整數,將二維資料降為一維資料作為key使用。Z曲線支援多維資料,因此GeoMesa支援將多維資料降為一維資料,作為key使用。
在這裡插入圖片描述

資料訪問與視覺化

1、通過實現GeoTools介面,提供通過標準OGC介面(WMS、WFS、WPS、WCS)訪問資料的能力;通過這些介面,使用者可以方便對GeoMesa處理的資料進行展示和分析,比如查詢、直方圖、時間序列分析等。
2、以GeoServer外掛的形式為GeoServer提供讀取GeoMesa表的功能。在GeoServer中,GeoMesa資料來源以表的形式存在。
3、整合GeoServer提供視覺化功能。

架構

在這裡插入圖片描述

資料匯入

多種資料匯入方式,包括GeoMesa命令列工具,Hadoop的map-reduce作業以及Apache Storm的實時資料流。

其他

關於GeoMesa-Hbase

1、優點:
1)提供了多種空間索引方式供使用者靈活選擇。
2)提供了基於Coprocessor的空間查詢方式,將計算過程放置在server端,能夠減少通訊開銷,從而獲得很好的效能提升。
3)提供了豐富資料入庫、操作等工具,便於使用者處理資料。
4)提供了多種空間資料分析演算法,如KNN、直方圖、熱點分析、TubeSelect等。
5)基於OGC標準設計,便於系統間的整合與互操作。
6)基於RDBMS Spatial的雲資料庫產品(如Postgresql、Oracle)缺乏時空融合操作,在PB級大規模時空資料處理能力以及儲存可擴充套件性方面有待提高。而HBase for GeoMesa支援時空融合操作和分散式索引演算法,實現了多源異構資料的一體化管理和高效計算,並在此基礎上提供大規模分散式儲存及跨結點容災備份支援。同時基於雲平臺的HBase for GeoMesa可以幫助使用者應對系統運維、資料安全性等方面的挑戰,使使用者把主要精力放在時空資料的組織與應用設計上來,並節省大量的成本。

2、缺點:
目前不支援柵格資料儲存;空間索引基於Z曲線與GeoHash設計,存在位置突變等問題,仍有改進空間。