一、 需求背景
- 时空数据存储的需求愈发庞大,80%的信息与空间信息有关;
- 时空数据时用于整合其他各种类型数据的基础;
- 对完善的时空大数据存储解决方案的需求日益迫切。
二、Geomesa简介
-
Geomesa是一款开源的基于分布式计算系统的面向海量时空数据查询与分析的工具包,可用于交通轨迹数据存储分析等相关领域。 - Geomesa可以在分布式列数据库的基础上进行扩展,目前支持
Accumulo,HBase,Cassandra和Kafka等作为底层存储。 - 提供高效的索引来读取和查询存储的数据,支持通过指定空间条件(距离和范围)来快速查询,基于kafka提供了时空数据的近实时流处理能力。
- 提供了
Spark分析能力,增加针对空间数据的UDT、UDF、UDAF,方便用户直接使用SparkSQL进行空间数据查询与分析。 -
Geomesa基于GeoTools API设计,与GeoServer进行集成。
三、Geomesa特性
- 能够存储和处理海量时空数据
- 支持实时性强、需要快速读写的数据
- 支持
spark分析 - 支持水平扩展(存储介质)
- 通过
GeoServer提供地图服务,支持Common Query Language(CQL) -
GeoMesa扩展了数据的字段类型,主要支持的类型如下所示。
四、 Geomesa架构与流程
4.1 服务架构
GeoMesa支持多种可扩展的、基于云端的数据存储架构,包括Apache Accumulo, Apache HBased,Google Cloud Bigtable以及用于流计算的Apache Kafka 。同时GeoMesa还可以和Apache Storm一起处理流数据,并使用Spark进行空间分析。

4.2 体系架构

蓝色标识的是用户接口,GeoMesa提供了geomesa-web这类使用restful接口形式访问的接口、geomesa-tools的javaAPI接口,最常用的是geomesa-tools接口。
最重要的部分是黄色标识的索引部分,GeoMesa还进行了多种数据库扩展功能,底层可以连接Accumulo、Cassandra、Hbase等NoSql数据库。
4.3 Geomesa的GeoTools
为了方便用户使用GeoMesa中存储的数据,GeoMesa通过实现GeoTools接口提供了使用OGC标准服务接口访问数据的能力。
OGC标准:Open Geospatial Consortium, 是一个指定与空间信息、基于位置服务相关的标准的组织。举例:GeoMesa中用到了OGC标准中的SimpleFeatures标准,该标准用来进行简单要素对象的通用描述。
GeoMesa实现了OGC的Web Feature Service(要素web服务)、Web Mapping Service(地图web服务)、 Web Processing Service(地理处理web服务)、 Web Coverage Service标准(栅格web服务)。
4.4 数据写入流程

数据导入流程从左向右,可以通过
spark任务、mapreduce任务、strom流处理等不同的任务来调用GeoMesa提供的API或GeoTools API进行数据写入,在写入数据时GeoMesa为数据创建实行索引、featureID索引、空间索引、时空索引等,完成数据导入流程。
4.5 数据查出流程
通过GeoMesa API或GeoTools API从Accumulo中进行数据查询,把数据读出来。

查询流程首先从右向左,QueryClient发起查询请求,GeoMesa根据查询请求选择可用的最优索引从底层拉取数据,通过API将结果返回。
五、 Geomesa优缺点
优点:
(1)支持Spark大数据分析。
提供了用于空间数据分析的SpatialRDD模型;
提供了多种时空函数实现,如buffer、contains等;
扩展Spark SQL以支持标准的时空查询

举例SparkSQL进行空间查询:

(2)多种空间索引,最大化优化查询
(3)提供基于
Coprocessor的空间查询方式,将计算放在Server端,减少数据通讯开销,性能较好。
缺点:
(1)时空索引构建采用Z-ordering会存在距离突变情况。
(2)目前不支持栅格数据存储
六、 hbase ganos
6.1 Ganos简介
Hbase Ganos时空引擎是基于LocationTech 开源项目 GeoMesa 开发的一套时空大数据引擎系统。HBase Ganos提供一系列时空索引(点、线、面)、数据类型、查询算法,基于阿里云NoSQL分布式存储系统中对空间/时空数据进行高效的存储、索引、查询和分析计算。
6.2 Ganos使用场景
基础地理信息数据管理:
HBase Ganos提供的高效时空索引系统,允许用户使用NoSQL数据库对点、线、面等空间要素进行分布式存储与快速查询。
大规模传感网实时数据管理:
HBase Ganos可以Stream流式计算框架、MQ、Spark分析框架等进行无缝衔接,用来存储和管理实时的流式数据并进行实时分析。
大规模轨迹数据管理:
HBase Ganos提供了针对随时间连续变化的轨迹数据的存储模型,并提供了TubeSelect等空间查询算法实现基于轨迹数据的时空查询算法。可广泛应用在网约车、共享单车、船只、飞行器等领域的轨迹存储与查询。
海量数据统计分析:
HBase Ganos提供了多种如KNN、直方图、热点分析等空间分析算法,允许用户进行空间大数据的实时分析挖掘。
6.3 Ganos优势
(1)PB级存储与海量并发写入。
(2)多种空间索引方式供用户灵活选择。
(3)基于Coprocessor的空间查询与计算方式,将计算过程放置在server端,能够最大化并行效率,从而获得较好的性能提升。
(4)提供了多种空间数据分析算法,如KNN、直方图、热点分析、TubeSelect等。
(5)基于OGC标准设计,便于系统间的集成与互操作。
(6)冷热数据存储分离与无缝访问。
(7)基于阿里云HBase专业运维,全托管方式,提供可靠稳定的服务。
相比GeoMesa,Ganos并没有进行二次开发,只是进行了封装。