Construcción de pipelines ETL con AWS Glue - Diseño de crawlers y jobs
Detecta esquemas automáticamente con crawlers y ejecuta procesamiento ETL con jobs de Glue. Esta guía cubre patrones de uso del Data Catalog y desarrollo visual con Glue Studio.
Crawlers y el Data Catalog
Los crawlers de Glue escanean automáticamente más de 30 fuentes de datos incluyendo S3, RDS, Redshift y DynamoDB, detectando esquemas (definiciones de tablas, nombres de columnas, tipos de datos) y registrándolos en el Data Catalog. Cuando especificas una ruta de S3, el crawler identifica automáticamente los formatos de archivo (CSV, JSON, Parquet, ORC, etc.) y detecta estructuras de partición. Las ejecuciones programadas del crawler reflejan automáticamente nuevas particiones y cambios de esquema en el catálogo. El Data Catalog es compatible con Hive metastore, permitiendo que Athena, Redshift Spectrum y EMR referencien definiciones de tablas comunes al ejecutar consultas.
Diseño de jobs de Glue
Los jobs de Glue usan Python (PySpark) o Scala para escribir scripts ETL que se ejecutan en un entorno Spark serverless. DynamicFrame es una estructura de datos específica de Glue que maneja flexiblemente inconsistencias de esquema donde diferentes tipos de datos coexisten en la misma columna usando ResolveChoice. El editor visual de Glue Studio permite colocar fuentes (S3, RDS, Kafka, etc.), transformaciones (filtro, join, agregación) y destinos (S3, Redshift, DynamoDB, etc.) como nodos para diseñar jobs ETL sin código. Los job bookmarks registran la posición de los datos procesados, permitiendo el procesamiento incremental que apunta solo a datos no procesados en ejecuciones posteriores.
Calidad de datos y Glue Studio
Glue Data Quality define reglas de calidad de datos (DQDL) y valida automáticamente los datos dentro de los pipelines ETL. Puedes escribir declarativamente reglas para completitud (ratios de valores NULL), unicidad (verificaciones de duplicados) e integridad referencial (verificaciones de existencia de claves foráneas), deteniendo jobs o emitiendo alertas cuando las puntuaciones de calidad caen por debajo de los umbrales. Glue Studio es un editor ETL visual donde conectas fuentes, transformaciones y destinos mediante arrastrar y soltar para construir jobs ETL sin codificación. También proporciona un entorno de notebook para probar interactivamente código PySpark y convertirlo en jobs de producción. El versionado de Glue gestiona el historial de cambios de scripts de jobs, permitiendo rollback cuando surgen problemas. Para una comprensión más profunda de los métodos de análisis ETL, los libros especializados en Amazon son útiles.
Optimización de costos de Glue
Los precios de los jobs de Glue se basan en horas de DPU (Data Processing Unit), donde 1 DPU equivale a 4 vCPUs y 16 GB de memoria. Glue 4.0 usa Auto Scaling para ajustar automáticamente el número de DPUs según la carga del job, previniendo el sobreaprovisionamiento. La clase de ejecución Flex está diseñada para jobs por lotes no urgentes y es aproximadamente un 35% más económica que la ejecución estándar. Optimiza la frecuencia de ejecución del crawler para que coincida con la frecuencia de actualización de datos y evita escaneos innecesarios. Usa job bookmarks para omitir datos previamente procesados, reduciendo costos y tiempo de procesamiento mediante procesamiento incremental. Monitorea la utilización de DPU con métricas de CloudWatch y reduce los conteos de DPU para jobs con utilización consistentemente baja.
Resumen
Glue proporciona una solución integrada con detección automática de esquemas mediante crawlers, jobs ETL basados en Spark serverless y un Data Catalog compatible con Hive. Data Quality valida automáticamente reglas de calidad de datos, y el editor visual de Glue Studio permite la construcción de jobs ETL sin codificación. Los job bookmarks permiten el procesamiento incremental, y la clase de ejecución Flex reduce los costos para jobs no urgentes en aproximadamente un 35%.