Análisis y procesamiento de datos geoespaciales

Azure Data Factory
Azure Data Lake Storage
Azure Database for PostgreSQL
Azure Databricks
Azure Event Hubs

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

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

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

  1. 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.
  2. 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.

  3. Los clústeres de Spark de Azure Databricks usan bibliotecas de código geoespacial para transformar y normalizar los datos.

  4. 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.

  5. Data Factory carga los datos de tramas y vectores preparados en Azure Data Explorer.

  6. 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.

  7. La característica Web Apps de Azure App Service trabaja con Azure Maps para crear objetos visuales de los datos.

  8. 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.

  9. 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:

  • 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

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:

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.

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:

Pasos siguientes

Documentación del producto:

Para empezar a implementar esta solución, consulte esta información:

Información sobre el procesamiento de datos geoespaciales