AWS Kinesis: streaming masivo de datos

Clase 14 de 52Curso de Big Data en AWS

Resumen

En entornos que exigen decisiones inmediatas, AWS Kinesis Data Stream destaca por su capacidad de procesar grandes cantidades de datos en tiempo real. Es comparable, en objetivo, al servicio de Google Cloud Platform llamado Pubsub, y se usa cuando los flujos son masivos y continuos.

¿Qué es Kinesis Data Stream y por qué importa?

Kinesis se diseña para terabytes e incluso exabytes de información con miles o millones de fuentes simultáneas. Su foco es el streaming: recibir, organizar, agregar y poner a disposición los datos mientras fluyen, no almacenarlos de forma permanente.

  • Casos de uso claves: procesamiento de logs, social media, market data feeds y click stream.
  • Permite hacer agregaciones durante el procesamiento. Puedes agrupar y operar sobre datos en movimiento.
  • Aporta alta disponibilidad, redundancia y alto performance para cargas críticas en tiempo real.

¿Cómo se compone Kinesis: data record, shards y partition key?

Para entender su arquitectura, conviene identificar las piezas base y cómo se relacionan. Así dimensionas, configuras y escalas de forma correcta desde el inicio.

  • Data record: es la unidad fundamental de datos en Kinesis Data Stream. Todo inicia aquí.
  • Periodo de retención: define cuánto tiempo permanece el flujo en Kinesis. Por defecto es 24 horas. No es un servicio de almacenamiento.
  • Producer: el que pone el data record en el stream. Puede ser una aplicación, un servicio o una fuente externa.
  • Consumer: el que toma el data record ya procesado para alimentar otros sistemas.
  • Shard: secuencia que agrupa múltiples data records. Al configurar el stream defines cuántos shards necesitas, guiado por el volumen y el throughput esperado.
  • Partition key: organiza y agrupa los data records por shard. Determina la distribución interna del flujo.

¿Cómo fluye la información en tiempo real con producers y consumers?

La imagen mental es simple: producers → Kinesis → consumers. En el medio, Kinesis recibe, organiza en shards con la partition key y pone los datos a disposición para continuar el flujo.

  • Orígenes típicos: instancias de S2, aplicaciones del cliente, aplicaciones móviles u otras fuentes. Mediante API y SDK puedes alimentar Kinesis desde múltiples puntos.
  • Organización: el data record entra, se asigna a un shard usando la partition key y queda listo para procesar y consumir.
  • Ejemplo ilustrativo: una fuente como Twitter produce data en tiempo real, llega como data record, se agrupa en un shard por partition key y, tras procesarse, alimenta destinos como Elasticsearch, Kinesis Firehose o una Lambda para integrar con sistemas de terceros.
  • Escalabilidad: puedes crecer a N shards para soportar mayores tasas de datos. Escalas según lo que permitan los shards en tamaño y flujo.
  • Decisión práctica: cuando límites de servicios como Cloud Watch impiden escalar, Kinesis es la opción natural. Estimas bien los shards y desde allí distribuyes a todos los sistemas que necesites.

¿Tienes un caso de uso en tiempo real o dudas sobre dimensionar shards, partition key o consumers? Comenta tu escenario y con gusto te orientamos.