Aprende a crear un ETL en AWS Glue con confianza: desde configurar el job, transformar datos con dynamic frame y escribir en S3 en formato Parquet, hasta catalogar con Crawler y consultar en Athena. Verás cómo pasar de datos crudos a información organizada y consultable con pasos claros y replicables.
¿Cómo crear y configurar un job de AWS Glue para ETL?
Configurar el job define la base de la transformación. Se elige motor, permisos y dónde vivirá el script. Todo empieza en Glue, sección Jobs, agregando el job “Platzi ETL” y seleccionando el rol de servicio.
¿Qué parámetros clave definen el job?
- Tipo de ejecución: Spark (también existe Python Shell, pero aquí usamos Spark).
- Script: nuevo script proveído por nosotros en Python.
- Almacenamiento: bucket de S3 por defecto para el script.
- Propiedades avanzadas: marcas de trabajo y seguridad deshabilitadas por ahora.
- Librerías externas: opción para cargarlas desde S3.
- Capacidad y ejecución: timeout, número de retries y etiquetas para el job.
- Triggers y conexiones: no se agregan en esta configuración inicial.
¿Cómo preparar el script y el contexto de Glue?
- Abrir “Guardar job y Editar”.
- Pegar el script del ETL y ajustar parámetros clave.
- Inicializar el Glue Context: ya validado previamente en ejecución local.
- Base de datos fuente: cambiar a “platzi-db”.
- Directorio de salida en S3: usar “target-platzi” en todas las rutas de escritura.
¿Cómo transformar datos con DynamicFrame y escribir en S3 en Parquet?
La transformación combina limpieza, normalización y uniones. Con dynamic frames, Glue infiere esquemas y facilita operaciones sobre datos semiestructurados antes de escribir resultados optimizados en Parquet.
¿Qué operaciones de limpieza y join aplicar?
- Creación de dynamic frames para las tres tablas origen.
- Limpieza: eliminar columnas que no aportan valor.
- Estandarización: rename de campos para consistencia.
- Enriquecimiento: join entre personas y membresías usando “membership ID” y “person ID”.
- Resultado: una tabla agregada más útil para análisis.
Habilidades puestas en práctica:
- Modelado con dynamic frame: gestión flexible de esquemas.
- Transformaciones: limpiar, renombrar y unir datos.
- Diseño de salidas: definir tablas resultantes y estructura deseada.
¿Cómo escribir en S3 y optimizar con Parquet?
- Conexión de escritura: tipo S3 indicando el path del bucket de salida.
- Formato: Parquet por su menor tamaño y mejor rendimiento que JSON.
- Estrategia de salida: un archivo simple en un subdirectorio y otro particionado por “org name”.
- Ejecución: “Action” → Run Job; se monitoriza el estado hasta “succeeded”.
- Observabilidad: revisar logs y error logs ante fallas; opción de depurar paso a paso en Zeppelin local.
Conceptos y keywords importantes:
- Glue Job: unidad de ejecución para ETL en Glue.
- Spark: motor distribuido usado por el job.
- Parquet: formato columna optimizado para análisis.
- Particionamiento: mejora consultas filtrando por “org name”.
¿Cómo catalogar con Crawler y consultar en Athena la data transformada?
Tras escribir en “target-platzi”, es clave actualizar el catálogo para habilitar consultas SQL. Se logra con un Crawler que detecta esquemas y crea tablas en el Glue Catalog.
¿Cómo actualizar el Glue Catalog con un Crawler?
- Crear o editar el Crawler para apuntar al directorio “target-platzi”.
- Base de datos: crear “Platzi DB Transformed” para separar lo transformado.
- Ejecutar el Crawler: detecta la nueva estructura y agrega tres tablas al catálogo.
- Buenas prácticas en producción: orquestar ejecución, retries y crawlers con la SDK de AWS para automatizar.
Datos y habilidades destacadas:
- Glue Catalog: metadatos centralizados para lectura por servicios analíticos.
- Crawler: descubrimiento automático del esquema en S3.
- Automatización: robustez y repetibilidad en flujos de big data.
¿Cómo validar y consultar en Athena?
- Abrir Athena y seleccionar “Platzi DB Transformed”.
- Usar “preview” para verificar estructura y muestra de datos.
- Ejecutar consultas sobre tablas transformadas: ver campos organizados como rol, asientos, tipo, área, fecha de nacimiento y género.
- Caso ilustrativo: miembros del Senado de Estados Unidos, ahora estructurados y listos para análisis.
¿Listo para llevarlo a tu contexto? Comparte en comentarios qué fuentes en S3 quieres transformar y cómo planeas particionar tus salidas en Parquet.