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

GeoMesa 详细介绍相关推荐

  1. HTML页面加载和解析流程详细介绍

    浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...

  2. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

  3. php比较运算符案列,PHP实例:PHP比较运算符的详细介绍

    <PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...

  4. Tempdb数据库详细介绍

    Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...

  5. linux路由介绍,Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...

  6. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

  7. 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...

    渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...

  8. C++11 unordered_map详细介绍

    整理的算法模板合集: ACM模板 目录: 1.介绍 1.1 特性 2. 模版 2.1 迭代器 3. 功能函数 3.1 构造函数 3.2 容量操作 3.2.1 size 3.2.2 empty 3.3 ...

  9. autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)

    这片文章中我们详细讲解下每个模块的功能,上图是vector的autosar方案,每个模块的详细介绍后续会有单独文章进行讲解,请关注.以下是各个模块的简介 1.VHSM hardware Securit ...

最新文章

  1. pandas创建时间序列仿真数据并过滤(filter)时间数据:头尾数据、某年的数据、某年某月的数据、某年某月某日的数据、某个时间范围内的数据、truncate函数查看特定时间之前护着之后的数据
  2. application.yml 动态替换_新途锐改顶配矩阵大灯,动态流水尾灯
  3. 李德毅院士:未来交通——自动驾驶与智能网联
  4. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
  5. Codeforces 989C (构造)
  6. matlab读取txt数据绘图(python命令行传参)
  7. Codeforces Round #425 D
  8. 数据结构实验之排序六:希尔排序
  9. nagios监控linux主机及服务信息
  10. Redis 哨兵(sentinel)模式集群配置(5.0.3版本)
  11. Centos7下,LVM根分区扩容
  12. 对于已有的【寄存】代码,【式样】变更,【参照】其他代码修正时的注意事项!
  13. 3des 解密 java_◆JAVA加密解密-3DES
  14. Git Push,Pull,Clone出现SSL certificate problem: unable to get local issuer certificate
  15. Ajax学习笔记(1)
  16. 支持向量机SVM和最小二乘支持向量机LSSVM
  17. 02-DDL 数据定义语言
  18. cdr多页面排版_教你怎样在CDR怎样编号自动排版.doc
  19. saas平台相关内容
  20. 禅道安装/禅道远程数据库连接

热门文章

  1. 【工程师经验分享】 2 嵌入式大牛开发经验心得及其学习方向
  2. python tensorflow学习笔记(五)矩阵乘法运算
  3. kakfka2.2源码分析之handleFetchRequest
  4. 四次方程根式解+四次以上方程近似解的js实现代码(上)——复数类+复数常量+三角函数简表
  5. Signal TapII 软件的使用
  6. rog主板php,强劲的扩展能力 - 华硕ROG Zenith Extreme主板评测:地表最强X399 - 超能网...
  7. python 获取当前时间(年月日时分秒)
  8. WIN10更改不了锁屏壁纸
  9. 如何将零碎信息结构化并做到有序安放,以实现知识积累?
  10. 银河系中一定有生命存在