Skip to main content

Command Palette

Search for a command to run...

Amazon Kinesis diferencias

Published
5 min readView as Markdown

1. Kinesis Data Streams

📌 ¿Qué es?

Kinesis Data Streams es un servicio de AWS que te permite capturar, almacenar temporalmente y procesar flujos de datos en tiempo real. Es perfecto cuando necesitas tener control completo sobre cómo se procesan los datos.

🤔 Analogía

Imagina que estás organizando una fiesta y tienes diferentes actividades que hacer (comer, bailar, juegos). Cada invitado (dato) puede ir a la actividad que prefiera. Tú como organizador puedes controlar el tiempo que los invitados se quedan en cada actividad y cómo cambian de una a otra.

🔍 ¿Qué hace?

  • Captura los datos en fragmentos llamados "shards".

  • Permite varios consumidores para que diferentes sistemas puedan acceder a los datos.

  • Almacena los datos temporalmente para que puedas procesarlos con el tiempo.

🧑‍🍳 Escenario real

Imagina que un banco quiere analizar las transacciones de sus clientes en tiempo real. Con Kinesis Data Streams, el banco puede capturar las transacciones y procesarlas inmediatamente para detectar fraudes o hacer recomendaciones personalizadas.

🧭 ¿Cuándo usarlo?

  • Necesitas procesamiento en tiempo real.

  • Tienes múltiples aplicaciones que necesitan leer los mismos datos.

  • Quieres guardar los datos temporalmente y procesarlos más tarde.

🛠️ Notas técnicas relevantes

  • Duración de retención: 24 h–7 días.

  • Escalabilidad: Puedes ajustar la capacidad según el volumen de datos.

  • Requiere código para consumir los datos.

  • Latencia: milisegundos.

📦 2. Kinesis Data Firehose

📌 ¿Qué es?

Kinesis Data Firehose es un servicio administrado que recibe datos en tiempo real y los entrega a destinos como S3, Redshift, o OpenSearch sin necesidad de gestionar la infraestructura ni escribir mucho código.

🤔 Analogía

Imagina que tienes una tienda de comestibles. Los productos llegan a tu tienda (los datos) y tú solo te encargas de moverlos directamente a las estanterías donde la gente los va a comprar. No necesitas hacer mucho más que asegurarte de que lleguen al lugar correcto.

🔍 ¿Qué hace?

  • Recibe los datos y los entrega automáticamente a servicios como S3 o Redshift.

  • Puede hacer transformaciones ligeras como cambiar el formato o comprimir los datos antes de enviarlos.

  • No requiere mucha administración.

🧑‍🍳 Escenario real

Una empresa de análisis de datos de medios sociales puede usar Firehose para enviar los registros de actividad de los usuarios directamente a un almacenamiento en S3. Esto les permite procesar esos registros en lotes más tarde para hacer análisis de tendencias.

🧭 ¿Cuándo usarlo?

  • Si solo necesitas almacenar o mover datos a un servicio de destino.

  • No requieres procesamiento complejo de datos.

  • Quieres mínima administración y que el servicio lo haga todo automáticamente.

🛠️ Notas técnicas relevantes

  • Un único consumidor: el destino de los datos.

  • Transformaciones básicas con Lambda si es necesario.

  • No retiene datos, los procesa y entrega al instante.

  • No requiere código, salvo que quieras transformaciones.

📊 3. Kinesis Data Analytics

📌 ¿Qué es?

Kinesis Data Analytics es un servicio que te permite analizar datos en tiempo real usando SQL. No necesitas escribir código tradicional, solo consultas SQL para procesar datos de streaming.

🤔 Analogía

Es como tener una hoja de cálculo que se va llenando automáticamente con nuevos datos, y tú puedes usar fórmulas o consultas para obtener el análisis que necesitas de esos datos.

🔍 ¿Qué hace?

  • Se conecta a Kinesis Data Streams o Firehose para obtener los datos.

  • Puedes realizar consultas SQL para analizar los datos a medida que llegan.

  • Los resultados se pueden enviar a otros servicios para que se utilicen o se visualicen.

🧑‍🍳 Escenario real

Una empresa de monitoreo de clima usa Data Streams para captar información de sensores de temperatura en tiempo real. Luego, con Kinesis Data Analytics, calculan la temperatura promedio de las últimas horas y envían la información a un dashboard para que el equipo vea el estado en vivo.

🧭 ¿Cuándo usarlo?

  • Necesitas analizar datos en vivo con SQL.

  • Quieres obtener insights o métricas en tiempo real.

  • Ya tienes flujos de datos en Streams o Firehose.

🛠️ Notas técnicas relevantes

  • No funciona solo: requiere Streams o Firehose como fuente de datos.

  • Admite funciones avanzadas como ventanas de tiempo (por ejemplo, promedios de los últimos 5 minutos).

  • No almacena datos; solo los procesa en tiempo real.

  • No requiere código, solo consultas SQL.

⚖️ Comparación rápida

CaracterísticaData StreamsFirehoseData Analytics
DefiniciónCaptura y procesa flujosEntrega datos a destinosAnaliza flujos con SQL
AnalogíaFiesta con actividadesTienda de comestiblesHoja de cálculo que se llena automáticamente
¿Requiere que escribas código?✅ Sí❌ No (opcional Lambda)❌ No (solo SQL)
Transformaciones complejas en streaming✅ Sí⚠️ Solo ligeras con Lambda✅ Sí (consultas SQL)
Múltiples consumidores✅ Sí❌ No❌ No (solo proceso único)
Puede funcionar solo✅ Sí✅ Sí❌ No (necesita Streams o Firehose)
LatenciaMilisegundos~1 minutoEn tiempo real

🎯 Reglas simples para elegir

NecesidadServicio recomendado
Lógica personalizada y varios lectores🟢 Kinesis Data Streams
Entregar datos a S3/Redshift/OpenSearch sin complicar🔵 Kinesis Data Firehose
Analizar datos en vivo con consultas🟣 Kinesis Data Analytics (con Streams o Firehose)

✅ Resumen final

  • Streams = control total y flexibilidad para procesamiento complejo.

  • Firehose = simplicidad y entrega automática sin mucha intervención.

  • Analytics = análisis en tiempo real con SQL sin necesidad de código adicional.

More from this blog

K

keinydev

20 posts