La transformación de datos es como una línea de producción industrial que convierte materias primas en productos terminados. Los datos brutos recopilados de diversas fuentes a menudo no están listos para el análisis — pueden necesitar limpieza, reformateo, enriquecimiento con otros datos o conversión a una estructura más eficiente. ETL (Extraer, Transformar, Cargar) es el término para todo este proceso. En el examen AWS DEA-C01, las preguntas se centran en "qué herramienta de transformación elegir, qué formato de archivo usar y cómo diseñar el procesamiento distribuido."
Comparación de Servicios ETL — ¿Qué Herramienta Se Adapta a Cada Situación?
AWS ofrece múltiples servicios para la transformación de datos. Entender para qué es bueno cada uno es la clave para responder correctamente las preguntas del examen.
| Servicio | Características | Mejor situación | |---------|----------------|----------------| | AWS Glue ETL | Completamente serverless, basado en Apache Spark, autoescalado | Transformación por lotes de datos estructurados/semiestructurados, mover datos entre S3/Redshift/RDS | | Amazon EMR | Gestiona tu propio clúster Hadoop/Spark | Procesamiento personalizado a gran escala, pipelines complejos, optimización de costos con Spot | | AWS Lambda | Completamente serverless, basado en eventos, máx. 15 minutos | Transformaciones simples, datos pequeños, trabajos activados por eventos | | Amazon Redshift | Transformación basada en SQL | Transformar y agregar datos ya cargados en Redshift |
Reglas de decisión: ¿Construyes un nuevo pipeline ETL serverless? Usa Glue ETL. ¿Tienes una carga de trabajo Hadoop/Spark existente o necesitas control fino del clúster? Usa EMR. ¿Transformación simple activada por una carga de archivo o llamada API? Usa Lambda. ¿Quieres transformar datos que ya están dentro de Redshift? Usa SQL de Redshift.
AWS Glue ETL — La Fábrica de Procesamiento de Datos Serverless
AWS Glue ETL es un servicio serverless que te permite realizar transformaciones de datos a gran escala sin gestionar ninguna infraestructura. Piensa en él como un chef (Glue) que recibe los ingredientes (datos brutos), sigue una receta (script ETL) para cocinar el plato (transformar) y luego lo sirve (entrega a S3, Redshift, etc.). Nunca tienes que comprar ni mantener la cocina.
¿Qué es un DynamicFrame?
Un DynamicFrame es la unidad básica de datos en Glue ETL, similar al DataFrame de Apache Spark pero más inteligente para manejar datos del mundo real. Si algunos registros tienen un campo "edad" y otros no, o si el mismo campo tiene tipos inconsistentes entre filas, DynamicFrame lo maneja automáticamente sin lanzar errores. Esto lo hace ideal para trabajar con datos imperfectos e inconsistentes que provienen de sistemas de producción reales.
Marcadores de trabajo de Glue (Bookmarks)
Los marcadores son la forma en que Glue "recuerda dónde lo dejó." Imagina que nuevos archivos de registro llegan a S3 cada noche. Sin marcadores, cada ejecución reprocesaría todos los archivos desde el principio. Con los marcadores activados, Glue rastrea qué archivos y registros ya ha procesado y los omite en la próxima ejecución — como un marcapáginas en un libro que te dice en qué página empezar.
Tres tipos de trabajo:
Trabajos Spark: Ideales para el procesamiento por lotes a gran escala. Distribuidos en múltiples nodos, capaces de manejar terabytes de datos. Trabajos de Streaming: Procesan datos en tiempo real de Kinesis o MSK en micro-lotes. Trabajos Python Shell: Scripts Python simples para tareas ligeras, conjuntos de datos pequeños o llamadas API.
Glue Studio
Un editor visual de arrastrar y soltar para construir pipelines ETL sin escribir código. Conectas fuentes de datos, pasos de transformación y destinos visualmente, y Glue Studio genera el código PySpark automáticamente. Esto hace que la creación de pipelines ETL sea accesible para no desarrolladores.
Selección de Formato de Archivo — ¿En Qué Contenedor Debe Vivir Tu Dato?
La elección del formato de archivo tiene un impacto importante en el rendimiento y el costo. Piensa en elegir contenedores para alimentos: el contenedor correcto mantiene la comida fresca más tiempo, es más fácil de transportar y ocupa menos espacio. El formato de datos correcto lee más rápido, cuesta menos consultarlo y se comprime mejor.
| Formato | Estructura | Compresión | Caso de uso | |---------|-----------|-----------|------------| | CSV | Basado en filas, texto | Baja | Datos brutos legibles por humanos, pequeña escala | | JSON | Basado en filas, texto | Baja | Respuestas de API, datos de estructura anidada | | Parquet | Basado en columnas (columnar), binario | Alta | Consultas analíticas (Athena, Redshift Spectrum, Spark) | | ORC | Basado en columnas, binario | Alta | Cargas de trabajo Apache Hive, EMR | | Avro | Basado en filas, binario | Media | Streaming, esquemas que cambian frecuentemente |
Por qué los formatos columnar (Parquet/ORC) son superiores para el análisis
Imagina buscar un tema en un libro. En vez de leer cada página, vas al índice y saltas directamente a la página correcta. Los formatos columnar funcionan igual. Las consultas analíticas típicamente necesitan solo unas pocas columnas de potencialmente cientos. Parquet almacena los datos columna por columna, así que solo lee las columnas revenue y date — omitiendo todas las demás por completo. En tablas con cientos de columnas, esto reduce dramáticamente tanto el tiempo de consulta como el costo.
Por qué Avro es sólido para el streaming
Avro almacena el esquema junto con los datos. Cuando el esquema cambia — se agrega un campo nuevo, se elimina uno antiguo — no necesitas reescribir los registros existentes. Los registros antiguos siguen funcionando correctamente con el nuevo esquema. Esta capacidad de evolución del esquema hace de Avro la opción natural para flujos de datos en tiempo real donde la estructura de los datos entrantes puede cambiar con el tiempo.
Reglas de selección de formato: Las consultas analíticas con Athena o Redshift Spectrum son el objetivo principal → Parquet Cargas de trabajo Apache Hive o EMR → ORC Datos de streaming o esquema que cambia frecuentemente → Avro Recibiste archivos CSV y quieres consultarlos eficientemente con Athena → Conviértelos primero a Parquet con Glue
Amazon EMR — Tú Conduces el Clúster de Procesamiento Distribuido
Amazon EMR (Elastic MapReduce) es un servicio que ejecuta frameworks de procesamiento distribuido como Apache Hadoop y Apache Spark en un clúster de instancias EC2 en AWS. Si Glue ETL es un "taxi" (serverless, sin necesidad de conducir), EMR es más como un "vehículo personal" — tienes control total pero también lo gestionas tú mismo.
Los tres roles del grupo de instancias de EMR
Nodo Maestro (Master Node): El cerebro del clúster. Distribuye el trabajo y coordina el clúster. Siempre hay exactamente un nodo maestro, y si falla, todo el clúster falla — usa instancias On-Demand aquí. Nodo Core (Core Node): Maneja el procesamiento de datos real y el almacenamiento HDFS. Si un nodo core desaparece, los datos almacenados en él pueden perderse — usa instancias On-Demand aquí también. Nodo Tarea (Task Node): Solo maneja el procesamiento, sin almacenamiento HDFS. Como los nodos tarea no almacenan datos, pueden añadirse o eliminarse en cualquier momento sin pérdida de datos. Esto los hace perfectos para Spot Instances (capacidad AWS no utilizada disponible con descuento), reduciendo significativamente los costos.
Estrategia de Spot Instances:
| Tipo de nodo | Instancia recomendada | Razón | |-------------|----------------------|-------| | Maestro | On-Demand | Esencial para la estabilidad del clúster | | Core | On-Demand | Prevenir pérdida de datos | | Tarea | Spot Instances | Sin almacenamiento de datos, ideal para ahorrar costos |
EMR Serverless
Una forma de ejecutar trabajos Spark o Hive sin configurar un clúster en absoluto. Similar a Glue ETL en el aspecto serverless, pero la diferencia clave es que EMR Serverless ejecuta código puro de Spark/Hive tal cual, mientras que Glue ETL proporciona su propia capa de API DynamicFrame.
Resumen de Puntos Clave para el Examen
| Palabra clave | Servicio/Concepto | |--------------|------------------| | ETL serverless, basado en Spark, autoescalado | AWS Glue ETL | | Procesamiento Hadoop/Spark personalizado a gran escala | Amazon EMR | | Rastrear datos ya procesados, prevenir reprocesamiento | Glue Bookmarks | | Manejo automático de discrepancias de esquema | Glue DynamicFrame | | Construir pipeline ETL sin código | Glue Studio | | Formato columnar optimizado para consultas analíticas | Parquet | | Formato columnar para cargas de trabajo Hive/EMR | ORC | | Datos de streaming, esquema que cambia frecuentemente | Avro | | Reducción de costos EMR | Usar Spot Instances en nodos Tarea | | Trabajo ETL que supera el límite de 15 minutos de Lambda | Cambiar a Glue o EMR |
Convertir CSV a Parquet es un tema recurrente del examen DEA-C01 porque mejora dramáticamente tanto la velocidad como el costo de las consultas de Athena.