一、 需求背景
- 时空数据存储的需求愈发庞大,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 体系架构
体系架构.png蓝色标识的是用户接口,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 数据写入流程
导入流程.png数据导入流程从左向右,可以通过
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
并没有进行二次开发,只是进行了封装。
网友评论