Creación y Ejecución de ETL con AWS Glue y S3

Clase 28 de 52Curso de Big Data en AWS

Resumen

¿Cómo crear y gestionar un Job en AWS Glue?

Al trabajar con grandes volúmenes de datos, la transformación de los mismos es clave. Amazon Web Services (AWS) Glue permite automatizar y escalar estas tareas de transformación mediante sus Jobs. Descubre cómo configurar y ejecutar un Job de ETL usando Glue y sigue paso a paso para optimizar tus datos.

¿Qué es un Job en AWS Glue?

Un Job en AWS Glue es un componente encargado de transformar datos. Son procesos que consisten en código de transformación que manipula los datos según se requiera. Estos son algunos pasos clave para configurar y utilizar un Job de AWS Glue:

  1. Creación del Job:

    • Accede a la consola de AWS Glue y selecciona "Jobs".
    • Haz clic en "Agregar Job" y asigna un nombre, por ejemplo, "Platzi ETL".
    • Define el rol de IAM utilizado, como "AWS Glue Service Role Platzi".
    • Elige el tipo de ejecución, ya sea Spark o Python Shell. En este caso, seleccionamos Spark.
  2. Configuración de Script:

    • Proporciona un nuevo script Python para el ETL.
    • Aprovecha las propiedades avanzadas para ajustar configuraciones como marcas de trabajo o tiempos de espera.
  3. Transformaciones ETL:

    • Edita el script Python para definir el Glue Context y especificar detalles del ETL.
    • Cambia el nombre de la base de datos y especifica directorios de salida en S3.

¿Cómo realizar transformaciones con Glue?

Para comenzar la transformación de datos, es importante definir al menos tres operaciones básicas:

  1. Creación de Dynamic Frames: Son estructuras que permiten a Glue identificar y gestionar orígenes de datos para transformaciones dinámicas.

  2. Operaciones de datos:

    • Eliminar o renombrar columnas que no son necesarias.
    • Uniones (Joins) entre tablas para consolidar información de distintas fuentes.
# Ejemplo de un Join en el script Python de Glue
joined_data = DynamicFrame.fromDF(
    memberships_df.join(persons_df, memberships_df.id == persons_df.personid),
    glueContext,
    "joined_data"
)
  1. Escritura y Formato:
    • Escribe los datos procesados en formato Parquet, que optimiza espacio y rendimiento.
    • Define el destino de escritura en S3 y particiona archivos según sea necesario.

¿Cómo automatizar y optimizar la ejecución de Jobs?

Automatizar la ejecución de Jobs es fundamental para optimizar el tiempo y recursos en un entorno profesional:

  • Uso de Crawler: Después de transformar los datos, un Crawler actualiza la metadata en AWS Glue Data Catalog.
  • Automatización con SDK de AWS: Orquesta ejecuciones automáticamente, maneja errores y asegura reintentos en caso de fallas.

¿Qué sucederá una vez finalizado el Job?

Una vez ejecutado el Job exitosamente, puedas verificar en S3 que los archivos se actualicen según lo previsto.

  • Comprueba el estado del job en la consola de AWS Glue. Debe mostrar 'succeeded' si se completó con éxito.
  • Verifica la estructuración y calidad de los datos transformados usando servicios como AWS Atena.

Las operaciones realizadas a través de AWS Glue son una vía poderosa y automatizada para manejar grandes volúmenes de datos. Estos pasos proporcionan un marco básico que se puede expandir y personalizar según las características y necesidades de cada proyecto de Big Data. ¡Continúa explorando y aprendiendo para maximizar el potencial de tus proyectos con AWS Glue y más!