该关系图包含几个灰框,每个框都有不同的标签。 从左到右,标签为依次“引入”、“准备”、“加载”、“服务”和”可视化和浏览”。 其他框下的最后一个框具有标签“监视和安全”。 每个框都包含代表各种 Azure 服务的图标。 编号箭头以图表说明中描述的步骤的方式连接框。
IoT 数据进入系统:
Azure 事件中心
引入 IoT 数据的流。 数据包含坐标或其他标识设备位置的信息。
事件中心使用
Azure Databricks
进行初始流处理。
事件中心将数据存储在
Azure Data Lake Storage
中。
GIS 数据进入系统:
Azure 数据工厂
引入任何格式的光栅 GIS 数据和矢量 GIS 数据。
光栅数据包括值网格。 每个像素值都表示一种特征,如地理区域的温度或高程。
矢量数据表示特定的地理特征。 顶点或离散几何位置构成矢量并定义每个空间对象的形状。
数据工厂将数据存储在 Data Lake Storage 中。
Azure Databricks 中的 Spark 群集使用地理空间代码库来转换和规范数据。
数据工厂将准备好的矢量和栅格数据加载到
Azure Database for PostgreSQL
中。 解决方案对此数据库使用 PostGIS 扩展。
数据工厂将准备好的矢量和栅格数据加载到
Azure 数据资源管理器
中。
Azure Database for PostgreSQL 存储 GIS 数据。 API 使此数据以标准化格式提供:
GeoJSON
基于 JavaScript 对象表示法 (JSON)。 GeoJSON 表示简单地理特征及其非空间属性。
已知文本 (WKT)
是一种表示矢量几何对象的文本标记语言。
矢量图块
是地理数据包。 其轻型格式可提高映射性能。
Redis 缓存通过提供对数据的快速访问来提高性能。
Azure 应用服务
的 Web 应用功能与 Azure Maps 配合使用,以创建数据的视觉对象。
用户通过 Azure 数据资源管理器分析数据。 此工具的 GIS 功能创建视觉效果。 例如,基于地理空间数据创建散点图。
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 包含两个数据平台:
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 上的地理空间数据。 此解决方案使用以下库:
Apache Sedona (GeoSpark)
GeoPandas
但
还存在其他解决方案,用于通过 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 架构良好的框架
的以下注意事项适用于此解决方案。
事件中心跨群集传播故障风险
。
使用启用了可用性区域的命名空间,将风险分散到三个物理上分隔的设施中。
请考虑使用事件中心的异地灾难恢复功能。 此功能将命名空间的整个配置从主命名空间复制到辅助命名空间。
请参阅
Azure Database for PostgreSQL 提供的业务连续性功能
。 这些功能涵盖一系列恢复目标。
应用服务诊断
会提醒你在应用中遇到的问题,例如停机。 使用此服务来识别、排查和解决诸如中断之类的问题。
请考虑使用
应用服务来备份应用程序文件
。 但请注意备份文件,其中包括纯文本格式的应用设置。 这些设置可能包含类似于连接字符串的机密。
此解决方案的实现满足以下条件:
每天处理多达 1 千万个数据集。 数据集包括批处理或流式处理事件。
将 1 亿个数据集存储在 Azure Database for PostgreSQL 数据库中。
同时查询 1 百万或更少的数据集。 最多 30 个用户运行查询。
环境使用此配置:
具有四个 F8s_V2 辅助角色节点的 Azure Databricks 群集。
Azure Database for PostgreSQL 的内存优化实例。
具有两个标准 S2 实例的应用服务计划。
请考虑以下因素,确定要对实现进行哪些调整:
数据引入速率。
需要支持的并行查询数。
你可以独立缩放 Azure 组件:
事件中心会自动进行纵向扩展,以满足使用量需求。 但请采取措施来
管理吞吐量单位
并
优化分区
。
数据工厂处理大量数据。 它的
无服务器体系结构支持不同级别的并行度
。
Data Lake Storage 可通过设计进行缩放
。
Azure Database for PostgreSQL 提供
高性能水平缩放
。
Azure Databricks 群集根据需要调整大小
。
Azure 数据资源管理器可以在几分钟内弹性缩放到数 TB 的数据
。
应用服务 Web 应用可纵向扩展和横向扩展
。
Monitor 的自动缩放功能
还提供了缩放功能。 你可以配置此功能,添加资源来处理增加的负载。 还可以利用此功能删除资源来节省资金。
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅
安全性支柱概述
。
保护矢量图块数据。 矢量图块将多个实体的坐标和特性嵌入一个文件中。 如果生成矢量图块,请在访问控制系统中为每个权限级别使用一组专用的图块。 使用此方法时,只有每个权限级别的用户才能访问该级别的数据文件。
若要提高安全性,请在以下情况下使用 Key Vault:
管理事件中心用来加密数据的密钥
。
存储数据工厂在管道中使用的凭据
。
保护应用服务 Web 应用所使用的应用程序设置和机密
。
有关应用服务如何帮助保护 Web 应用的信息,请参阅
Azure 应用服务中的安全性
。 另请考虑以下几点:
了解如何
获取应用使用自定义域名时所需的证书
。
了解如何
将应用的 HTTP 请求重定向到 HTTPS 端口
。
了解
Web 应用中身份验证的最佳做法
。
成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅
成本优化支柱概述
。
若要估计实现此解决方案的成本,请参阅示例
成本配置文件
。 此配置文件适用于
可伸缩性注意事项
中描述的环境的单个实现。 但不包括 Azure 数据资源管理器的成本。
若要调整参数并了解在你的环境中运行此解决方案的成本,请使用
Azure 定价计算器
。
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
首席作者:
Richard Bumann
| 解决方案架构师
产品文档:
关于 Azure 事件中心
Azure Databricks 概念
Azure Data Lake Storage 简介
什么是 Azure 数据工厂?
Azure 应用服务概述
若要开始实现此解决方案,请参阅以下信息:
将 WFS 连接到 Azure Maps
使用 Spark
处理 OpenStreetMap 数据
。
了解通过 Azure Maps 显示数据的方法。
用于查询矢量图块的 PostGIS 的函数
用于加载 PostGIS 光栅的函数
Azure 数据资源管理器地理空间函数
Azure Maps 中矢量图块的数据源
Databricks 中处理地理空间数据的方法
使用 Azure 数据资源管理器的大数据分析
Azure 上的运行状况数据联盟
[新式数据仓库的 DataOps][新式数据仓库的 DataOps]
Azure 数据资源管理器交互式分析
地理空间参考体系结构 - Azure Orbital
面向电信行业的地理空间分析
通过 Azure Synapse Analytics 进行星载数据分析
比较 Microsoft 的机器学习产品和技术 - Azure Databricks
用于通过 Azure 机器学习提升机器学习生命周期的机器学习操作 (MLOps)
[面向最佳工具选择的 Azure 机器学习决策指南][面向最佳工具选择的 Azure 机器学习决策指南]
监视 Azure Databricks
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:
https://aka.ms/ContentUserFeedback
.
提交和查看相关反馈