Data Pipelines y ETL

La mayoría de las organizaciones almacenan datos importantes en varios sistemas diferentes, y las herramientas de carga o integración de datos, como las canalizaciones y las herramientas de extracción, transformación y carga (ETL), son fundamentales para mover los datos entre estos diferentes sistemas, de modo que puedan combinarse con otras fuentes y analizarse en comparación con ellas, o utilizarse para mantener actualizados otros datos relevantes.

Se pueden utilizar muchas soluciones técnicas diferentes para mover los datos, desde soluciones manuales en las que los datos se copian según demanda hasta sistemas automatizados que realizan complicadas transformaciones de los datos.

El uso del término «integración» en relación con Data Pipelines o ETL es complicado, ya que las integraciones suelen implicar un acceso más cercano o en tiempo real a los datos. Los ETL son una herramienta apropiada para mover datos entre sistemas cuando los cambios se producen con poca frecuencia o cuando el acceso a los datos no depende de tener la copia absolutamente más reciente de los mismos, como cuando basta con una sincronización nocturna. A este nivel, cumplen muchos requisitos de integración aunque la conexión sea de naturaleza asíncrona.

ArcGIS Data Pipelines

ArcGIS Data Pipelines es una funcionalidad de ArcGIS Online que admite la integración para conectar sus datos con ArcGIS. Con Data Pipelines, puede conectarse y leer datos desde donde están almacenados, realizar operaciones de preparación de datos y escribir los datos en una capa de entidades alojada que está disponible en ArcGIS. Puede utilizar la interfaz de Data Pipelines sin código para construir, ejecutar, programar y reproducir sus flujos de trabajo de preparación de datos.

Data Pipelines trabaja con datos vectoriales (por ejemplo, puntos, líneas y polígonos) y datos tabulares (por ejemplo, datos representados como una tabla). Puede conectarse a diversas fuentes de datos, como Amazon S3, Google BigQuery, Snowflake, capas de entidades, archivos locales cargados, etc. Una vez conectado, puede usar herramientas para combinar, crear e integrar datasets para usar en sus flujos de trabajo.

Las herramientas disponibles en Data Pipelines se clasifican en conjuntos de herramientas con funciones como limpieza, creación, integración y formato. Por ejemplo, los siguientes flujos de trabajo son compatibles con las herramientas de Data Pipelines:

  • Manipular esquemas de datasets actualizando o agregando campos
  • Seleccionar un subconjunto de campos para extraer información específica
  • Encontrar y sustituir valores de atributos para limpiar o simplificar los datos
  • Combinar datasets con la funcionalidad de unión o combinación
  • Calcular campos utilizando funciones de Arcade
  • Crear campos de geometría o de tiempo para usarlos en análisis espaciales o temporales
  • Desanidar objetos JSON en una columna
  • Asignar campos cartográficos entre esquemas

Mientras crea una canalización de datos y configura herramientas, puede obtener una vista previa de los resultados en cada paso del procesamiento en forma de mapa o tabla, ordenando opcionalmente las columnas de la tabla para inspeccionar las filas, por ejemplo los valores mínimos, máximos y nulos. La inspección iterativa y la aplicación de herramientas de preparación de datos pueden ayudar a mejorar la calidad y la garantía de los datos a lo largo de todo el proceso.

Una vez que haya completado la configuración de la canalización de datos, puede ejecutarla para crear o actualizar una capa de entidades de ArcGIS que estará disponible en su contenido. Puede configurar propiedades de geometría y tiempo para la capa de entidades de salida para que esté lista para usar en flujos de trabajo adicionales, como análisis espaciales o temporales, cuadros de mando o mapas web.

Data Pipelines pueden ser una opción adecuada cuando:

  • Una solución de sin código o con poco código resulta atractiva.
  • Crea o mantiene capas de entidades alojadas en ArcGIS Online.
  • Los servicios de salida contienen una única capa de entidades.
  • Las capas de salida no son el origen de las relaciones.
  • Se desea una herramienta SaaS administrada con el contenido de su organización.
  • La calidad de los datos se descubre por vista previa.
  • El tamaño de los datos es moderado (hasta varios millones, en función del ancho de la fila)

Para obtener más información acerca de Data Pipelines, consulte Introducción a Data Pipelines.

ArcGIS Data Interoperability

La extensión ArcGIS Data Interoperability es un conjunto de herramientas espaciales de extracción, transformación y carga (ETL) tanto para ArcGIS Pro como para ArcGIS Enterprise que se ejecuta mediante herramientas independientes o en el marco de geoprocesamiento. Data Interoperability se ha creado a partir del producto FME de Safe Software y es compatible con él.

Data Interoperability proporciona a los usuarios una experiencia de creación sin código utilizando la aplicación de escritorio de Workbench, con el trabajo guardado en archivos locales de Workbench, o como herramientas ETL espaciales en una caja de herramientas del proyecto. Las áreas de trabajo pueden conectarse a una gran variedad de fuentes de datos, realizar operaciones sencillas o complejas con los datos en tránsito y, a continuación, escribir los datos en una gran variedad de destinos. Se trata de un sistema ETL con todas las prestaciones, en el que las áreas de trabajo pueden ejecutarse manualmente para inspecciones o pruebas, automatizarse para ejecutarse de forma regular o invocarse como parte de un servicio de geoprocesamiento.

Data Interoperability proporciona tres aplicaciones de escritorio (Workbench, Data Inspector y Quick Translator) a las que se puede acceder desde ArcGIS Pro. Los resultados de la herramienta ETL también pueden compartirse con ArcGIS Server como herramientas web, como cualquier otro resultado de geoprocesamiento. Esto le permite publicar ETL a las que se puede acceder como servicios web, por ejemplo en un widget de geoprocesamiento de Web AppBuilder.

Data Interoperability puede ser una opción adecuada cuando:

  • Se desea una solución sin código.
  • En caso contrario, tiene que leer o escribir tipos de datos no admitidos.
  • Necesita dar salida a modelos de datos complejos
  • Se desea la integración del geoprocesamiento.
  • Es necesaria una inspección profunda de los datos para descubrir problemas de calidad.
  • Es necesario admitir en profundidad tipos de datos complejos (por ejemplo, Excel)

Para obtener más información acerca de Data Interoperability, consulte los siguientes recursos:

Otras opciones de ETL

Otro planteamiento habitual para construir ETL es utilizar Python, normalmente en combinación con arcpy y el módulo arcgis de la API Python de ArcGIS. La comunidad de desarrolladores de Python, junto con muchos proveedores comerciales, ha creado cientos de bibliotecas que ayudan a conectarse a casi cualquier fuente de datos imaginable, desde clientes de bases de datos a tipos de almacenamiento, analizadores de archivos y bibliotecas de clientes web. Esto significa que cualquier fuente de datos a la que pueda conectarse puede ser introducida en Python, transformada o reformada y enviada a una salida, que en un sistema basado en ArcGIS suele ser una capa de entidades editable, un archivo de imágenes o un conjunto de datos 3D.

Un patrón popular es utilizar un notebook que aproveche los protocolos de acceso a datos estándar del sector. Por ejemplo, cuando se integre con un almacén en la nube, instale el paquete de acceso a la base de datos del almacén que cumpla la norma PEP 249 para que el notebook pueda utilizar la norma SQL o el procesamiento basado en cursores.

Un patrón emergente consiste en escribir ETL basadas en Python que aprovechan el acceso remoto a archivos a través de HTTP utilizando la API S3 que ahora es común entre los proveedores de almacenamiento del sector. Este patrón se aplica a los almacenes de objetos en la nube que alojan tipos de archivo bien conocidos, como Apache Parquet, GeoParquet, JSON o CSV, y que se habilitan ampliando el entorno Python. Este planteamiento permite leer o escribir archivos como si estuvieran en una base de datos compatible con SQL, con soporte para particionar una única tabla lógica en cualquier número de archivos físicos para aprovechar el procesamiento en paralelo en el conjunto de archivos. Juntos, estos dos planteamientos le permiten realizar ETL contra almacenes en la nube y almacenes de objetos en la nube con un potente rendimiento y un completo conjunto de entidades.

Un ETL basado en Python puede ser adecuado cuando:

  • Su organización dispone de los conocimientos de Python y del ancho de banda necesarios para mantener un código base.
  • Busca maximizar y administrar cuidadosamente el rendimiento de ETL.
  • Necesita una funcionalidad especial, no admitida de otro modo, o conectividad a una fuente de datos o proveedor específico con un módulo Python disponible públicamente.

Existen muchas otras ofertas de ETL de proveedores de nube, vendedores de software independientes y a través de herramientas de código abierto. Cada una de estas ofertas admitirá entradas, procesadores y salidas diferentes, por lo que es importante tener en cuenta los requisitos de movimiento de datos de su sistema antes de elegir una oferta. Tanto ArcGIS Data Pipelines como ArcGIS Data Interoperability ofrecen una experiencia sin código e incluyen conexiones preconstruidas para escribir datos en ArcGIS, lo que puede suponer un importante aumento de la eficiencia a la hora de crear un sistema que implemente el patrón sin código.

ETL y estrategias de migración de datos

Esta sección proporciona varias estrategias de ejemplo para trabajar con flujos de trabajo de migración de datos, utilizando varias tecnologías diferentes y con consejos y directrices útiles dentro de cada estrategia. Estas muestras deben utilizarse para construir sus flujos de trabajo de migración de datos organizativos, no deben utilizarse tal cual o sin consultar.

Archivos locales conocidos

Este patrón se basa solo en ArcGIS Pro.

Uno de los formatos de archivo de uso compartido más comunes es CSV - valores separados por comas, también conocido como ASCII o archivos de texto, seguido de cerca por los libros de trabajo de Microsoft Excel. Los archivos CSV y Excel son populares por su facilidad de uso compartido, lectura (incluso por personas) y escritura en muchas aplicaciones. Los archivos CSV y Excel con columnas de coordenadas pueden utilizarse directamente en Pro, posiblemente tras la conversión de la notación de coordenadas o la geocodificación. Los temas de ayuda vinculados más arriba proporcionan una buena orientación sobre el uso de archivos estándar. Sin embargo, en un contexto ETL, en el que se desea llegar a los datos y luego prepararlos para su uso, hay otros problemas comunes que deben superarse:

  • Los archivos pueden almacenarse en la web o generarse a partir de una URL de solicitud de API
    • En estos casos, es posible que la ruta del archivo no se valide en ArcGIS Pro y que el archivo deba descargarse para su uso.
  • Los archivos tienen su esquema (nombres y tipos de columnas) inferido de los datos
    • Es posible que desee invalidar el esquema predeterminado con definiciones específicas del tipo de datos de campo
  • Las columnas de coordenadas pueden almacenarse inicialmente en una notación no admitida
  • Los valores de los datos pueden codificarse, por ejemplo, almacenando los valores nulos como ceros

Este ejemplo muestra cómo gestionar estos problemas con un esfuerzo mínimo utilizando herramientas básicas.

Archivos conocidos nativos o alojados en la nube

Este patrón se basa en ArcGIS Pro junto con un entorno ampliado de Python Notebook.

Los almacenes de objetos en la nube, como Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, MinIO u otros, ofrecen un mecanismo de uso compartido de archivos rentable y eficaz, con soporte para acceso seguro o público. Considere el almacenamiento de objetos de forma diferente a un «sistema de archivos remoto» en el almacenamiento en la nube, que a efectos de ETL puede considerarse como datos locales. Actualmente, las conexiones de almacenes en la nube en Pro admiten solo datos rásteres, por lo que la experiencia de catálogo en ArcGIS Pro, incluidas las conexiones de carpetas, no muestra datos vectoriales alojados en la nube como Apache Parquet o GeoParquet, JSON, GeoJSON, CSV o Excel, todos ellos formatos de origen ETL comunes. Esta limitación puede superarse ampliando el entorno Pro Python para que ofrezca compatibilidad con sistemas de archivos virtuales para almacenes en la nube y para tratar los archivos remotos como objetos de bases de datos relacionales, en concreto DuckDB. Los editores de datos pueden trabajar a cualquier escala, al igual que usted, por lo que la ETL de archivos conocida alojada en la nube debe ser compatible con:

  • Importación de archivos individuales
  • Importación de cualquier número de archivos simultáneamente
  • Importación de vistas espaciales o lógicas de cualquier número de archivos

Este ejemplo muestra cómo gestionar estos requisitos con las mismas herramientas flexibles.

Mantenimiento de capas de entidades con ArcGIS Data Pipelines

Este patrón utiliza Data Pipelines para mantener las capas de entidades existentes creadas por otros medios.

ArcGIS Data Pipelines puede valerse por sí misma como solución ETL, pero hay dos casos en los que puede considerarse una herramienta de mantenimiento para capas de entidades alojadas creadas por otros medios:

  • Las capas de entidades alojadas heredadas ya están en producción
  • Existen complejidades como los servicios multicapa o las clases de relación
    • Data Pipelines no pueden crear servicios con estas propiedades

Los flujos de trabajo existentes pueden ser adecuados o incluso necesarios para crear sus capas, pero no ofrecer las ventajas de facilidad de uso, modelo de uso compartido de la organización, alojamiento SaaS y capacidad de programación de Data Pipelines. En esta situación puede considerar Data Pipelines como una herramienta de mantenimiento.

Este ejemplo muestra un ejemplo sencillo de mantenimiento de capas alojadas.

Notebooks de ArcGIS Online y GeoParquet nativo en la nube

Este patrón utiliza un notebook de Python alojado en ArcGIS Online con un entorno de ejecución de Python ampliado para acceder a un almacén de objetos en la nube que contiene datos en formato GeoParquet.

La ampliación de los entornos de ejecución de ArcGIS Pro y ArcGIS Enterprise Notebooks Server son patrones comunes, pero un patrón menos conocido puede lograr el mismo resultado en un notebook alojado en ArcGIS Online. Las bibliotecas Python disponibles en los tiempos de ejecución estándar de Python incluyen los administradores de paquetes conda y pip, siendo pip generalmente la opción más sencilla. Si se encuentra en la necesidad de conectarse a un sistema externo que ofrezca una interfaz Python, es probable que esté disponible y se instale de forma sencilla desde PyPi.

Este ejemplo utiliza pip para ampliar el tiempo de ejecución local del notebook y DuckDB para acceder a los datos del tema Lugares de la Fundación Overture Maps, un ejemplo de acceso a un almacén de objetos de Amazon S3 mediante una consulta de partición hive, es decir, en este caso se accede a cualquier número de archivos GeoParquet mediante una consulta comodín. Una vez accedidos y consultados, los datos se utilizan para refrescar una capa de entidades alojada de lugares de interés en Londres, Inglaterra (y podría admitir cualquier otra ubicación del mundo).

Los notebooks de ArcGIS Online y un almacén de datos en la nube

Este patrón utiliza un notebook en línea con un entorno de ejecución ampliado para admitir la lectura o escritura de Snowflake. Se puede acceder a cualquier almacén en la nube de forma similar.

Este patrón es similar al de los notebooks de ArcGIS Online y al de GeoParquet nativo de la nube, en el sentido de que utiliza un contenedor de tiempo de ejecución ampliado, pero agrega la capacidad de procesamiento de un almacén en la nube. ArcGIS Pro y Enterprise admiten la conectividad con Snowflake y otros almacenes de datos en la nube para crear capas de consulta, que pueden utilizarse como entrada para herramientas de geoprocesamiento o visualizarse en mapas de ArcGIS Pro o mapas web, pero el uso de este patrón aporta la potencia de SQL al procesamiento de su notebook Online. Además de ser una base de datos, un almacén en la nube es también un ecosistema de uso compartido de datos: otras organizaciones pueden compartir datos de cualquier escala en el almacén y combinarlos para generar perspectivas y nuevos resultados.

Este ejemplo mantiene una capa de entidades alojada de lugares de interés de San Francisco, California (o de cualquier otro lugar del mundo que usted defina). Los datos proceden del dataset Lugares de SafeGraph, partner comercial de Esri.

Automatización de metadatos

Este patrón utiliza ArcGIS Pro y la extensión ArcGIS Data Interoperability para automatizar la creación o importación de metadatos durante el procesamiento ETL.

Documentar el contenido y los pasos de procesamiento de los elementos en ArcGIS es clave para la usabilidad y la confianza, pero es una actividad que se pasa por alto con facilidad, lo que hace que la automatización de los pasos generativos sea muy valiosa. En ETL se trabaja con frecuencia con datos externos, otra desconexión frecuente con el flujo de metadatos de ArcGIS.

Este ejemplo muestra cómo incorporar la creación o recolección de metadatos a los flujos de trabajo ETL que mantienen un servicio de entidades alojado, pero es igualmente válido con otras salidas, como las geodatabases.

Conexiones OLE DB y ODBC

Este patrón utiliza ArcGIS Pro y conexiones OLE DB para conectarse a una fuente de datos externa compatible con ODBC.

Aunque ArcGIS admite muchas plataformas de bases de datos populares, en ArcGIS Pro pueden realizarse más conexiones a datos relacionales, locales o remotos, utilizando fuentes de datos OLE DB estándar del sector. Amplían las opciones de conexión a bases de datos en ArcGIS Pro, haciendo accesibles fuentes de datos adicionales para la representación cartográfica, la ingeniería de datos y los flujos de trabajo analíticos, incluido el ETL. Las conexiones pueden compartirse a través de su red. Si necesita trabajar con datos de una base de datos externa, las conexiones OLE DB son una opción sencilla y normalmente disponible. Más allá de cualquier soporte integrado en ArcGIS, algunos lagos de datos y almacenes en nube también ofrecen controladores ODBC para simplificar la conectividad.

Este ejemplo muestra cómo las herramientas de ArcGIS pueden utilizar una conexión OLE DB para enriquecer datos tabulares no admitidos, aplicando un esquema deseado y enviando el resultado persistido como una clase de entidad de la geodatabase.

Acceso a API remotas

Este patrón utiliza ArcGIS Pro y la extensión ArcGIS Data Interoperability para interactuar con una API que devuelve grandes respuestas a través de la paginación, en trozos de JSON que luego necesitan ser analizados para ser procesados.

Las API REST basadas en HTTP suelen devolver una respuesta JSON, popular por su combinación de legibilidad (por personas o equipos) y flexibilidad, pero los objetos JSON están poco tipados y con frecuencia desestructurados y desordenados. Por motivos reactivos, las API pueden devolver un dataset lógico en trozos («páginas»), generados secuencialmente, pero que deben agregarse al cliente. Estos dos retos de la paginación y el análisis sintáctico en un esquema definido se resuelven fácilmente con una estrategia de poco código.

Este ejemplo muestra cómo interactuar con una API de paginación para sincronizar datos diariamente con una capa de entidades alojada en ArcGIS Online.

Programación de ETL como herramientas web

Este patrón utiliza ArcGIS Pro, las herramientas web de ArcGIS Enterprise y, si lo desea, ArcGIS Data Interoperability.

Quizá el planteamiento organizativo más extendido para cualquier trabajo, informatizado o no, sea la repetición en un horario. A partir de ArcGIS Pro 3.4 y ArcGIS Enterprise 11.4, las herramientas web (servicios de geoprocesamiento) creadas en ArcGIS Pro también pueden programarse en ArcGIS Pro. Las herramientas de geoprocesamiento que realizan el trabajo ETL pueden crearse como herramientas de script Python, modelos ModelBuilder o herramientas ETL espaciales de ArcGIS Data Interoperability, compartirse como herramientas web y, a continuación, programarse desde el menú Ejecutar de la herramienta en ArcGIS Pro. La clave para que este patrón funcione es asegurarse de que los parámetros de sus datasets de entrada y salida están registrados en ArcGIS Enterprise o son accesibles a éste y no se cargan como copias estáticas en el momento de la publicación.

Este ejemplo proporciona un ejemplo de una herramienta web ETL espacial programada para ejecutarse dos veces al día con el fin de reflejar un feed RSS en una capa de entidades alojada en ArcGIS Online.

Top