Cómo configurar AWS Glue ETL desde S3 a Parquet

Clase 28 de 52Curso de Big Data en AWS

Resumen

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.