Sistema de análisis de big data (Apache Spark)
El patrón de implementación de Apache Spark pretende llevar el análisis espacial a un entorno familiar para los científicos de datos que utilizan una biblioteca Spark, permitiéndoles agregar valor mediante funciones y procesos espaciales en flujos de trabajo de análisis nuevos o ya existentes. Apache Spark proporciona funcionalidades de cómputo distribuido que admiten el acceso a un amplio rango de datasets, un robusto conjunto de funcionalidades de biblioteca, la posibilidad de explorar e interactuar con análisis estructurados y la posibilidad de producir resultados que puedan ser aprovechados por una parte interesada o un proceso de negocio posterior.
La biblioteca de Spark proporcionada por Esri que potencia el patrón de sistema de análisis de big data en Apache Spark es ArcGIS GeoAnalytics Engine. ArcGIS GeoAnalytics Engine utiliza Apache Spark para acceder a más de 150 herramientas y funciones geoanalíticas nativas de la nube para comprender tendencias, patrones y correlaciones. ArcGIS GeoAnalytics Engine puede instalarse en un equipo personal o en un clúster de Spark independiente, aunque la mayoría de las organizaciones tienden a utilizar servicios de Spark administrados en la nube. Estos entornos gestionados en la nube simplifican el procesamiento de big data, logran escalabilidad, optimizan los costes, aprovechan funcionalidades analíticas avanzadas, garantizan la seguridad y el cumplimiento normativo y se benefician de los servicios gestionados y la asistencia que ofrecen los proveedores de la nube. Entre ellos se incluyen Amazon EMR, Databricks, Azure Synapse Analytics, Google Cloud Dataproc y Microsoft Fabric.
Además de ArcGIS GeoAnalytics Engine, Esri ofrece una biblioteca de Spark alternativa para el análisis espacial de big data denominada Big Data Toolkit. El Big Data Toolkit (BDT) es una solución de Esri Professional Services que ofrece algunas funcionalidades únicas y puede ser apropiado en determinados escenarios que tengan requisitos para ampliar las funciones y herramientas espaciales con funcionalidades mejoradas. Consulte las funcionalidades ampliadas para obtener más información.
Recursos relacionados:
Arquitectura base
A continuación se muestra una arquitectura base típica para un sistema de análisis de macrodatos con Apache Spark.
Este diagrama no debe tomarse tal cual y utilizarse como diseño para su sistema. Hay muchos factores importantes y opciones de diseño que deben tenerse en cuenta al diseñar su sistema. Consulte el tema de uso de patrones de sistema para obtener más información. Además, el diagrama que se muestra a continuación solo muestra las funcionalidades básicas del sistema; es posible que se necesiten componentes del sistema adicionales para obtener funcionalidades ampliadas.

Las funcionalidades representadas arriba reflejan las disponibles en julio de 2025.
Entre los componentes clave de esta arquitectura están:
- La base del sistema de análisis de big data es un entorno de Apache Spark. El entorno de Spark contiene clústeres de nodos que ejecutan tareas de análisis distribuidas. ArcGIS GeoAnalytics Engine puede funcionar en varios entornos de Spark, incluidas las implementaciones locales, las implementaciones en clústeres y los servicios de Spark administrados en la nube. Los servicios de Spark administrados admitidos son Amazon EMR, Azure Synapse Analytics, Google Cloud Dataproc, Databricks y Microsoft Fabric. Estas opciones proporcionan una ruta de implementación para las organizaciones que ya están ejecutando cargas de trabajo en un entorno de nube existente, incluidos los proveedores de nube Amazon Web Services (AWS), Google Cloud Platform (GCP) y Microsoft Azure.
- ArcGIS GeoAnalytics Engine es un plug-in de Spark y un conjunto de funciones y herramientas que se ejecutan en los nodos de un clúster de Apache Spark. Las tareas de análisis espacial se envían desde el controlador Spark a los ejecutores de Spark, donde se realiza el trabajo de análisis. Los ejecutores de Spark son administrados por un gestor de clústeres de Spark. ArcGIS GeoAnalytics Engine admite administradores de clústeres Standalone, Apache Mesos, Hadoop YARN y Kubernetes. Más información sobre el modo de clúster de Spark de ArcGIS GeoAnalytics Engine.
- GeoAnalytics Engine admite cargar y guardar datos de algunas fuentes de datos espaciales comunes, además de las fuentes de datos admitidas por Spark. Entre ellos están, entre otros, datos en almacenes de archivos, almacenes de objetos, lagos de datos y bases de datos (DBMS). Más información sobre los data store admitidos y las fuentes de datos admitidas.
- GeoAnalytics Engine amplía PySpark, la interfaz de Python para Spark, y utiliza DataFrames de Spark junto con tipos de datos geométricos personalizados para representar datos espaciales. GeoAnalytics Engine viene con varias extensiones de DataFrame para leer de fuentes de datos espaciales como shapefiles y servicios de entidades, además de cualquier fuente de datos que PySpark admita. GeoAnalytics Engine también incluye dos módulos básicos para manipular DataFrames: funciones SQL y herramientas. Los usuarios suelen interactuar con el sistema de análisis de big data a través de notebooks de Python que ejecutan Python desde su entorno de análisis de datos. Más información sobre los primeros pasos con ArcGIS GeoAnalytics Engine.
Entre las interacciones clave en esta arquitectura están:
- El código Python de PySpark, normalmente desarrollado en un notebook de Python que se ejecuta dentro del entorno de análisis de datos, se empaqueta como una aplicación y se envía al clúster de Spark. El envío del trabajo al clúster de Spark se realiza normalmente a través de TCP. Más información sobre el envío de solicitudes de Spark.
- La comunicación entre ArcGIS GeoAnalytics Engine y los data stores es bidireccional, lo que permite tanto acceder a los datos como guardarlos desde una serie de data stores admitidos. Las especificaciones técnicas de esa comunicación dependerán del tipo de data store que se utilice. Para más información, consulte el almacenamiento de datos de ArcGIS GeoAnalytics Engine.
Encontrará información adicional sobre la interacción entre ArcGIS GeoAnalytics Engine y el entorno Apache Spark en la documentación de producto ArcGIS GeoAnalytics Engine.
Capacidades
A continuación, se describen las funcionalidades del sistema de análisis de big data sobre Apache Spark.
Funcionalidades básicas
Las funcionalidades básicas representan las capacidades más comunes que ofrecen los sistemas de análisis de big data y que están habilitadas por la arquitectura de base presentada anteriormente.
- La ingesta de datos hace posible el acceso a los datos desde una serie de data store admitidos cuando se realizan tareas de análisis.
- Las uniones y relaciones espaciales hacen posible la combinación de filas de dos DataFrames basándose en una relación espacial. GeoAnalytics Engine ofrece varios mecanismos para unir datos espacialmente, así como para analizar y comprender las relaciones espaciales entre geometrías. Más información sobre las uniones espaciales y relaciones espaciales.
- Los periodos de tiempo y las relaciones temporales hacen posible el análisis utilizando el tiempo. Los periodos de tiempo dividen los datos de entrada en porciones sobre las que se realiza el análisis de forma independiente, en las que las relaciones temporales se utilizan para unir los datos temporalmente mediante la herramienta de unión espaciotemporal. Más información sobre los periodos de tiempo y las relaciones temporales.
- El análisis de patrones identifica patrones espaciales y temporales en los datos. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para el análisis de patrones, como la detección de incidentes, la búsqueda de puntos calientes, la búsqueda de ubicaciones similares y la regresión ponderada geográfica.
- El análisis de proximidad examina la proximidad de los datos espaciales con respecto a otros datos espaciales. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para el análisis de proximidad, como la búsqueda de clústeres de puntos, la agrupación por proximidad y los vecinos más cercanos.
- El análisis de resumen agrega o resume datos en estructuras de datos de orden superior. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para el análisis de integración, como agregar puntos, calcular la densidad y resumir dentro de.
- El análisis de recorridos funciona con puntos habilitados en el tiempo correlacionados con objetos en movimiento. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para el análisis de recorridos, como la reconstrucción de recorridos, el cálculo de estadísticas de movimiento y la alineación de recorridos.
- La geocodificación convierte el texto en una dirección y una ubicación. ArcGIS GeoAnalytics Engine incluye una herramienta de geocodificación que funciona con direcciones en DataFrames de Spark.
- El análisis de redes ayuda a resolver problemas comunes de las redes, con frecuencia (pero no siempre) en el caso de las redes de calles. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para el análisis de redes, como la creación de áreas de servicio, la búsqueda de instalaciones más cercanas y la generación de matrices de OD.
- La administración de datos admite operar sobre geometrías y otros campos en big data. ArcGIS GeoAnalytics Engine incluye una serie de herramientas y funciones SQL para la administración de datos, como la herramienta de cálculo de campos y muchas funciones SQL espaciales que amplían la API SQL de Spark.
- La representación cartográfica y la visualización de los resultados de los análisis es un paso poderoso para proporcionar contexto y ayudar a descubrir patrones, tendencias y relaciones. La visualización y la representación cartográfica son análogas a la elaboración de gráficos y trazados con datos no espaciales. Es una forma de verificar su análisis, iterar y crear resultados compartibles y atractivos. ArcGIS GeoAnalytics Engine permite visualizar datasets en notebooks de Python. Más información sobre la visualización de los resultados de sus análisis.
Funcionalidades extendidas
Las funcionalidades extendidas se agregan normalmente para satisfacer necesidades específicas o para admitir modelos de datos y soluciones específicos del sector, y pueden requerir componentes de software adicionales o consideraciones arquitectónicas.
Consideraciones
Las consideraciones que se exponen a continuación aplican los pilares del marco ArcGIS Well-Architected Framework al sistema de análisis de big data en Apache Spark. La información aquí presentada no pretende ser exhaustiva, sino más bien destacar las consideraciones clave para diseñar y/o implementar esta combinación específica de sistema y patrón de implementación. Más información sobre los pilares de arquitectura del marco ArcGIS Well-Architected Framework.
Fiabilidad
La fiabilidad garantiza que su sistema proporcione el nivel de servicio requerido por la compañía, así como por sus clientes y partes interesadas. Para obtener más información, consulte la descripción general del pilar de fiabilidad.
- La fiabilidad la gestiona casi por completo el entorno de Apache Spark. Hay muchos factores a tener en cuenta, como la selección de un administrador de clústeres, que también variará significativamente en función de dónde esté instalado Spark (local, clúster o servicio en la nube administrado).
- Los acuerdos de nivel de servicio son menos comunes con los sistemas de análisis de big data que con otros sistemas.
Seguridad
La seguridad protege sus sistemas y su información. Para obtener más información, consulte la descripción general del pilar de seguridad.
- La autorización para utilizar un sistema de análisis de big data se admite utilizando el nombre de usuario y la contraseña o un archivo de licencia proporcionado por Esri.
- La autenticación, el cifrado, el registro y otras consideraciones de seguridad suelen gestionarse fuera del software ArcGIS GeoAnalytics Engine, ya sea en las fuentes de datos o en el entorno de Apache Spark. Más información sobre la seguridad de Spark.
Rendimiento y escalabilidad
El rendimiento y la escalabilidad tienen como objetivo optimizar la experiencia general de los usuarios con el sistema, así como garantizar que este se adapte a las demandas cambiantes de la carga de trabajo. Para obtener más información, consulte la descripción general del pilar de rendimiento y escalabilidad.
- La ventaja de utilizar entornos basados en Apache Spark es su funcionalidad de cómputo distribuido. Muchas organizaciones cuentan con administradores de entornos gestionados en la nube que comprenden los conceptos de control de la escala de los recursos de cómputo utilizados por los clústeres y los análisis gestionados. No hay nada intrínsecamente diferente en lo que respecta al análisis espacial de big data. La realización de análisis a escala conlleva un coste. Las organizaciones deben realizar un análisis de costes y beneficios para determinar el cómputo que desean asignar al análisis espacial.
Más información sobre la puesta a punto de Spark.
Automatización
La automatización tiene como objetivo reducir el esfuerzo dedicado a la implementación manual y a las tareas operativas, lo que conduce a una mayor eficiencia operativa, así como a la reducción de las anomalías del sistema introducidas por las personas. Para obtener más información, consulte la descripción general del pilar de automatización.
- El análisis es con frecuencia iterativo, lo que requiere la revisión e intervención humana entre las ejecuciones del análisis. Sin embargo, hay situaciones en las que puede ser necesario automatizar y/o programar la ejecución de los análisis.
- Los entornos Apache Spark administrados en la nube, que ofrecen opciones de automatización adicionales y pueden ayudar a simplificar las operaciones y el uso en general, se utilizan con mucha frecuencia.
- Dado que la aplicación o interfaz principal del sistema de análisis de big data es Python, y Apache Spark proporciona un script para enviar las aplicaciones al cluster, la automatización de los envíos de análisis es sencilla y flexible.
- Los administradores de clústeres de Spark también admiten la programación de trabajos entre aplicaciones. Existen diferentes opciones de administradores de clústeres y servicios Spark gestionados en la nube, muchos de los cuales ofrecen distintas funcionalidades.
Integración
La integración conecta este sistema con otros para prestar servicios empresariales y amplificar la productividad de la organización. Para obtener más información, consulte la descripción general del pilar de integración.
Observabilidad
La observabilidad proporciona visibilidad del sistema, habilitando al personal de operaciones y a otros roles técnicos para mantener el sistema funcionando en un estado saludable y estable. Para obtener más información, consulte la descripción general del pilar de observabilidad.
- La observabilidad de un sistema de administración de big data en Apache Spark suele centrarse en la comprensión del uso y el rendimiento de la infraestructura subyacente, así como en la obtención de visibilidad sobre el estado y el progreso de los grandes trabajos analíticos por lotes. Los planteamientos para la monitorización del uso y el rendimiento de la infraestructura subyacente dependerán del entorno Apache Spark que se utilice. Los entornos administrados en la nube son populares en parte debido a sus puntos fuertes en el área de la observabilidad. La monitorización de los trabajos de Apache Spark corre a cargo de Apache Spark.
Otro
Entre las consideraciones adicionales para el diseño y la implementación de un sistema de análisis de big data en Apache Spark se incluyen:
- Para que funcione correctamente se requiere una gran comprensión y compromiso con Apache Spark. También se requiere una sólida comprensión de los conceptos de big data, datos distribuidos y análisis.
Recursos relacionados: