En este artículo se describe una solución administrable para conseguir que grandes volúmenes de datos geoespaciales estén disponibles para el análisis.
Architecture
Descargue un archivo de Visio de esta arquitectura.
El diagrama contiene varios cuadros grises, cada uno con una etiqueta diferente. De izquierda a derecha, las etiquetas son Ingerir, Preparar, Cargar, Servir y Visualizar y explorar. Un cuadro final debajo de los demás tiene la etiqueta Supervisar y proteger. Cada cuadro contiene iconos que representan varios servicios de Azure. Las flechas numeradas conectan los cuadros de la manera que describen los pasos en la explicación del diagrama.
Flujo de trabajo
Los datos de IoT entran en el sistema:
- Azure Event Hubs ingiere flujos de datos de IoT. Los datos contienen coordenadas u otra información que identifica las ubicaciones de los dispositivos.
- Event Hubs usa Azure Databricks para el procesamiento inicial del flujo.
- Event Hubs almacena los datos en Azure Data Lake Storage.
Los datos de GIS entran en el sistema:
Azure Data Factory ingiere datos GIS de tramas y vectores de cualquier formato.
- Los datos de tramas constan de cuadrículas de valores. Cada valor de píxel representa una característica, como la temperatura o la elevación de un área geográfica.
- Los datos vectoriales representan características geográficas específicas. Los vértices, o ubicaciones geométricas discretas, son los vectores y definen la forma de cada objeto espacial.
Data Factory almacena los datos en Data Lake Storage.
Los clústeres de Spark de Azure Databricks usan bibliotecas de código geoespacial para transformar y normalizar los datos.
Data Factory carga los datos de tramas y vectores preparados en Azure Database for PostgreSQL. La solución usa la extensión PostGIS con esta base de datos.
Data Factory carga los datos de tramas y vectores preparados en Azure Data Explorer.
Azure Database for PostgreSQL almacena los datos de GIS. Las API hacen que estos datos estén disponibles en formatos estandarizados:
- GeoJSON se basa en la notación de objetos JavaScript (JSON). GeoJSON representa características geográficas simples y sus propiedades no espaciales.
- Texto conocido (WKT) es un lenguaje de marcado de texto que representa objetos de geometría vectorial.
- Los mosaicos vectoriales son paquetes de datos geográficos. Su formato ligero mejora el rendimiento de la asignación.
Una caché de Redis mejora el rendimiento al proporcionar acceso rápido a los datos.
La característica Web Apps de Azure App Service trabaja con Azure Maps para crear objetos visuales de los datos.
Los usuarios analizan los datos con Azure Data Explorer. Las características GIS de esta herramienta crean visualizaciones detalladas. Algunos ejemplos son la creación de gráficos de dispersión a partir de datos geoespaciales.
Power BI proporciona informes personalizados e inteligencia empresarial (BI). El objeto visual de Azure Maps para Power BI resalta la función de los datos de ubicación en los resultados empresariales.
A lo largo del proceso:
- Azure Monitor recopila información sobre los eventos y el rendimiento.
- Log Analytics ejecuta consultas en los registros de Monitor y analiza los resultados.
- Azure Key Vault protege las contraseñas, las cadenas de conexión y los secretos.
Componentes
Azure Event Hubs es una plataforma de streaming de macrodatos totalmente administrada. Esta plataforma como servicio (PaaS) ofrece un modelo de consumidor con particiones. Varias aplicaciones pueden usar este modelo para procesar el flujo de datos al mismo tiempo.
Azure Data Factory es un servicio de integración que funciona con datos de almacenes de datos dispares. Puede usar esta plataforma sin servidor totalmente administrada para crear, programar y orquestar los flujos de trabajo de transformación de datos.
Azure Databricks es una plataforma de análisis de datos. Sus clústeres de Spark totalmente administrados procesan grandes flujos de datos de varios orígenes. Azure Databricks pueden transformar datos geoespaciales a gran escala para su uso en análisis y visualización de datos.
Data Lake Storage es un lago de datos seguro y escalable para cargas de trabajo de análisis de alto rendimiento. Este servicio puede administrar varios petabytes de información, al mismo tiempo que mantiene un rendimiento de cientos de gigabits. Los datos provienen normalmente de varios orígenes heterogéneos y pueden ser estructurados, semiestructurados o no estructurados.
Azure Database for PostgreSQL es un servicio de base de datos relacional totalmente administrado que se basa en la Community Edition del motor de base de datos de código abierto PostgreSQL.
PostGIS es una extensión para la base de datos PostgreSQL que se integra con servidores GIS. PostGIS puede ejecutar consultas de ubicación SQL en las que intervienen objetos geográficos.
Redis es un almacén de datos en memoria de código abierto. Las cachés de Redis mantienen los datos a los que se accede con frecuencia en la memoria del servidor. Las memorias caché pueden procesar rápidamente grandes volúmenes de solicitudes de aplicación que usan los datos.
Power BI es una colección de servicios y aplicaciones de software. Puede usar Power BI para conectar orígenes de datos no relacionados y crear objetos visuales de ellos.
El objeto visual de Azure Maps para Power BI proporciona una manera de mejorar los mapas con datos espaciales. Puede usar este objeto visual para mostrar cómo afectan los datos de ubicación a las métricas empresariales.
App Service y su componente WebApps proporcionan un marco para crear, implementar y escalar aplicaciones web. La plataforma App Service ofrece mantenimiento de infraestructura integrado, revisiones de seguridad y escalado.
Las API de datos de GIS en Azure Mapas almacenan y recuperan datos de mapa en formatos como GeoJSON e iconos vectoriales.
Azure Data Explorer es un servicio de análisis de datos rápido y totalmente administrado que permite trabajar con grandes volúmenes de datos. Este servicio se centraba originalmente en series temporales y análisis de registros. Ahora también puede controlar diferentes flujos de datos de aplicaciones, sitios web, dispositivos IoT y otros orígenes. La funcionalidad geoespacial de Azure Data Explorer proporciona opciones para representar datos de mapa.
Azure Monitor recopila datos en entornos y recursos de Azure. Esta información de diagnóstico es útil para mantener la disponibilidad y el rendimiento. Monitor está formado por dos plataformas de datos:
- Registros de Azure Monitor registra y almacena datos de registro y de rendimiento.
- Métricas de Azure Monitor recopila valores numéricos a intervalos regulares.
Log Analytics es una herramienta de Azure Portal que ejecuta consultas en los datos de registro de Monitor. Log Analytics también proporciona características para crear gráficos y analizar estadísticamente los resultados de las consultas.
Key Vault almacena y controla el acceso a secretos, como tokens, contraseñas y claves de API. Key Vault también crea y controla claves de cifrado y administra certificados de seguridad.
Alternativas
En lugar de desarrollar sus propias API, considere la posibilidad de usar Martin. Este servidor de mosaicos de código abierto pone los iconos vectoriales a disposición de las aplicaciones web. Escrito en Rust, Martin se conecta a las tablas de PostgreSQL. Puede implementarlo como un contenedor.
Si su objetivo es proporcionar una interfaz estandarizada para los datos GIS, considere la posibilidad de usar GeoServer. Este marco abierto implementa protocolos de Open Geospatial Consortium (OGC) estándar del sector, como Web Feature Service (WFS). También se integra con orígenes de datos espaciales comunes. Puede implementar GeoServer como un contenedor en una máquina virtual. Cuando las aplicaciones web personalizadas y las consultas exploratorias son secundarias, GeoServer proporciona una manera sencilla de publicar datos geoespaciales.
Hay varias bibliotecas de Spark disponibles para trabajar con datos geoespaciales en Azure Databricks. Esta solución usa estas bibliotecas:
Pero también existen otras soluciones para procesar y escalar cargas de trabajo geoespaciales con Azure Databricks.
Los mosaicos vectoriales proporcionan una manera eficaz de mostrar los datos GIS en los mapas. Esta solución usa PostGIS para consultar dinámicamente mosaicos vectoriales. Este enfoque funciona bien con consultas simples y conjuntos de resultados que contienen menos de 1 millón de registros. Sin embargo, en los casos siguientes, puede ser mejor un enfoque diferente:
- Las consultas son costosas a nivel computacional.
- Los datos no cambian con frecuencia.
- Va a mostrar grandes conjuntos de datos.
En estas situaciones, considere la posibilidad de usar Tippecanoe para generar mosaicos vectoriales. Puede ejecutar Tippecanoe como parte del flujo de procesamiento de datos, ya sea como contenedor o con Azure Functions. Puede hacer que los mosaicos resultantes estén disponibles a través de las API.
Al igual que Event Hubs, Azure IoT Hub puede ingerir grandes cantidades de datos. Sin embargo, IoT Hub también ofrece funcionalidades de comunicación bidireccional con dispositivos. Si recibe datos directamente de dispositivos, pero también envía comandos y directivas a estos, considere el uso de IoT Hub en lugar de Event Hubs.
Para simplificar la solución, omita estos componentes:
- Explorador de datos de Azure
- Power BI
Detalles del escenario
Existen muchas posibilidades de trabajar con datos geoespaciales o información que incluya un componente geográfico. Por ejemplo, el software y los estándares del sistema de información geográfica (GIS) están disponibles para todo el mundo. Estas tecnologías pueden almacenar, procesar y proporcionar acceso a datos geoespaciales. Sin embargo, a menudo es difícil configurar y mantener sistemas que funcionan con estos datos. También se necesita conocimiento experto para integrar esos sistemas con otros.
En este artículo se describe una solución administrable para conseguir que grandes volúmenes de datos geoespaciales estén disponibles para el análisis. El enfoque se basa en la arquitectura de referencia de análisis avanzado y usa estos servicios de Azure:
- Azure Databricks con las bibliotecas de Spark de GIS procesa los datos.
- Azure Database for PostgreSQL consulta los datos que los usuarios solicitan a través de las API.
- Azure Data Explorer ejecuta consultas exploratorias rápidas.
- Azure Mapas crea objetos visuales de datos geoespaciales en aplicaciones web.
- La característica de objetos visuales de Power BI en Azure Maps proporciona informes personalizados
Posibles casos de uso
Esta solución se aplica a muchas áreas:
- Procesamiento, almacenamiento y provisión de acceso a grandes cantidades de datos de trama, como mapas o datos climáticos.
- Identificación de la posición geográfica de las entidades del sistema de planeamiento de recursos empresariales (ERP).
- Combinación de datos de ubicación de entidades con datos de referencia de GIS.
- Almacenamiento de telemetría de Internet de las cosas (IoT) desde dispositivos móviles.
- Ejecución de consultas geoespaciales analíticas.
- Inserción de datos geoespaciales mantenidos y contextualizados en aplicaciones web.
Consideraciones
Las consideraciones siguientes, basadas en el Marco de buena arquitectura de Microsoft Azure, se aplican a esta solución.
Disponibilidad
Event Hubs propaga el riesgo de error entre clústeres.
- Use un espacio de nombres con zonas de disponibilidad activadas para propagar el riesgo entre tres instalaciones separadas físicamente.
- Considere la posibilidad de usar la característica de recuperación ante desastres geográfica de Event Hubs. Esta característica replica toda la configuración de un espacio de nombres, desde un espacio de nombres principal hasta un espacio de nombres secundario.
Consulte las características de continuidad empresarial que ofrece Azure Database for PostgreSQL. Estas características abarcan una serie de objetivos de recuperación.
Los diagnósticos de App Service le avisan de problemas en las aplicaciones, como el tiempo de inactividad. Use este servicio para identificar y resolver problemas, como las interrupciones.
Considere la posibilidad de usar App Service para hacer una copia de seguridad de los archivos de aplicación. Sin embargo, tenga cuidado con los archivos de copia de seguridad que incluyen la configuración de aplicaciones en texto sin formato. Esa configuración puede contener secretos, como cadenas de conexión.
Escalabilidad
La implementación de esta solución cumple estas condiciones:
- Procesa hasta 10 millones de conjuntos de datos al día. Los conjuntos de datos incluyen eventos por lotes o de streaming.
- Almacena 100 millones de conjuntos de datos en una base de datos de Azure Database for PostgreSQL.
- Consulta hasta 1 millón de conjuntos de datos al mismo tiempo. Hasta 30 usuarios ejecutan las consultas.
El entorno usa esta configuración:
- Un clúster de Azure Databricks con cuatro nodos de trabajo F8s_V2.
- Una instancia optimizada para memoria de Azure Database for PostgreSQL.
- Un plan de App Service con dos instancias estándar S2.
Tenga en cuenta estos factores para determinar qué ajustes debe realizar para la implementación:
- La tasa de ingesta de datos
- El volumen de datos
- El volumen de consultas
- El número de consultas paralelas que debe admitir
Puede escalar componentes de Azure de forma independiente:
Event Hubs se escala verticalmente y de forma automática para responder a las necesidades de uso. Siga los pasos para administrar las unidades de procesamiento y optimizar las particiones.
Data Factory administra grandes cantidades de datos. Su arquitectura sin servidor admite paralelismo a distintos niveles.
Azure Database for PostgreSQL ofrece escalado horizontal de alto rendimiento.
Los clústeres de Azure Databricks cambian de tamaño según sea necesario.
Azure Data Explorer se puede escalar de forma elástica a terabytes de datos en cuestión de minutos.
Las aplicaciones web de App Service se escalan vertical y horizontalmente.
La característica de escalabilidad automática de Monitor también proporciona funcionalidad de escalado. Puede configurar esta característica para agregar recursos y administrar los aumentos de carga. También puede quitar recursos para ahorrar dinero.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Proteja los datos de mosaico vectorial. Los mosaicos vectoriales insertan coordenadas y atributos de varias entidades en un archivo. Si genera mosaicos vectoriales, use un conjunto dedicado de mosaicos para cada nivel de permiso en el sistema de control de acceso. Con este enfoque, solo los usuarios de cada nivel de permiso tienen acceso al archivo de datos de ese nivel.
Para mejorar la seguridad, use Key Vault en estas situaciones:
Consulte Seguridad en Azure App Service para información sobre cómo App Service ayuda a proteger las aplicaciones web. Tenga en cuenta también estos puntos:
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.
- Para calcular el costo de implementar esta solución, consulte un perfil de costo de ejemplo. Este perfil es para una única implementación del entorno que se describe en Consideraciones de escalabilidad. No incluye el costo de Azure Data Explorer.
- Para ajustar los parámetros y explorar el costo de la ejecución de esta solución en su entorno, use la calculadora de precios de Azure.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Richard Bumann | Arquitecto de soluciones
Pasos siguientes
Documentación del producto:
- Acerca de Azure Event Hubs
- Conceptos de Azure Databricks
- Introducción a Azure Data Lake Storage
- ¿Qué es Azure Data Factory?
- Introducción a Azure App Service
Para empezar a implementar esta solución, consulte esta información:
- Conexión de un WFS a Azure Maps
- Procesamiento de datos de OpenStreetMap con Spark.
- Explore formas de mostrar datos con Azure Maps.
Información sobre el procesamiento de datos geoespaciales
- Funciones para consultar mosaicos vectoriales de PostGIS
- Funciones para cargar tramas de PostGIS
- Funciones geoespaciales de Azure Data Explorer
- Orígenes de datos para mosaicos vectoriales en Azure Mapas
- Enfoques para procesar datos geoespaciales en Databricks
Recursos relacionados
Arquitecturas relacionadas
- Análisis de macrodatos con Azure Data Explorer
- Consorcio de datos sanitarios en Azure
- [DataOps para el almacenamiento de datos moderno][DataOps para el almacenamiento de datos moderno]
- Análisis interactivo de Azure Data Explorer
- Arquitectura de referencia geoespacial: Azure Orbital
- Análisis geoespacial para telecomunicaciones
- Análisis de datos espaciales con Azure Synapse Analytics
Guías relacionadas
- Comparación de los productos y las tecnologías de aprendizaje automático de Microsoft: Azure Databricks
- Marco de las operaciones de Machine Learning (MLOps) para escalar verticalmente el ciclo de vida de aprendizaje automático con Azure Machine Learning
- [Guía de decisión de Azure Machine Learning para una selección óptima de herramientas] [Guía de decisión de Azure Machine Learning para una selección óptima de herramientas]
- Supervisión de Azure Databricks