GeoMesa时空基础及应⽤场景

推荐视频讲解 1h https://yq.aliyun.com/live/793

基础概念

数据库时空引擎

在这里插入图片描述

OGC 空间要素对象表达

  • SimpleFeature :时空要素的抽象表达,默认还有Geometry字段
  • SimpleFeatureTpye:要素元数据描述,包括:字段名、类型、空间参考等,类比数据库表结构
  • WKT: Well-known text,用来描述SimpleFeature 对象
    在这里插入图片描述

GeoMesa 简介

  • GeoMesa是⼀一款开源的基于分布式计算系统的⾯面向海海量量时空数据查询与分析的⼯工具包
  • GeoMesa基于GeoTools API进⾏行行设计,与GeoServer等进⾏行行集成提供OGC标准的服务
  • ⽀支持多种可扩展的、基于云端的数据存储架构,包括Apache Accumulo, HBase,Cassandra,Google Bigtable,以及⽤用于流计算的Apache Kafka 。
  • 提供了了Spark,并增加了了正对空间数据的UDT、UDF和UDAF,⽅方便便⽤用户直接使⽤用Spark SQL
    进⾏行行空间数据查询与分析

官网 https://www.geomesa.org/
在这里插入图片描述

GeoMesa 体系架构

GeoMesa的源码可以在GitHub官方页面下到。GeoMesa代码库本身比较复杂,包含了大量的子模块,除了自身所带的一些基础工具模块外,还提供了基于目前主流的分布式存储系统的扩展模块,但是在了解了GeoMesa的架构之后,读者应该不难看出整个工程还是有规律可循的,比如geomesa-index-api提供了最核心的空间数据索接口(GeoMesaFeatureIndex)与数据访问(GeoMesaDataStore)等基础接口类,然后基于此模块分别有geomesa-accumulo,geomesa-hbase,geomesa-cassandra等扩展模块。两外还包括一些其他的辅助模块,如geomea-jobs提供了对MapReduce的支持等,geomea-utils提供了一些被广泛使用的工具类

详细见博客 https://blog.csdn.net/u011596455/article/details/85869199

时空基础 : 空间填充曲线与GeoHash

时空索引 R 树

解决了在高维空间搜索等问题,Oracle Spatial、Mysql Spatial、PostgreSql(PostGIS) 都是基于R树进行空间搜索操作,即对时空字段(Geometry Column) 创建R树索引。
详细见博客
https://blog.csdn.net/qq_18298439/article/details/96278997

为什么使用空间填充曲线
R树存在的问题:

  • 单独创建索引文件
  • 数据更新问题
    为了达到平衡状态,新掺入数据需要更新整个R树
  • 不适合NoSQL 的存储结构
    Hbase 本身只提供基于行键和全表扫面的查询,而行键索引单一,对于多维度的查询困难

空间填充曲线的优点是将多维空间转换成一维曲线

空间填充曲线

在这里插入图片描述
Z 曲线 Hibert曲线最常用

空间查询

在这里插入图片描述

  • 用户定义查询窗口
  • 层次划分
  • 计算查询范围(Range)

GeoHash 原理

GeoHash将⼆二维的经纬度转换成字符串串(Base32编码),如下图展示了了9个区域的GeoHash字符串串,
分别是WX4ER,WX4G2、WX4G3等,每⼀一个字符串串代表了了某⼀一矩形区域。
在这里插入图片描述

  • 字符串越长,表示的范围越小越精确;字符串长度越小,表示的范围越大越宽泛;
  • 字符串越相似表示距离越相近;

GeoMesa Hbase 时空索引

GeoMesa时空索引

GeoMesa使用了基于Z-order填充曲线的GeoHash空间索引技术,
并针对时间维度进行了扩展,具体分为:
• Z2:空间,点索引
• Z3:时间+空间,点索引
• XZ2 :空间,线\面索引
• XZ3 :时间+空间,线\面索引
Z2 在这里插入图片描述
Z3
在这里插入图片描述
GeoMesa时空索引具体实现:
https://github.com/locationtech/sfcurve
https://github.com/locationtech/geomesa/tree/master/geomesa-z3

GeoMesa HBase 索引

在这里插入图片描述

RowKey设计

在这里插入图片描述

  • 属性索引
    在这里插入图片描述
  • Z-Index Shards: 预拆分,范
    围为1-127,默认为4
    在这里插入图片描述
  • Z-Index Time Interval
    在这里插入图片描述
    https://www.geomesa.org/documentation/user/datastores/index_config.html

时空查询-Query Planning

在这里插入图片描述
索引选择顺序

  1. Feature ID predicates using the ID index
  2. High-cardinality attribute predicates using the attribute index
  3. Attribute equality predicates using the attribute index
  4. Spatio-temporal predicates using the Z3/XZ3 index
  5. Attribute range predicates using the attribute index
  6. Spatial predicates using the Z2/XZ2 index
  7. Temporal predicates using the Z3/XZ3 index

在这里插入图片描述

GeoMesa HBase应⽤用场景

https://blog.csdn.net/xiaof22a/article/details/80215787

GeoTools DataStore接⼝口
• SimpleFeature:空尽要素的抽象表达,默认含有Geometry字段
• SimpleFeatureType:要素元数据描述,包括:字段名、类型、空间参考等,类似表结构
• DataStore:要素数据集,对应RDBMS中的数据库,定义了了⽤用户操作数据的接⼝口
• FeatureSource:⽤用于数据查询
• FeatureStore: FeatureSource⼦子类,增加数据更更新功能
• SimpleFeatureCollection:数据要素结合,按需加载
• Query:数据查询类,封装了了查询条件
在这里插入图片描述

GeoMesa Kafka DataStore

  • 使⽤用Kafka作为数据存储DataStore
  • 通过GeoTools DataStore标准接⼝口进⾏行行访问
  • Consumer与Producer可以分布在不不同server
  • ⽀支持要素缓存,定时写⼊入kafka
    -在这里插入图片描述

GeoMesa Lambda DataStore

• 数据存储在两个层:transient tier (Kafka)
和 a persistent tier(HBase)
• 数据定时写⼊入持久层
• 使⽤用ZK同步数据缓存状态,保证数据⼀一次
写⼊入
• 进⾏行行数据查询会从两个存储层分别进⾏行行,
然后合并查询结果返回给⽤用户

在这里插入图片描述

https://www.geomesa.org/documentation/user/lambda/index.html

GeoMesa GeoJSON/REST API

优点:

  1. 系统便于部署
  2. 基于REST服务,操作灵活方便
  3. 全部使用GeoJSON进行编码,方便与
    其他系统集成
    缺点:
  4. 功能比GeoTools API弱,不支持属
    性索引、排序等高级功能
  5. Server端容易成为系统瓶颈
    在这里插入图片描述
    https://www.geomesa.org/documentation/user/geojson.html

支持Spark⼤大数据分析

提供了用于空间数据分析的SpatialRDD 模型

  • 提供了多种时空函数实现,如
    buffer,contains等
  • 扩展Spark SQL以支持ISO SQL/MM标
    准与OGC SF/SQL 标准的时空查询
    在这里插入图片描述

阿⾥里里云HBase Ganos
在这里插入图片描述
访问:https://cn.aliyun.com/product/hbase 查询详细信息

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
Geomesa是一个开源的地理空间分析工具和库,它提供了高效的空间数据处理功能。Geomesa Windows教程是针对使用Windows操作系统的用户提供的教学材料,旨在帮助他们快速上手和使用GeomesaGeomesa Windows教程通常涵盖以下几个方面: 1. 环境准备:首先,需要确保Windows操作系统已经安装和配置好,并且具备一定的计算资源、存储空间和网络连接。 2. Geomesa安装和配置:接下来,需要下载和安装Geomesa软件包,并进行相应的配置。Geomesa可以与Apache Hadoop、Apache Spark和Apache Accumulo等配套使用,所以也需要相应的安装和配置。 3. 数据导入和查询:通过Geomesa,可以将地理空间数据导入到相应的数据存储中,如Hadoop分布式文件系统(HDFS)或者Accumulo数据库。然后,可以使用Geomesa提供的查询功能来进行地理空间数据的分析和检索。常见的操作包括空间范围查询、属性过滤、空间关系分析等。 4. 可视化和结果展示:Geomesa还提供了一些可视化工具和库,可以将地理空间数据进行可视化展示。通过这些工具,可以将结果以地图的形式展示出来,增加用户对数据的直观理解和分析。 需要注意的是,Geomesa Windows教程通常会基于具体的版本和使用场景来进行详细说明,所以用户需要根据自己的实际情况选择合适的教程和资料。另外,Geomesa的学习和使用还需要一定的地理空间数据和编程基础,对于初学者来说可能需要一些时间和精力来学习和掌握。但一旦熟悉了Geomesa的使用方法和技巧,将可以更高效地进行地理空间数据处理和分析工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值