Una de las partes más difíciles de ejecutar pipelines de datos es gestionar el trabajo repetitivo. Procesar los datos de ventas del día anterior cada mañana a las 8 AM, ejecutar transformaciones cada vez que llega un nuevo archivo a S3, generar informes semanales — nada de esto puede hacerse manualmente a escala. La automatización significa hacer que los sistemas realicen este trabajo en su lugar. Las preguntas del examen DEA-C01 sobre automatización preguntan qué tipo de disparador (basado en tiempo o en eventos) usar y qué servicios combinar.
Automatización basada en tiempo — Ejecutar según un horario
La forma más intuitiva de automatización es "ejecutar esto a una hora específica", como una alarma recurrente para su pipeline de datos.
EventBridge Scheduler: La función de programación de AWS EventBridge. Use expresiones cron para tiempos precisos o expresiones rate para intervalos. Por ejemplo, se ejecuta todos los días a las 8 AM. Los destinos incluyen funciones Lambda, máquinas de estado de Step Functions, trabajos de Glue, colas SQS y más.
MWAA (Amazon Managed Workflows for Apache Airflow): Apache Airflow es una herramienta de orquestación de flujos de trabajo de código abierto. Se escriben DAGs (Grafos Acíclicos Dirigidos) en Python para definir dependencias entre tareas. MWAA es la versión totalmente gestionada de Airflow en AWS: no se requiere instalación ni mantenimiento de servidores.
Cuándo elegir MWAA: Pipelines complejos de múltiples etapas (extraer → transformar → validar → cargar) Tareas con dependencias intrincadas entre ellas Pipelines que necesitan lógica de reintento en caso de fallo Equipos que ya usan Airflow y quieren migrar DAGs existentes
EventBridge Scheduler vs MWAA:
| Aspecto | EventBridge Scheduler | MWAA | |---------|----------------------|------| | Complejidad | Simple | DAGs complejos soportados | | Gestión | Completamente serverless | Entorno de servidor gestionado | | Mejor para | Programación de trabajo único | Flujos de trabajo de múltiples pasos | | Modelo de costo | Por evento | Por tiempo de ejecución del entorno |
Automatización basada en eventos — Ejecutar cuando algo sucede
En lugar de un horario, el procesamiento comienza automáticamente cuando ocurre un evento específico.
S3 Event → Lambda: En el momento en que se carga un archivo en un bucket S3, una función Lambda se activa automáticamente. Por ejemplo, cuando llega un archivo CSV, Lambda puede leerlo, validar los datos y escribir solo los registros válidos en DynamoDB, todo sin intervención humana. Configure esto en los ajustes de Notificaciones de Eventos del bucket S3 apuntando a un destino Lambda.
DynamoDB Streams → Lambda: Cada vez que se inserta, actualiza o elimina un elemento de una tabla DynamoDB, el cambio se escribe en DynamoDB Streams. Lambda sondea el stream y procesa cada evento de cambio. Usos comunes: enviar una notificación cuando el estado de un pedido cambia a "Entregado", o actualizar una tabla de resumen cuando llegan nuevos registros.
Ventajas de los patrones basados en eventos: Sin espera inactiva: el procesamiento comienza en el instante en que llegan los datos Costo cero cuando no hay datos que procesar El rendimiento escala automáticamente con el volumen de eventos
Automatización de consultas Athena
Athena es un servicio serverless para analizar datos S3 con SQL. Estas consultas también pueden automatizarse.
StartQueryExecution API: El método del SDK de AWS para Athena. Desde dentro de una función Lambda o un trabajo de Glue, puede activar una consulta Athena en código. Después de iniciar la consulta, use para verificar su finalización y luego para recuperar los resultados.
Athena Notebooks: Un entorno de notebook interactivo impulsado por Apache Spark. Combine SQL y Python (PySpark) para hacer análisis exploratorio y transformaciones complejas de forma interactiva, sin gestionar ninguna infraestructura.
CTAS (Create Table As Select): Cree una nueva tabla a partir de los resultados de una consulta Athena. Pre-agregar consultas costosas y almacenar los resultados como tabla Parquet reduce drásticamente el costo y la latencia de las consultas posteriores.
DataBrew — Preparación de datos sin código
AWS Glue DataBrew es una herramienta visual de preparación de datos. Los no desarrolladores pueden limpiar y transformar datos haciendo clic en una interfaz similar a una hoja de cálculo, sin necesidad de código.
Características principales:
Más de 250 transformaciones integradas: Estandarizar formatos de fecha, rellenar valores faltantes, eliminar duplicados, normalizar texto, dividir columnas, combinar columnas y más, todo mediante clics. Perfilado de datos: DataBrew analiza automáticamente un conjunto de datos y calcula estadísticas a nivel de columna (media, mín/máx, tasa de valores faltantes, conteo de valores únicos). Esto le da una visión rápida de los problemas de calidad de datos antes de comenzar a limpiar. Recetas: Cada paso de transformación que aplica se registra como una receta. Guarde la receta y aplíquela a un conjunto de datos diferente, o prográmela para ejecutarse automáticamente de forma recurrente. Reglas de calidad: Defina reglas que los datos deben satisfacer. Por ejemplo, "la columna de edad debe estar entre 0 y 150." DataBrew marca o separa automáticamente los registros que violan las reglas.
Cuándo usar DataBrew: Analistas de negocio sin conocimientos de SQL o Python necesitan limpiar datos El trabajo repetitivo de limpieza de datos necesita estandarizarse en una receta reutilizable Quiere entender visualmente los problemas de calidad de datos antes de escribir código de transformación
Automatización basada en SDK — Boto3
Boto3 es el SDK de Python para AWS. Casi todos los servicios de AWS pueden controlarse mediante código Boto3. Úselo cuando quiera automatizar un pipeline completamente en código.
Patrones comúnmente usados: Iniciar un trabajo de Glue: Copiar un archivo S3: Ejecutar una consulta Athena: Leer un elemento DynamoDB:
Combinar Boto3 con Lambda le permite responder a horarios de EventBridge o eventos S3 y ejecutar lógica de pipeline compleja con control programático total.
Puntos clave del examen
"Ejecutar un trabajo único a una hora programada" → EventBridge Scheduler "Programar un flujo de trabajo complejo de múltiples pasos" → MWAA (Apache Airflow) "Procesar automáticamente datos cuando llega un archivo a S3" → S3 Event → Lambda "Reaccionar automáticamente a cambios en DynamoDB" → DynamoDB Streams → Lambda "Ejecutar consultas Athena desde código" → StartQueryExecution API "Guardar resultados de consultas Athena como nueva tabla" → CTAS "Limpiar datos sin escribir código" → DataBrew "Guardar y reutilizar pasos de transformación DataBrew" → Recipe "Controlar servicios AWS con Python" → Boto3