← Volver al catálogo

Amazon Kinesis Data Streams

En una frase: Flujo de datos en tiempo real con fragmentos, retención y varios consumidores propios
Categoría: Análisis (Analytics)
Certificaciones: SAA-C03 SAP-C02 CLF-C02 DVA-C02

Qué es

Amazon Kinesis Data Streams captura y guarda flujos de datos en tiempo real: clics de una web, telemetría de dispositivos, registros de aplicaciones o transacciones. Los productores escriben registros en un stream y uno o varios consumidores los leen en orden, cada uno a su ritmo, en milisegundos. A diferencia de una cola, los datos no desaparecen al leerlos: se conservan durante el periodo de retención y se pueden volver a leer.

Conceptos clave

  • Shard: unidad de capacidad de un stream: 1 MB/s o 1 000 registros por segundo de escritura y 2 MB/s de lectura.
  • Modos de capacidad: bajo demanda (escala solo, sin gestionar shards) o aprovisionado (eliges el número de shards y lo cambias con resharding).
  • Clave de partición: decide a qué shard va cada registro; los registros con la misma clave van al mismo shard y se leen en orden. Una clave poco variada crea shards calientes.
  • Tamaño de registro: 1 MiB por defecto, ampliable hasta 10 MiB para registros grandes ocasionales.
  • Retención: 24 horas por defecto, ampliable hasta 365 días.
  • Consumidores: Lambda, aplicaciones con la KCL (Kinesis Client Library), Amazon Managed Service for Apache Flink para análisis en streaming, Amazon Data Firehose para entregar a S3 (Simple Storage Service) o Redshift. Con enhanced fan-out cada consumidor tiene sus propios 2 MB/s por shard.
  • Productores: SDK (Software Development Kit: bibliotecas para programar contra AWS), KPL (Kinesis Producer Library), agente de Kinesis o servicios de AWS.

Casos de uso típicos

  • Analítica en tiempo real de clics, juegos o redes sociales.
  • Telemetría de dispositivos IoT (internet de las cosas) y vehículos.
  • Centralizar registros y eventos para varios consumidores (alertas, archivo, análisis).
  • Captura de cambios de bases de datos para procesarlos en orden.

Cuándo NO usarlo

Kinesis Data Streams, Firehose y SQS

CaracterísticaKinesis Data StreamsData FirehoseSQS
LatenciaMilisegundosSegundos (con búfer)Milisegundos
ConsumidoresVarios, cada uno lee todoDestino gestionadoUno por mensaje
RelecturaSí, dentro de la retenciónNoNo
OrdenPor clave de particiónNo aplicaSolo en FIFO (First In, First Out: el primero en entrar es el primero en salir)
GestiónShards o bajo demandaSin servidoresSin servidores

Modelo de precios

En modo aprovisionado se paga por hora de shard y por unidades de datos escritos; en bajo demanda, por hora de stream y por GB escrito y leído. La retención ampliada, el enhanced fan-out y los registros grandes tienen coste adicional.

Seguridad y alta disponibilidad

Trampas de examen

  • "Tiempo real", "varios consumidores" o "volver a leer los datos": Kinesis Data Streams.
  • "Cargar en S3 o Redshift casi en tiempo real sin código": Firehose.
  • "ProvisionedThroughputExceeded": más shards, modo bajo demanda o mejor clave de partición.
  • "Orden por cliente": clave de partición igual al identificador del cliente.
  • "Cada consumidor necesita su propio rendimiento": enhanced fan-out.
  • "Guardar los datos una semana para reprocesar": ampliar la retención.

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes