Semana 9 · Módulo 9 de 11
Datos, analítica y machine learning: ingesta, transformación y servicios de IA
Aprenderás a diseñar la ingesta (streaming y por lotes), la transformación y la explotación de datos en AWS: Kinesis, Data Firehose, MSK, Glue, Athena, Lake Formation, EMR, Redshift, OpenSearch y Amazon Quick, más los servicios de IA preentrenados y SageMaker AI. Es el task statement 3.5 completo y una fuente constante de preguntas «¿qué servicio encaja?».
- Elegir entre Kinesis Data Streams, Amazon Data Firehose, Amazon MSK y Amazon SQS según latencia, orden, retención y esfuerzo operativo
- Dimensionar un stream de Kinesis (shards, modo on-demand o provisioned, retención) a partir de tamaños y velocidades de negocio
- Diseñar y proteger un data lake en Amazon S3 con AWS Glue Data Catalog, AWS Lake Formation y Amazon Athena
- Transformar datos entre formatos (CSV/JSON a Parquet) y reducir el coste de las consultas con formatos columnares, compresión y particionado
- Seleccionar el cómputo adecuado para procesar datos (Lambda, Glue, EMR en sus variantes, Redshift) y la estrategia de visualización (Amazon Quick, OpenSearch Dashboards, Grafana)
- Asociar cada tarea de IA con su servicio (Comprehend, Lex, Polly, Rekognition, Textract, Transcribe, Translate) y saber cuándo hace falta SageMaker AI
Índice del módulo
- Reparto de la semana
- Por qué importa
- Conceptos base: frecuencia, tamaño y formato
- Amazon Kinesis Data Streams
- Amazon Data Firehose
- Amazon MSK (Managed Streaming for Apache Kafka)
- Tabla de decisión: KDS frente a Firehose, MSK y SQS
- Amazon Kinesis Video Streams
- Servicios de transferencia de datos en contexto
- Seguridad de los puntos de ingesta
- El data lake en Amazon S3
- AWS Glue
- Amazon Athena
- AWS Lake Formation
- Amazon EMR
- Amazon Redshift (analítica)
- Amazon OpenSearch Service
- Amazon Quick (antes Amazon QuickSight)
- Estrategias de visualización
- AWS Data Exchange
- Amazon Elastic Transcoder (retirado)
- Arquitecturas de referencia
- Servicios de IA y machine learning
- Trampas típicas del examen
- Resumen
- Cobertura del temario
Reparto de la semana
| Día | Qué hacer | Tiempo |
|---|---|---|
| Lunes | Conceptos de ingesta (lotes, streaming, near real-time), formatos y particionado. Kinesis Data Streams a fondo | 2 h |
| Martes | Amazon Data Firehose, Amazon MSK y la tabla comparativa con SQS. Kinesis Video Streams | 2 h |
| Miércoles | Data lake en S3: Glue (Data Catalog, crawlers, ETL, DataBrew), Athena y Lake Formation | 2 h |
| Jueves | EMR (EC2, EKS, Serverless), Redshift (Spectrum, Serverless, RA3), OpenSearch, Amazon Quick, Data Exchange | 2 h |
| Viernes | Servicios de IA/ML y SageMaker AI. Arquitecturas de referencia | 2 h |
| Sábado | lab-18-streaming-y-athena completo (con limpieza) y repaso de las trampas |
3-4 h |
| Domingo | Test del módulo, tarjetas y repaso de los fallos | 2-3 h |
Por qué importa
Casi todas las empresas tienen el mismo problema: datos que llegan de muchos sitios (aplicaciones, dispositivos, bases de datos, ficheros de socios) a ritmos distintos y que alguien quiere consultar, cruzar y visualizar. El task statement 3.5, Determine high-performing data ingestion and transformation solutions, pregunta exactamente eso: cómo capturar datos, cómo transformarlos y dónde analizarlos con el rendimiento y el coste adecuados.
El examen no te pedirá escribir código Spark ni SQL complejo. Te dará un escenario («10.000 sensores envían lecturas cada segundo», «los analistas quieren consultar con SQL ficheros CSV en S3 sin gestionar servidores», «hay que convertir los datos a Parquet antes de guardarlos») y te hará elegir el servicio o la combinación correcta. Las palabras clave deciden: real-time, near real-time, replay, ordering, serverless, LEAST operational overhead, ad hoc queries, columnar, fine-grained access.
Además, este módulo cubre los servicios de IA preentrenados (Comprehend, Polly, Rekognition…), que la guía menciona en el task statement 2.2 como ejemplos de servicios gestionados con casos de uso concretos, y Amazon EMR como opción de cómputo (task statement 3.2).
Conceptos base: frecuencia, tamaño y formato
Patrones de ingesta según la frecuencia
| Patrón | Qué significa | Latencia típica | Servicios que encajan |
|---|---|---|---|
| Por lotes (batch) | Se acumulan datos y se procesan cada cierto tiempo (cada hora, cada noche) | Minutos a horas | S3 + Glue ETL / EMR, DataSync, AWS DMS (carga completa), Transfer Family |
| Micro-lotes / near real-time | Se procesan pequeños bloques cada pocos segundos o minutos | Segundos a minutos | Amazon Data Firehose (con buffering), Glue streaming ETL |
| Streaming / real-time | Cada registro se procesa en cuanto llega, con orden y posibilidad de relectura | Milisegundos a pocos segundos | Kinesis Data Streams, Amazon MSK, Managed Service for Apache Flink, Lambda como consumidor |
| Mensajería desacoplada | Un productor deja trabajos para que un consumidor los procese una vez | Milisegundos a segundos | Amazon SQS, Amazon SNS, EventBridge (módulo 08) |
Tamaños y velocidades
El temario pide conocer sizes and speeds needed to meet business requirements. En la práctica, antes de elegir servicio haz tres cuentas:
- Caudal de entrada: registros por segundo × tamaño medio del registro. Ejemplo: 5.000 lecturas/s de 2 KB = 10 MB/s.
- Caudal de lectura: cuántas aplicaciones leen los mismos datos y a qué velocidad.
- Volumen acumulado y retención: cuántos días hay que guardar los datos en el sistema de ingesta y cuántos en el almacenamiento final.
Con eso puedes dimensionar un stream (cuántos shards), elegir el modo de capacidad y estimar el coste. Lo verás aplicado en Kinesis Data Streams.
Formatos de fichero, compresión y particionado
- Formatos por filas: CSV, JSON, Avro. Fáciles de producir; para leer una columna hay que leer la fila entera.
- Formatos columnares: Apache Parquet y Apache ORC. Guardan cada columna junta, comprimen muy bien y permiten leer solo las columnas de la consulta. Son la respuesta cuando el enunciado habla de «reducir el coste de Athena», «consultas analíticas más rápidas» o columnar format (también aparece en el task statement 4.3: time series format, columnar format).
- Compresión: GZIP, Snappy, ZSTD… Menos bytes almacenados y escaneados.
- Particionado: organizar los objetos por prefijos tipo
dt=2026-09-30/opais=es/. Los motores (Athena, Redshift Spectrum, EMR, Glue) leen solo las particiones que cumplen el filtroWHERE. - Formatos de tabla abiertos: Apache Iceberg (y Hudi o Delta Lake) añaden transacciones, actualizaciones y viajes en el tiempo sobre ficheros Parquet en S3. Athena, Glue, EMR, Redshift y Firehose soportan Iceberg; para el examen basta con saber que existen.
Amazon Kinesis Data Streams
Kinesis Data Streams (KDS) es un servicio de streaming en tiempo real: los productores escriben registros y uno o varios consumidores los leen, en orden, durante el periodo de retención. Piensa en un registro de eventos (log) distribuido, duradero y que se puede releer.
Shards, partition key y orden
- Un stream se divide en shards (fragmentos). Cada shard es una secuencia ordenada de registros.
- Cada registro lleva una partition key. AWS la convierte en un hash y decide en qué shard cae. Todos los registros con la misma clave van al mismo shard y conservan el orden.
- Capacidad por shard (modo provisioned, verificado en la documentación de cuotas): escritura hasta 1 MB/s o 1.000 registros/s; lectura hasta 2 MB/s o 2.000 registros/s compartidos por los consumidores estándar (
GetRecords, hasta 5 lecturas por segundo por shard). - Si una clave concentra mucho tráfico aparece un hot shard y errores
ProvisionedThroughputExceededException. Solución: claves con más cardinalidad (por ejemplo,idDispositivoen lugar depais) o más shards. - Tamaño de registro: la documentación actual admite cargas de hasta 10 MiB por registro (antes base64), pensadas para registros grandes ocasionales. El material antiguo dice 1 MB: si una pregunta vieja lo menciona, recuerda que el límite ha cambiado, pero el diseño correcto para ficheros grandes sigue siendo guardar el objeto en S3 y enviar la referencia.
Modos de capacidad
| On-demand | Provisioned | |
|---|---|---|
| Gestión de shards | Automática: escala con el tráfico | Tú decides cuántos shards (y haces resharding con UpdateShardCount, split o merge) |
| Capacidad inicial | Por defecto, 4 MB/s de escritura y 8 MB/s de lectura; escala hasta 200 MB/s de escritura en la mayoría de regiones (10 GB/s en N. Virginia, Oregón e Irlanda) | La suma de tus shards |
| Pago | Por datos escritos y leídos (más un cargo por stream y hora en la variante Standard) | Por shard y hora + unidades PUT |
| Cuándo | Tráfico impredecible o nuevo, LEAST operational overhead | Tráfico estable y previsible, control fino del coste |
Puedes cambiar de modo dos veces cada 24 horas por stream. La documentación de 2026 menciona además un modo On-demand Advantage (sin cargo por stream y hora, con un compromiso mínimo de caudal); es una novedad que no esperarías en el examen.
Retención y relectura
La retención por defecto es de 24 horas y se puede ampliar hasta 365 días (8.760 horas) con coste adicional. Durante ese tiempo cualquier consumidor puede releer (replay) desde un punto concreto: por eso KDS encaja cuando hay que reprocesar tras un fallo o añadir un consumidor nuevo que lea el histórico.
Consumidores
- Lambda (mapeo de origen de eventos): procesa lotes de registros por shard. La opción serverless más habitual.
- Kinesis Client Library (KCL) en EC2, ECS o EKS: aplicaciones propias que coordinan la lectura con una tabla de DynamoDB.
- Amazon Data Firehose: puede usar un stream como origen para entregar a S3, Redshift, OpenSearch…
- Amazon Managed Service for Apache Flink: análisis con estado (ventanas, agregaciones, detección de anomalías) sobre el stream. Sustituye a Kinesis Data Analytics for SQL, que llegó a su cierre total el 27/01/2026; no lo elijas aunque aparezca en material antiguo.
- Enhanced fan-out: cada consumidor registrado recibe su propio caudal de lectura por shard (en lugar de compartir los 2 MB/s) con entrega por push (
SubscribeToShard). Úsalo con muchos consumidores o cuando la latencia de lectura importa. Hasta 20 consumidores registrados por stream en los modos habituales.
Seguridad
- Acceso con IAM (políticas de identidad) y, si hace falta entre cuentas, políticas basadas en recursos del stream.
- Cifrado en reposo con AWS KMS (clave gestionada por AWS o por ti) y en tránsito con TLS.
- Interface VPC endpoint (AWS PrivateLink) para que productores en subredes privadas escriban sin pasar por Internet ni por NAT.
Dimensionar un stream: ejemplo
Una app de movilidad recibe 3.000 posiciones por segundo de 1 KB (≈3 MB/s) y tres consumidores estándar leen todo.
- Escritura: 3 MB/s → al menos 3 shards (1 MB/s cada uno). Registros: 3.000/s → también 3 shards.
- Lectura: 3 consumidores × 3 MB/s = 9 MB/s → con lectura compartida (2 MB/s por shard) harían falta 5 shards; con enhanced fan-out, cada consumidor tiene su propio caudal y bastan 3.
- Si el tráfico se duplica los viernes y no quieres gestionarlo: on-demand.
Amazon Data Firehose
Amazon Data Firehose (antes Kinesis Data Firehose; renombrado en 2024) es el servicio totalmente gestionado para cargar datos en streaming en un destino. No hay shards que dimensionar ni consumidores que programar: configuras origen, transformación opcional y destino.
Cómo funciona
- Orígenes: Direct PUT (tu aplicación, el agente de Kinesis, CloudWatch Logs, AWS IoT, EventBridge…), un Kinesis Data Stream o un clúster de Amazon MSK.
- Buffering: Firehose acumula datos por tamaño o por intervalo y entrega cuando se cumple lo primero. Para S3, el tamaño va de 1 a 128 MB (5 MB por defecto) y el intervalo de 0 a 900 s (300 s por defecto). Por eso es near real-time: segundos o minutos, no milisegundos.
- Transformación con Lambda: una función recibe lotes, los modifica (limpiar, enriquecer, pasar CSV a JSON) y los devuelve.
- Conversión de formato: convierte JSON a Apache Parquet u ORC antes de escribir en S3. Necesita el esquema en una tabla del AWS Glue Data Catalog. Si la entrada es CSV u otro formato, primero una Lambda la pasa a JSON. Con la conversión activada, el buffer mínimo es de 64 MiB.
- Particionado dinámico: crea prefijos en S3 a partir de campos del propio registro (por ejemplo,
cliente=123/), ideal para Athena. - Compresión (GZIP, Snappy, ZIP…) y cifrado SSE-KMS en S3.
- Copia de seguridad en S3 de los registros originales o de los fallidos.
- Escalado automático: no hay capacidad que gestionar.
Destinos
Según la documentación actual: Amazon S3, tablas Apache Iceberg, Amazon Redshift (Firehose escribe en S3 y lanza un COPY), Amazon OpenSearch Service y OpenSearch Serverless, puntos de conexión HTTP y una lista larga de terceros (Splunk, Snowflake, Datadog, New Relic, Dynatrace, MongoDB Atlas, Elastic, Sumo Logic…).
Amazon MSK (Managed Streaming for Apache Kafka)
Amazon MSK ejecuta Apache Kafka de código abierto gestionado por AWS: crea los brokers repartidos por AZ, sustituye los que fallan y gestiona los metadatos (ZooKeeper o, en versiones recientes, KRaft).
- MSK Provisioned: eliges número y tipo de brokers (Standard o Express) y el almacenamiento.
- MSK Serverless: sin dimensionar brokers; pagas por uso.
- MSK Connect: ejecuta conectores de Kafka Connect para mover datos desde y hacia otros sistemas.
- MSK Replicator: replica entre clústeres (incluso entre regiones).
Elige MSK cuando el enunciado diga «ya usamos Kafka», «migrar Kafka local sin cambiar el código», «compatibilidad con el ecosistema de Kafka» o conceptos propios de Kafka (topics, partitions, consumer groups). Si no hay dependencia de Kafka y se busca lo más simple, Kinesis suele ser la respuesta.
Tabla de decisión: KDS frente a Firehose, MSK y SQS
| Criterio | Kinesis Data Streams | Amazon Data Firehose | Amazon MSK | Amazon SQS |
|---|---|---|---|---|
| Qué es | Stream de registros ordenados por shard | Entrega gestionada a destinos | Apache Kafka gestionado | Cola de mensajes |
| Latencia | Tiempo real (ms-s) | Near real-time (buffer de segundos a minutos) | Tiempo real | ms-s |
| Consumidores | Varios, independientes | Uno: el destino configurado | Varios (consumer groups) | Normalmente un grupo de workers; el mensaje se borra tras procesarse |
| Relectura (replay) | Sí, durante la retención | No | Sí, durante la retención | No |
| Retención | 24 h por defecto, hasta 365 días | No almacena (solo buffer) | Configurable en Kafka | De 1 minuto a 14 días (4 días por defecto) |
| Orden | Por shard (partition key) | No aplicable | Por partición | Solo en colas FIFO (por message group) |
| Transformación incluida | No (la hacen los consumidores) | Lambda, conversión a Parquet/ORC, particionado dinámico | No (Kafka Streams, Flink…) | No |
| Gestión de capacidad | Shards (provisioned) o automática (on-demand) | Ninguna | Brokers (provisioned) o ninguna (Serverless) | Ninguna |
| Tamaño máximo por mensaje | Hasta 10 MiB por registro | Límites propios del servicio | Configurable en Kafka | 1 MiB (más con la Extended Client Library y S3) |
| Señal en el enunciado | real-time analytics, multiple consumers, replay, ordering | load into S3/Redshift/OpenSearch, convert to Parquet, no administration | Apache Kafka, migrate existing Kafka | decouple, buffer requests, each message processed once |
Amazon Kinesis Video Streams
Kinesis Video Streams ingiere vídeo en directo (y otros datos serializados en el tiempo: audio, imágenes térmicas, radar) desde millones de dispositivos: cámaras de seguridad, móviles, drones, coches. Almacena el vídeo cifrado durante la retención que configures, lo indexa por tiempo y permite reproducirlo en directo o procesarlo frame a frame o por lotes (por ejemplo, con Amazon Rekognition Video o modelos propios en SageMaker AI). También ofrece WebRTC para comunicación bidireccional de baja latencia.
Señal en el examen: «transmitir vídeo de cámaras a AWS para analizarlo» → Kinesis Video Streams (no Kinesis Data Streams, que es para registros de datos).
Servicios de transferencia de datos en contexto
El temario 3.5 incluye data transfer services with appropriate use cases (for example, AWS DataSync, AWS Storage Gateway). Se explican a fondo en el módulo 03 (almacenamiento) y AWS DMS en el módulo 04; aquí tienes el mapa para decidir la ingesta de datos no streaming:
| Necesidad | Servicio | Nota |
|---|---|---|
| Copiar o sincronizar ficheros (NFS, SMB, HDFS, otros clouds) a S3, EFS o FSx, una vez o programado | AWS DataSync | Agente on-premises, cifrado en tránsito, verificación de integridad, limitación de ancho de banda |
| Que las aplicaciones locales sigan escribiendo en NFS/SMB/iSCSI mientras los datos acaban en AWS | AWS Storage Gateway (S3 File Gateway, Volume Gateway, Tape Gateway) | Híbrido permanente con caché local. El tipo FSx File Gateway ya no admite clientes nuevos |
| Socios que envían ficheros por SFTP, FTPS, FTP o AS2 | AWS Transfer Family | Endpoint gestionado que escribe en S3 o EFS |
| Migrar o replicar bases de datos (carga completa + CDC) | AWS DMS | Destino S3 en Parquet o CSV, Redshift, Kinesis… |
| Datos SaaS (Salesforce, SAP, Zendesk…) a S3 o Redshift | Amazon AppFlow | Módulo 08 |
| TB/PB sin red suficiente | AWS Snow Family (concepto) | En la realidad AWS ya no ofrece dispositivos Snow a clientes nuevos; ver módulo 03 |
Seguridad de los puntos de ingesta
El temario pide secure access to ingestion access points. Aplica defensa en profundidad:
- Identidad: roles de IAM con mínimo privilegio para productores y consumidores (
kinesis:PutRecordsolo en el stream concreto;firehose:PutRecordBatchsolo en su Firehose). Nada de claves de acceso fijas en dispositivos: usa roles, Amazon Cognito para apps móviles o credenciales temporales. - Red privada: interface VPC endpoints para Kinesis Data Streams, Firehose, Glue o Athena; gateway endpoint para S3 (gratuito). Así el tráfico no sale a Internet ni paga NAT Gateway.
- Políticas de recursos: políticas de bucket que solo acepten escrituras desde un VPC endpoint (condición
aws:SourceVpce) o desde el rol de Firehose; políticas de recurso en streams para acceso entre cuentas. - Cifrado: TLS en tránsito; SSE-KMS en Kinesis, Firehose, S3, Glue Data Catalog, Redshift y OpenSearch.
- Gobierno del data lake: AWS Lake Formation para permisos por tabla, columna y fila; CloudTrail para auditar quién accede.
- APIs públicas de ingesta: API Gateway delante de Kinesis o SQS (integración directa de servicio) con autenticación (Cognito, IAM, Lambda authorizer), throttling y AWS WAF.
El data lake en Amazon S3
Un data lake guarda todos los datos (estructurados y no estructurados) en su formato original, en un almacenamiento barato y escalable, y separa el almacenamiento del cómputo: varios motores (Athena, EMR, Redshift Spectrum, Glue, SageMaker AI) leen los mismos ficheros. En AWS, el almacenamiento es Amazon S3, el catálogo es AWS Glue Data Catalog y el gobierno lo pone AWS Lake Formation.
Organización típica por zonas (prefijos o buckets):
- raw / bronze: datos tal como llegan (JSON, CSV, logs). Inmutables; sirven para reprocesar.
- processed / silver: limpios, tipados y en Parquet, particionados.
- curated / gold: agregados listos para negocio (tablas de hechos, KPI).
Buenas prácticas: cifrado por defecto con SSE-KMS, Block Public Access, versionado en la zona raw, ciclo de vida hacia clases más baratas (S3 Standard-IA, Glacier) para datos antiguos, S3 Intelligent-Tiering si el patrón de acceso es desconocido, y separación de cuentas o buckets por zona.
flowchart LR
subgraph Ingesta
A["Apps y dispositivos"] --> KDS["Kinesis Data Streams"]
KDS --> FH["Data Firehose (Parquet)"]
B["Bases de datos"] --> DMS["AWS DMS"]
C["Ficheros on-premises"] --> DS["AWS DataSync"]
end
subgraph LAKE["Data lake en S3"]
RAW["raw (JSON/CSV)"]
PROC["processed (Parquet particionado)"]
CUR["curated (agregados)"]
end
FH --> PROC
DMS --> RAW
DS --> RAW
RAW --> GLUE["Glue ETL / crawlers"]
GLUE --> PROC
PROC --> GLUE2["Glue / EMR"]
GLUE2 --> CUR
CAT["Glue Data Catalog + Lake Formation"] -.-> PROC
CAT -.-> CUR
PROC --> ATH["Athena"]
CUR --> RS["Redshift / Spectrum"]
ATH --> Q["Amazon Quick"]
RS --> Q
AWS Glue
AWS Glue es el servicio serverless de integración de datos: descubre, cataloga, limpia, transforma y mueve datos. Sus piezas clave:
- AWS Glue Data Catalog: el metastore central (compatible con Hive) con bases de datos, tablas, esquemas y particiones. Lo usan Athena, EMR, Redshift Spectrum, Lake Formation y Firehose (para la conversión de formato). Es la respuesta a «catálogo central de metadatos del data lake».
- Crawlers: recorren S3 (y bases de datos JDBC, DynamoDB…), infieren el esquema y crean o actualizan tablas y particiones en el Data Catalog. Se programan o se lanzan por eventos.
- ETL jobs: trabajos Apache Spark serverless (por lotes o streaming ETL desde Kinesis o Kafka) o scripts Python shell para tareas ligeras. Se pagan por DPU-hora (Data Processing Unit) y solo mientras se ejecutan. Los trabajos con el motor Ray están en mantenimiento desde el 31/03/2026 (no admiten clientes nuevos).
- Glue Studio: editor visual que genera el código del job.
- Job bookmarks: recuerdan qué datos ya se procesaron para hacer cargas incrementales.
- Triggers y workflows: encadenan crawlers y jobs (programados, bajo demanda o por eventos).
- AWS Glue DataBrew: preparación de datos visual y sin código (limpiar, normalizar, perfilar) para analistas. Señal: «analistas sin conocimientos de programación deben limpiar y normalizar datos».
- Glue Data Quality: reglas de calidad sobre los datos.
- FindMatches y detección de datos sensibles: deduplicación con ML y localización de PII en el pipeline.
Transformar CSV a Parquet con Glue es el ejemplo de manual del temario (transforming data between formats, for example, .csv to .parquet): un crawler cataloga el CSV, un job lo lee, cambia tipos, particiona y escribe Parquet en la zona processed, y otro crawler (o el propio job) actualiza el catálogo.
Amazon Athena
Amazon Athena es un motor SQL serverless (basado en Trino/Presto) que consulta directamente ficheros en S3 usando el Glue Data Catalog. No hay clúster: pagas por datos escaneados. Según la página de precios (consultada el 30/09/2026), el precio de referencia de las consultas SQL es de unos 5 USD por TB escaneado (estimación; comprueba tu región en https://aws.amazon.com/athena/pricing/). También existe capacidad aprovisionada (Capacity Reservations, por DPU-hora) para cargas constantes.
Cómo reducir coste y tiempo de consulta:
- Parquet/ORC en lugar de CSV/JSON: se leen solo las columnas pedidas.
- Compresión.
- Particionado y filtros
WHEREpor la columna de partición; partition projection para no tener que registrar millones de particiones en el catálogo. - Ficheros ni muy pequeños ni gigantes (evita miles de ficheros de pocos KB).
- CTAS (
CREATE TABLE AS SELECT) eINSERT INTOpara convertir una tabla CSV en Parquet particionado sin salir de Athena: otra forma de transformar formatos. - Workgroups para separar equipos, fijar la ubicación de resultados y poner límites de datos escaneados por consulta o por grupo (control de costes).
Otras capacidades: federated queries (conectores ejecutados en Lambda para consultar DynamoDB, RDS, Redshift, CloudWatch Logs… junto con S3), consultas sobre tablas Iceberg, Athena para Apache Spark y consultas a logs de AWS (CloudTrail, ALB, VPC Flow Logs, CloudFront) almacenados en S3.
AWS Lake Formation
AWS Lake Formation centraliza el gobierno y la seguridad del data lake sobre S3 y el Glue Data Catalog. Añade su propio modelo de permisos, tipo base de datos (GRANT/REVOKE), por encima de IAM.
- Permisos finos: a nivel de base de datos, tabla, columna, fila y celda (con data filters). Por ejemplo, el equipo de marketing ve la tabla de clientes sin las columnas de DNI ni teléfono y solo las filas de España.
- LF-Tags (tag-based access control): etiquetas sobre bases de datos, tablas y columnas; das permisos por etiqueta (
confidencialidad=alta) en lugar de recurso a recurso. Escala a miles de tablas. - Integración: los permisos se aplican en Athena, Redshift Spectrum, EMR (Spark), Glue ETL y Amazon Quick.
- Compartición entre cuentas (y con AWS Organizations) sin copiar datos.
- Ingesta desde bases de datos (MySQL, PostgreSQL, SQL Server, MariaDB, Oracle en RDS o EC2, o JDBC) al data lake.
- Auditoría con CloudTrail de quién accedió a qué datos.
- Hybrid access mode: activar Lake Formation poco a poco, conviviendo con permisos IAM y de S3.
Nota de estado: las Governed Tables de Lake Formation se cerraron el 31/12/2024; para tablas transaccionales hoy se usa Apache Iceberg.
Amazon EMR
Amazon EMR (antes Elastic MapReduce) ejecuta frameworks de big data de código abierto: Apache Spark, Hadoop, Hive, Presto/Trino, HBase, Flink… Es la respuesta cuando hay que procesar volúmenes muy grandes con control sobre el framework, reutilizar código Spark/Hadoop existente o ajustar configuraciones.
Opciones de despliegue
| Opción | Qué es | Cuándo |
|---|---|---|
| EMR on EC2 | Clúster de instancias EC2 que tú dimensionas (tipos, número, Spot) | Máximo control; clústeres de larga duración o transitorios |
| EMR on EKS | Ejecuta trabajos Spark en un clúster Amazon EKS existente | La empresa ya estandarizó en Kubernetes y quiere compartir el clúster |
| EMR Serverless | Envías el trabajo (Spark, Hive) y AWS aprovisiona y escala la capacidad | Sin gestionar clústeres; LEAST operational overhead con frameworks de EMR |
| EMR on Outposts | EMR en tu centro de datos con AWS Outposts | Requisitos de latencia o residencia de datos locales |
Tipos de nodo (EMR on EC2)
- Primary (antes master): gestiona el clúster (YARN ResourceManager, HDFS NameNode). Puedes tener tres para alta disponibilidad.
- Core: ejecutan tareas y almacenan datos en HDFS. Perderlos puede perder datos: con Spot, cuidado.
- Task: solo cómputo, sin HDFS. Candidatos ideales a Spot: si AWS los reclama no se pierden datos.
Patrón de coste clásico: clúster transitorio que arranca, procesa leyendo y escribiendo en S3 (EMRFS) en lugar de HDFS, y se apaga; nodos primary y core On-Demand, task en Spot. Para clústeres permanentes, managed scaling y Reserved Instances o Savings Plans.
¿Glue, EMR o Lambda?
| Situación | Mejor opción |
|---|---|
| ETL sencillo o medio, serverless, integrado con el catálogo | AWS Glue |
| Big data muy grande, frameworks variados (Spark, Hive, HBase, Presto), control fino, código existente | Amazon EMR (EMR Serverless si no quieres gestionar clúster) |
| Transformaciones pequeñas por evento (un fichero, un lote de registros) en menos de 15 minutos | AWS Lambda |
| Trabajos por lotes en contenedores, HPC, colas de trabajos | AWS Batch |
| Análisis con estado sobre streams (ventanas, agregaciones) | Amazon Managed Service for Apache Flink |
| SQL analítico sobre datos ya cargados | Amazon Redshift |
Amazon Redshift (analítica)
Amazon Redshift es el data warehouse de AWS: base de datos columnar con procesamiento masivamente paralelo (MPP) para consultas analíticas (OLAP) sobre TB o PB. El módulo 04 lo presenta como base de datos; aquí nos interesa su papel analítico.
- Arquitectura: un leader node recibe las consultas y planifica; los compute nodes las ejecutan en paralelo.
- Tipos de nodo: RA3 (y los nuevos RG, basados en Graviton) con managed storage: almacenamiento en SSD local más S3, de modo que escalas cómputo y almacenamiento por separado y pagas solo el almacenamiento usado. DC2 guarda los datos en SSD local (recomendado solo para conjuntos pequeños). Los DS2 ya no existen.
- Redshift Serverless: sin clúster; capacidad en RPU que escala sola y pago por uso. Ideal para cargas intermitentes o impredecibles.
- Redshift Spectrum: consulta datos en S3 sin cargarlos, con tablas externas del Glue Data Catalog (y permisos de Lake Formation). Permite hacer joins entre tablas locales de Redshift y el data lake.
- Carga:
COPYdesde S3 (paralelo, la forma recomendada), Firehose, AWS DMS, integraciones zero-ETL desde bases de datos como Aurora. - Otras capacidades: concurrency scaling (capacidad extra para picos de usuarios), data sharing entre clústeres y cuentas sin copiar datos, snapshots automáticos y copia de snapshots entre regiones, pausa y reanudación del clúster (solo pagas almacenamiento mientras está en pausa), nodos reservados para cargas estables.
Athena, Redshift o Redshift Spectrum
| Requisito | Elige |
|---|---|
| Consultas esporádicas sobre S3, sin gestionar nada, pago por consulta | Athena |
| BI intensivo, muchos usuarios, consultas complejas y rápidas sobre datos estructurados | Redshift (provisioned o Serverless) |
| Ya tienes Redshift y quieres cruzar sus tablas con datos históricos en S3 sin cargarlos | Redshift Spectrum |
| Transacciones OLTP, filas individuales, alta concurrencia de escrituras | RDS / Aurora / DynamoDB (no Redshift) |
Amazon OpenSearch Service
Amazon OpenSearch Service ofrece clústeres gestionados de OpenSearch (bifurcación de Elasticsearch) y OpenSearch Dashboards. Casos de uso:
- Búsqueda de texto completo en catálogos, documentos o webs (relevancia, autocompletado, facetas).
- Análisis de logs y observabilidad casi en tiempo real (ingesta con Firehose u OpenSearch Ingestion).
- Búsqueda vectorial para aplicaciones de IA.
Puede desplegarse como dominio gestionado (eliges instancias, nodos maestros dedicados, varias AZ, almacenamiento UltraWarm y en frío para datos antiguos) o como OpenSearch Serverless (colecciones que escalan solas). Sustituye a Amazon CloudSearch, que está en mantenimiento desde 2024.
Señal: «buscar por palabras clave en millones de documentos», «análisis interactivo de logs con paneles» → OpenSearch. «Consultas SQL analíticas sobre el data lake» → Athena/Redshift.
Amazon Quick (antes Amazon QuickSight)
La guía oficial ya llama al servicio Amazon Quick. Historia del nombre: Amazon QuickSight se integró el 09/10/2025 en Amazon Quick Suite y hoy la documentación habla de Amazon Quick; la parte de business intelligence se denomina Amazon Quick Sight. En el examen puedes verlo con cualquiera de esos nombres.
Qué hace (lo que importa para el SAA):
- BI serverless: paneles (dashboards) interactivos y análisis para usuarios de negocio, sin servidores que gestionar.
- Fuentes: Athena, Redshift, S3, RDS/Aurora, OpenSearch, ficheros, SaaS y bases de datos locales.
- SPICE: motor en memoria que importa los datos para consultas rápidas y para no cargar la fuente con cada visualización.
- Seguridad: seguridad a nivel de fila, integración con Lake Formation, acceso privado a fuentes en VPC.
- Analítica embebida en tus aplicaciones y preguntas en lenguaje natural (capacidades de IA generativa, en constante cambio).
Señal: «paneles para directivos», «visualizar los resultados de Athena o Redshift», business intelligence, dashboards for business users → Amazon Quick.
Estrategias de visualización
| Necesidad | Herramienta |
|---|---|
| Paneles de negocio (ventas, KPI) sobre data lake o data warehouse | Amazon Quick |
| Exploración de logs y búsqueda con paneles | OpenSearch Dashboards |
| Métricas operativas de infraestructura y aplicaciones (series temporales), fuentes múltiples | Amazon Managed Grafana (módulo 10) |
| Métricas y alarmas de AWS | CloudWatch dashboards (módulo 10) |
| Exploración de datos por científicos de datos | Notebooks (SageMaker AI, EMR Studio, Athena) |
AWS Data Exchange
AWS Data Exchange permite encontrar, suscribirse y usar datos de terceros (y compartir los tuyos) de forma gobernada: datos financieros, meteorológicos, de mercado, sanitarios… Los datos se entregan como ficheros en S3, acceso directo a buckets de S3, APIs, datashares de Redshift o permisos de Lake Formation (en preview). También da acceso a los conjuntos públicos del programa Open Data on AWS.
Señal: «incorporar datos de un proveedor externo al data lake sin montar un proceso de intercambio de ficheros» o «suscribirse a conjuntos de datos de terceros» → Data Exchange.
Amazon Elastic Transcoder (retirado)
Amazon Elastic Transcoder convertía vídeo almacenado en S3 a otros formatos y resoluciones (para móviles, web, TV). Sigue en la lista in-scope de la guía, pero llegó a su cierre total el 13/11/2025. Su sustituto real es AWS Elemental MediaConvert, que la guía marca como out of scope.
Cómo tratarlo en el examen: si una pregunta pide «convertir vídeos subidos a S3 a varios formatos para distintos dispositivos con un servicio gestionado», la opción que encaja con el temario es Elastic Transcoder (normalmente disparado por un evento de S3 o una Lambda). Sabe que en la realidad hoy usarías MediaConvert. No confundas la transcodificación (vídeo almacenado) con Kinesis Video Streams (vídeo en directo) ni con Amazon Transcribe (audio a texto).
Arquitecturas de referencia
Streaming en tiempo casi real (clickstream o IoT)
flowchart LR
P["Web, móvil, sensores"] --> APIGW["API Gateway o SDK"]
APIGW --> KDS["Kinesis Data Streams"]
KDS --> L["Lambda: alertas en tiempo real"]
KDS --> FL["Managed Service for Apache Flink: ventanas y agregados"]
KDS --> FH["Data Firehose: Parquet + particionado"]
L --> SNS["SNS / DynamoDB"]
FH --> S3["S3 data lake"]
S3 --> ATH["Athena"]
ATH --> Q["Amazon Quick"]
FH -.->|copia de logs| OS["OpenSearch: búsqueda y paneles"]
Claves: un único stream con varios consumidores independientes; lo urgente se procesa en segundos (Lambda o Flink) y todo se archiva barato en S3 en formato columnar para análisis posterior.
ETL por lotes (nocturno)
flowchart LR
ONP["Servidor de ficheros local"] --> DS["DataSync programado"]
DB["Base de datos OLTP"] --> DMS["AWS DMS"]
DS --> RAW["S3 raw (CSV)"]
DMS --> RAW
EB["EventBridge Scheduler"] --> SF["Step Functions"]
SF --> CR["Glue crawler"]
SF --> JOB["Glue job Spark: CSV a Parquet"]
RAW --> JOB
JOB --> PROC["S3 processed (Parquet)"]
PROC --> RS["Redshift COPY / Spectrum"]
RS --> Q["Amazon Quick"]
Claves: orquestación con Step Functions o workflows de Glue, cargas incrementales con job bookmarks, catálogo actualizado por crawlers y almacenamiento separado del cómputo.
Data lake gobernado y multicuenta
Una cuenta central de datos con los buckets de S3, el Glue Data Catalog y Lake Formation; las cuentas de consumo (analítica, ML, BI) reciben permisos por LF-Tags o compartición entre cuentas, y consultan con Athena, Redshift Spectrum o EMR sin copiar datos. Toda la actividad queda en CloudTrail.
Servicios de IA y machine learning
AWS ofrece servicios de IA preentrenados: los llamas por API, sin entrenar modelos ni saber de ML. La guía los usa como ejemplo de AWS managed services with appropriate use cases (task 2.2) y el examen los pregunta como «¿qué servicio resuelve esta tarea?».
Qué servicio para qué tarea
| Tarea | Servicio | Ejemplos de enunciado |
|---|---|---|
| Analizar texto: sentimiento, entidades, frases clave, idioma, detección de PII, clasificación personalizada | Amazon Comprehend | «Clasificar reseñas como positivas o negativas», «detectar datos personales en tickets» |
| Chatbots de voz y texto (reconocimiento de intención y diálogo) | Amazon Lex | «Asistente conversacional en la web o en el centro de llamadas» |
| Texto a voz natural | Amazon Polly | «Leer artículos en voz alta», «avisos de voz en varios idiomas» |
| Analizar imágenes y vídeo: objetos, escenas, caras, texto en imagen, contenido inapropiado | Amazon Rekognition | «Moderar fotos subidas por usuarios», «verificar identidad comparando caras» |
| Extraer texto y datos de documentos escaneados: formularios, tablas, facturas, documentos de identidad | Amazon Textract | «Digitalizar formularios en papel conservando los pares clave-valor» |
| Voz a texto (transcripción), con identificación de hablantes | Amazon Transcribe | «Transcribir llamadas del centro de atención», «subtítulos» |
| Traducción automática | Amazon Translate | «Traducir en tiempo real el chat de soporte», «localizar la web» |
| Construir, entrenar y desplegar modelos propios | Amazon SageMaker AI | «Modelo de predicción de abandono con los datos de la empresa» |
Combinaciones típicas (el examen adora encadenarlas):
- Llamadas de clientes → Transcribe → Comprehend (sentimiento) → S3 y Athena/Quick.
- Documentos escaneados → Textract → Comprehend (entidades, PII) → OpenSearch para buscarlos.
- Chat multilingüe → Translate → Lex.
- Vídeo en directo → Kinesis Video Streams → Rekognition Video.
- Texto → Translate → Polly para generar audio en otro idioma.
Estado real (septiembre de 2026): algunas funciones concretas están en mantenimiento (por ejemplo, topic modeling y event detection de Comprehend, o los streaming events de Rekognition desde el 31/03/2026), pero los servicios en sí siguen activos y los casos de uso de la tabla son válidos.
¿SageMaker AI o un servicio preentrenado?
Amazon SageMaker AI (antes Amazon SageMaker) es la plataforma para el ciclo completo de ML: preparar datos, entrenar (con algoritmos integrados o frameworks como PyTorch y TensorFlow), ajustar hiperparámetros, desplegar endpoints de inferencia (en tiempo real, serverless, asíncronos o por lotes) y gestionar modelos (MLOps). SageMaker Canvas ofrece ML sin código para analistas.
| Elige un servicio preentrenado cuando… | Elige SageMaker AI cuando… |
|---|---|
| La tarea es genérica (traducir, transcribir, OCR, sentimiento, detectar objetos) | El problema es propio del negocio (predecir demanda, fraude, abandono) con tus datos |
| Buscas LEAST operational overhead y resultados inmediatos | Necesitas controlar el algoritmo, el entrenamiento o la infraestructura |
| No hay equipo de ciencia de datos | Hay científicos de datos y quieres MLOps |
| Basta con personalización ligera (vocabularios de Transcribe, clasificadores personalizados de Comprehend, etiquetas personalizadas de Rekognition) | La personalización es profunda o el modelo es completamente nuevo |
Varias subfunciones de SageMaker AI (Ground Truth, Clarify, Debugger, Model Monitor…) están en mantenimiento desde el 30/06/2026; para el SAA basta con los casos de uso generales. Amazon Bedrock (modelos fundacionales de IA generativa) no aparece en la lista de servicios del examen.
Trampas típicas del examen
- Firehose no es tiempo real estricto ni permite relectura. «Procesar cada evento en menos de un segundo con varios consumidores» → Kinesis Data Streams.
- Kinesis Data Streams no carga solo en S3. Necesitas un consumidor (Firehose, Lambda, KCL). Si la pregunta solo quiere «llevar los datos a S3 con el mínimo esfuerzo», Firehose directamente.
- SQS frente a Kinesis: SQS reparte trabajos entre workers y borra el mensaje al procesarlo; Kinesis conserva el flujo ordenado para varios consumidores y relecturas.
- Hot shard: errores de throughput con poco tráfico total → mala partition key, no falta de memoria en los consumidores.
- Convertir a Parquet: Firehose (en streaming) o Glue/Athena CTAS (por lotes). Firehose necesita la tabla en el Glue Data Catalog y solo convierte desde JSON.
- Athena caro → formato columnar, compresión y particiones. Añadir workgroups con límites de escaneo controla el gasto, pero no lo optimiza.
- Permisos por columna o fila → Lake Formation, no políticas de bucket.
- Catálogo de metadatos compartido por Athena, EMR y Redshift Spectrum → Glue Data Catalog (no DynamoDB ni RDS).
- EMR y Spot: nodos task en Spot sí; core con cuidado (HDFS); para no perder datos, guarda en S3.
- Redshift no es OLTP. Y para «consultar datos en S3 desde Redshift sin cargarlos» → Spectrum.
- OpenSearch para búsqueda de texto y logs; Quick para BI; Grafana para métricas operativas.
- Kinesis Video Streams (vídeo en directo) ≠ Elastic Transcoder (conversión de ficheros de vídeo, retirado) ≠ Transcribe (audio a texto) ≠ Translate (texto a texto).
- Textract extrae texto de documentos; Rekognition también detecta texto, pero en imágenes y escenas, no formularios ni tablas.
- Servicio preentrenado antes que SageMaker AI cuando la tarea es genérica y se pide el menor esfuerzo.
- Nombres nuevos: Data Firehose (Kinesis Data Firehose), Amazon Quick (QuickSight), SageMaker AI (SageMaker), Managed Service for Apache Flink (Kinesis Data Analytics).
Resumen
- Clasifica la ingesta por frecuencia: lotes (DataSync, DMS, Glue), near real-time (Firehose) y tiempo real (Kinesis Data Streams, MSK).
- Kinesis Data Streams: shards de 1 MB/s de escritura y 2 MB/s de lectura, orden por partition key, retención de 24 h a 365 días, on-demand o provisioned, enhanced fan-out para muchos consumidores.
- Data Firehose: entrega gestionada con buffering, Lambda, conversión JSON→Parquet/ORC con el Glue Data Catalog, particionado dinámico y destinos como S3, Redshift, OpenSearch o HTTP.
- MSK cuando hay Kafka; SQS para desacoplar trabajos.
- Data lake: S3 + Glue Data Catalog + Lake Formation; zonas raw/processed/curated; Parquet, compresión y particiones.
- Glue para ETL serverless (crawlers, jobs, DataBrew); Athena para SQL serverless pagando por TB escaneado; EMR para big data con frameworks abiertos (task nodes en Spot, EMR Serverless sin clúster).
- Redshift para data warehouse (RA3/RG, Serverless, Spectrum); OpenSearch para búsqueda y logs; Amazon Quick para BI; Data Exchange para datos de terceros.
- Servicios de IA: Comprehend (texto), Lex (chatbots), Polly (texto a voz), Rekognition (imagen/vídeo), Textract (documentos), Transcribe (voz a texto), Translate (traducción); SageMaker AI para modelos propios.
Cobertura del temario
Task 3.5: Determine high-performing data ingestion and transformation solutions
| Tipo | Punto de la guía | Dónde se trata |
|---|---|---|
| Knowledge | Data analytics and visualization services with appropriate use cases (Athena, Lake Formation, Amazon Quick) | «Amazon Athena», «AWS Lake Formation», «Amazon Redshift», «Amazon OpenSearch Service», «Amazon Quick», «Estrategias de visualización» |
| Knowledge | Data ingestion patterns (for example, frequency) | «Patrones de ingesta según la frecuencia», tabla KDS/Firehose/MSK/SQS |
| Knowledge | Data transfer services with appropriate use cases (DataSync, Storage Gateway) | «Servicios de transferencia de datos en contexto» (a fondo en los módulos 03 y 04) |
| Knowledge | Data transformation services with appropriate use cases (AWS Glue) | «AWS Glue», «Data Firehose» (Lambda y conversión), «Amazon EMR», «¿Glue, EMR o Lambda?» |
| Knowledge | Secure access to ingestion access points | «Seguridad de los puntos de ingesta», apartados de seguridad de Kinesis y Lake Formation |
| Knowledge | Sizes and speeds needed to meet business requirements | «Tamaños y velocidades», capacidad por shard, «Dimensionar un stream: ejemplo», buffering de Firehose |
| Knowledge | Streaming data services with appropriate use cases (Amazon Kinesis) | «Amazon Kinesis Data Streams», «Amazon Data Firehose», «Amazon MSK», «Kinesis Video Streams» |
| Skills | Building and securing data lakes | «El data lake en Amazon S3», «AWS Lake Formation», «Data lake gobernado y multicuenta», lab 18 |
| Skills | Designing data streaming architectures | «Streaming en tiempo casi real», tabla de decisión, lab 18 |
| Skills | Designing data transfer solutions | «Servicios de transferencia de datos en contexto», «ETL por lotes» |
| Skills | Implementing visualization strategies | «Amazon Quick», «Estrategias de visualización» |
| Skills | Selecting appropriate compute options for data processing (Amazon EMR) | «Amazon EMR» (opciones de despliegue y nodos), «¿Glue, EMR o Lambda?» |
| Skills | Selecting appropriate configurations for ingestion | Modos de capacidad y retención de Kinesis, enhanced fan-out, buffering y particionado dinámico de Firehose, MSK Provisioned frente a Serverless |
| Skills | Transforming data between formats (.csv to .parquet) | «Formatos de fichero…», conversión de Firehose, Glue ETL, CTAS de Athena, lab 18 |
Puntos de otros task statements tratados aquí
| Task | Punto de la guía | Dónde se trata |
|---|---|---|
| 2.2 | AWS Managed Services (AMS) with appropriate use cases (Amazon Comprehend, Amazon Polly) | «Servicios de IA y machine learning», aviso sobre los dos significados de AMS, tabla «Qué servicio para qué tarea» |
| 2.2 | Using purpose-built AWS services for workloads | Tablas de decisión de ingesta, analítica y IA |
| 3.2 | AWS compute services with appropriate use cases (AWS Batch, Amazon EMR) | «Amazon EMR», «¿Glue, EMR o Lambda?» |
| 4.3 | Determining cost-effective AWS database types (columnar format) | «Formatos de fichero…», «Amazon Redshift (analítica)» |
Practica lo aprendido
Documentación oficial para ampliar
- Amazon Kinesis Data Streams – Quotas and limits
- Amazon Data Firehose – Configure buffering hints
- Amazon Data Firehose – Convert input data format
- What is Amazon MSK?
- What is AWS Glue?
- What is AWS Lake Formation?
- Amazon Athena pricing
- Amazon EMR – primary, core and task nodes
- Amazon Redshift provisioned clusters
- Amazon Redshift Spectrum
- What is AWS Data Exchange?
- AWS services in full shutdown (Elastic Transcoder, Kinesis Data Analytics for SQL)