# Amazon Kinesis diferencias

## 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ística | Data Streams | Firehose | Data Analytics |
| --- | --- | --- | --- |
| Definición | Captura y procesa flujos | Entrega datos a destinos | Analiza flujos con SQL |
| Analogía | Fiesta con actividades | Tienda de comestibles | Hoja 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) |
| Latencia | Milisegundos | ~1 minuto | En tiempo real |

## 🎯 Reglas simples para elegir

| Necesidad | Servicio 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.
