你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

地理空间数据处理和分析

Azure 数据工厂
Azure Data Lake Storage
Azure Database for PostgreSQL
Azure Databricks
Azure 事件中心

本文概述了一种将大量地理空间数据用于分析的可管理解决方案。

体系结构

Architecture diagram showing how geospatial data flows through an Azure system. Various components receive, process, store, analyze, and publish the data.

下载此体系结构的 Visio 文件

该关系图包含几个灰框,每个框都有不同的标签。 从左到右,标签为依次“引入”、“准备”、“加载”、“服务”和”可视化和浏览”。 其他框下的最后一个框具有标签“监视和安全”。 每个框都包含代表各种 Azure 服务的图标。 编号箭头以图表说明中描述的步骤的方式连接框。

工作流

  1. IoT 数据进入系统:

  2. GIS 数据进入系统:

    • Azure 数据工厂引入任何格式的光栅 GIS 数据和矢量 GIS 数据。

      • 光栅数据包括值网格。 每个像素值都表示一种特征,如地理区域的温度或高程。
      • 矢量数据表示特定的地理特征。 顶点或离散几何位置构成矢量并定义每个空间对象的形状。
    • 数据工厂将数据存储在 Data Lake Storage 中。

  3. Azure Databricks 中的 Spark 群集使用地理空间代码库来转换和规范数据。

  4. 数据工厂将准备好的矢量和栅格数据加载到 Azure Database for PostgreSQL 中。 解决方案对此数据库使用 PostGIS 扩展。

  5. 数据工厂将准备好的矢量和栅格数据加载到 Azure 数据资源管理器中。

  6. Azure Database for PostgreSQL 存储 GIS 数据。 API 使此数据以标准化格式提供:

    • GeoJSON 基于 JavaScript 对象表示法 (JSON)。 GeoJSON 表示简单地理特征及其非空间属性。
    • 已知文本 (WKT) 是一种表示矢量几何对象的文本标记语言。
    • 矢量图块是地理数据包。 其轻型格式可提高映射性能。

    Redis 缓存通过提供对数据的快速访问来提高性能。

  7. Azure 应用服务的 Web 应用功能与 Azure Maps 配合使用,以创建数据的视觉对象。

  8. 用户通过 Azure 数据资源管理器分析数据。 此工具的 GIS 功能创建视觉效果。 例如,基于地理空间数据创建散点图。

  9. Power BI 提供自定义的报表和商业智能 (BI)。 Power BI 的 Azure Maps 视觉对象强调了业务结果中位置数据的角色。

在整个过程中:

  • Azure Monitor 收集有关事件和性能的信息。
  • Log Analytics 对监视日志运行查询并分析结果。
  • Azure Key Vault 保护密码、连接字符串和机密。

组件

  • Azure 事件中心是一个完全托管的大数据流式处理平台。 此平台即服务 (PaaS) 提供已分区的使用者模型。 多个应用程序可以使用此模型同时处理数据流。

  • Azure 数据工厂是一种集成服务,可用于处理来自不同数据存储的数据。 可以使用此完全托管的无服务器平台来创建、计划和安排数据转换工作流。

  • Azure Databricks 是一种数据分析平台。 它的完全托管的 Spark 群集处理来自多个源的大量数据流。 Azure Databricks 可以大规模转换地理空间数据,以在分析和数据可视化效果中使用。

  • Data Lake Storage 是一种可缩放且安全的数据保护,适用于高性能分析工作负载。 这项服务可以管理 PB 量级的信息,同时保持数百千兆的吞吐量。 这些数据通常来自多个异类源,可以是结构化的、半结构化的或非结构化的。

  • Azure Database for PostgreSQL 是基于开放源代码 PostgreSQL 数据库引擎社区版本的完全托管的关系数据库服务。

  • PostGIS 是 PostgreSQL 数据库的扩展,它与 GIS 服务器集成。 PostGIS 可以运行涉及地理对象的 SQL 位置查询。

  • Redis 是一种开放源代码的内存中数据存储。 Redis 缓存在服务器内存中保留频繁访问的数据。 然后,缓存可以快速处理大量使用数据的应用程序请求。

  • Power BI 是一系列软件服务和应用。 可以使用 Power BI 连接不相关的数据源并创建它们的视觉对象。

  • 适用于 Power BI 的 Azure Maps 视觉对象提供了一种使用空间数据增强地图的方式。 你可以使用此视觉对象来显示位置数据对业务指标的影响。

  • Azure 应用服务及其 Web 应用功能提供了一个框架,用于生成、部署和缩放 Web 应用。 应用服务平台提供内置基础结构维护、安全修补程序和缩放功能。

  • Azure Maps 中的 GIS 数据 API 以 GeoJSON 和矢量图块等格式存储和检索地图数据。

  • Azure 数据资源管理器是一种快速、完全托管的数据分析服务,可处理大量数据。 此服务最初侧重于时序和 Log Analytics。 它现在还可处理来自应用程序、网站、IoT 设备和其他来源的各种数据流。 Azure 数据资源管理器中的地理空间功能提供了用于呈现地图数据的选项。

  • Azure Monitor 收集有关环境和 Azure 资源的数据。 此诊断信息有助于维护可用性和性能。 Monitor 包含两个数据平台:

  • Log Analytics 是对监视日志数据运行查询的 Azure 门户工具。 Log Analytics 还提供了用于制表和统计分析查询结果的功能。

  • Key Vault 存储和控制对机密(如令牌、密码和 API 密钥)的访问。 Key Vault 还会创建和控制加密密钥并管理安全证书。

备选方法

  • 请考虑使用 Martin,而不是开发自己的 API。 此开放源代码图块服务器使矢量图块可用于 Web 应用。 Martin 用 Rust 编写,连接到 PostgreSQL 表。 你可以将其部署为容器。

  • 如果你的目标是为 GIS 数据提供标准化接口,请考虑使用 GeoServer。 此开放式框架实现了行业标准开放地理空间信息联盟 (OGC) 协议,如 Web 地理要素服务 (WFS)。 它还与通用空间数据源集成。 可以在虚拟机上将 GeoServer 部署为容器。 如果自定义 Web 应用和探索查询是次要的,GeoServer 会提供一种发布地理空间数据的简单方法。

  • 各种 Spark 库可用来处理 Azure Databricks 上的地理空间数据。 此解决方案使用以下库:

    还存在其他解决方案,用于通过 Azure Databricks 处理和缩放地理空间工作负载

  • 矢量图块提供了一种有效的方式来在地图上显示 GIS 数据。 此解决方案使用 PostGIS 动态查询矢量图块。 此方法适用于包含少于 1 百万条记录的简单查询和结果集。 但在以下情况下,可能会有一种不同的方法:

    • 查询的计算成本高昂。
    • 数据不会频繁更改。
    • 正在显示大型数据集。

    在这些情况下,请考虑使用 Tippecanoe 来生成矢量图块。 你可以将 Tippecanoe 作为数据处理流的一部分运行,或者作为容器或使用 Azure Functions。 可以通过 API 使生成的图块可用。

  • 与事件中心一样,Azure IoT 中心可以引入大量的数据。 但 IoT 中心还提供了与设备的双向通信功能。 如果直接从设备接收数据,但同时向设备发送命令和策略,请考虑使用 IoT 中心,而不是事件中心。

  • 若要简化解决方案,请省略以下组件:

    • Azure 数据资源管理器
    • Power BI

方案详细信息

使用地理空间数据或包含地理组件的信息存在许多可能性。 例如,地理信息系统 (GIS) 软件和标准广泛可用。 这些技术可以存储、处理和提供对地理空间数据的访问。 但通常很难配置和维护使用地理空间数据的系统。 要将这些系统与其他系统集成,还需要专家知识。

本文概述了一种将大量地理空间数据用于分析的可管理解决方案。 此方法基于高级分析参考体系结构,并使用以下 Azure 服务:

  • 使用 GIS Spark 库处理数据的 Azure Databricks。
  • Azure Database for PostgreSQL 查询用户通过 API 请求的数据。
  • Azure 数据资源管理器运行快速探索性查询。
  • Azure Maps 在 Web 应用程序中创建地理空间数据的视觉对象。
  • Power BI 的 Azure Maps Power BI 可视功能提供自定义报表

可能的用例

此解决方案适用于许多领域:

  • 处理、存储和提供对大量光栅数据(例如地图或气候数据)的访问。
  • 确定企业资源规划 (ERP) 系统实体的地理位置。
  • 将实体位置数据与 GIS 引用数据组合在一起。
  • 通过移动设备存储物联网 (IoT) 遥测。
  • 运行分析地理空间查询。
  • 在 Web 应用中嵌入特选和情境化的地理空间数据。

注意事项

基于 Microsoft Azure 架构良好的框架的以下注意事项适用于此解决方案。

可用性

可伸缩性

此解决方案的实现满足以下条件:

  • 每天处理多达 1 千万个数据集。 数据集包括批处理或流式处理事件。
  • 将 1 亿个数据集存储在 Azure Database for PostgreSQL 数据库中。
  • 同时查询 1 百万或更少的数据集。 最多 30 个用户运行查询。

环境使用此配置:

  • 具有四个 F8s_V2 辅助角色节点的 Azure Databricks 群集。
  • Azure Database for PostgreSQL 的内存优化实例。
  • 具有两个标准 S2 实例的应用服务计划。

请考虑以下因素,确定要对实现进行哪些调整:

  • 数据引入速率。
  • 数据量。
  • 查询量。
  • 需要支持的并行查询数。

你可以独立缩放 Azure 组件:

Monitor 的自动缩放功能还提供了缩放功能。 你可以配置此功能,添加资源来处理增加的负载。 还可以利用此功能删除资源来节省资金。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

  • 若要估计实现此解决方案的成本,请参阅示例成本配置文件。 此配置文件适用于可伸缩性注意事项中描述的环境的单个实现。 但不包括 Azure 数据资源管理器的成本。
  • 若要调整参数并了解在你的环境中运行此解决方案的成本,请使用 Azure 定价计算器

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

首席作者:

后续步骤

产品文档:

若要开始实现此解决方案,请参阅以下信息:

有关处理地理空间数据的信息