Por Qué la Ingesta de Datos Es el Pilar de Todo Proyecto de ML
Quien haya trabajado en proyectos reales de ML sabe que la mayor parte del tiempo se invierte en datos, no en modelos. La preparación de datos consume entre el 70 y el 80% del tiempo de un ingeniero de ML. El examen AWS MLA-C01 refleja esta realidad al dedicar el Dominio 1 entero a la preparación de datos.
Amazon S3 Como Hub del Data Lake de ML
S3 no es simplemente un almacenamiento de objetos — es el núcleo de todo el ecosistema de ML en AWS. SageMaker lee datos de entrenamiento desde S3. Glue ETL escribe datos transformados en S3. Athena consulta S3 directamente. Kinesis Firehose entrega datos de streaming a S3.
La estrategia de particionamiento determina el rendimiento de las consultas. Usar prefijos como permite a Athena y Glue aplicar "partition pruning" y leer solo los datos necesarios. Para datos de entrenamiento, la convención es separar en , y .
La selección de clase de almacenamiento optimiza costos: S3 Standard para datos activos de entrenamiento, S3 Intelligent-Tiering para artefactos menos frecuentes, y S3 Glacier para archivos de cumplimiento a largo plazo. Las políticas de ciclo de vida automatizan estas transiciones.
S3 Select permite filtrar filas y columnas de archivos CSV, JSON y Parquet del lado del servidor con SQL, reduciendo significativamente la transferencia de datos para grandes datasets.
Formatos de Datos para ML
| Formato | Característica | Mejor Para | |---------|---------------|-----------| | CSV | Legible, universal | Prototipos, datos pequeños | | Parquet | Columnar, comprimido | Athena, Glue, análisis a gran escala | | RecordIO | Nativo de SageMaker | Algoritmos integrados (XGBoost, clasificadores de imágenes) | | TFRecord | Nativo de TensorFlow | Pipelines TF/Keras | | JSON Lines | Esquema flexible | NLP, logs de eventos |
El patrón más común en producción es ingerir en CSV/JSON, transformar a Parquet con Glue ETL o EMR, y almacenar en el data lake de S3.
Patrones de Ingesta por Lotes
AWS Glue es el servicio ETL serverless por excelencia para ML. Un Glue Crawler descubre automáticamente esquemas de S3, RDS y Redshift, registrándolos en el Glue Data Catalog. Los Jobs ETL de Glue ejecutan transformaciones PySpark a escala.
Amazon EMR es para cargas de trabajo que superan las capacidades del ETL serverless: procesamiento distribuido a gran escala con Spark, Hadoop y Hive. EMR Serverless elimina la gestión del clúster manteniendo la potencia de Spark.
AWS DMS maneja la replicación y migración de bases de datos, ideal para sincronizar continuamente una BD operacional a S3 para ML, usando Change Data Capture.
Patrones de Ingesta en Streaming
Amazon Kinesis Data Streams ofrece streaming duradero y escalable con control de throughput basado en shards. Cada shard maneja hasta 1 MB/s de entrada o 1.000 registros/s. Los datos se retienen hasta 365 días.
Amazon Kinesis Data Firehose es la ruta más sencilla desde un stream de datos hasta un destino persistente (S3, Redshift, OpenSearch). Maneja automáticamente el buffering, la compresión y el agrupamiento. Una función Lambda opcional permite transformaciones en vuelo.
Amazon MSK (Managed Streaming for Apache Kafka) es la elección correcta cuando el equipo tiene experiencia previa con Kafka o necesita sus semánticas completas.
!Ingesta por lotes vs en streaming
Modos de Entrada de Entrenamiento en SageMaker
File Mode copia todos los datos desde S3 al almacenamiento local del contenedor de entrenamiento antes de comenzar. Es el modo más simple pero puede tener alta latencia de inicialización para datasets grandes.
Pipe Mode transmite datos desde S3 al contenedor durante el entrenamiento sin copia local. Elimina costos de almacenamiento en disco y latencia de inicio. Funciona mejor con formato RecordIO.
FastFile Mode monta datos de S3 como un sistema de archivos de alto rendimiento mediante Amazon FSx for Lustre. Combina la comodidad de File Mode con el rendimiento de Pipe Mode, soportando acceso aleatorio. Es el modo recomendado para nuevas cargas de trabajo.
Puntos Clave para el Examen
"Streaming a S3 con entrega automática y transformación opcional" -- Kinesis Data Firehose con Lambda "ETL serverless, descubrimiento automático de esquemas" -- AWS Glue con Glue Crawler "Spark distribuido a gran escala" -- Amazon EMR "Control de acceso a nivel de columna/fila en data lake" -- AWS Lake Formation "Datos pre-copiados antes del entrenamiento" -- File Mode "Streaming durante entrenamiento, sin copia local" -- Pipe Mode "Montaje lazy de sistema de archivos, soporta acceso aleatorio" -- FastFile Mode