# Streaming de datos

> Procesar datos como un flujo continuo de eventos, segundos después de que pasan.

- Nivel: Avanzado
- Temas: Datos, Cloud
- URL: https://tidbit.legios.com.ar/es/data-streaming/
- En inglés: [Data streaming](https://tidbit.legios.com.ar/data-streaming/)

El **streaming de datos** es manejar los datos como un flujo continuo de eventos chiquitos en vez de en grandes tandas periódicas. Cada pago con tarjeta, clic, posición de GPS o lectura de un sensor se envía en el momento en que pasa, y los programas que vienen después reaccionan en segundos. Un ETL nocturno responde '¿qué pasó ayer?'; un stream responde '¿qué está pasando ahora?'.

En el centro suele haber un **log** de eventos, como Apache Kafka o Amazon Kinesis. Los productores agregan eventos al final, el log los guarda en orden durante días, y cualquier cantidad de consumidores los lee a su propio ritmo, cada uno acordándose de dónde quedó. Como los eventos se guardan, un consumidor nuevo puede arrancar desde el principio, y uno que se cae retoma donde paró sin perder nada.

Los streams hacen andar cosas que no pueden esperar: un banco que frena un pago sospechoso antes de aprobarlo, una app de delivery que mueve al repartidor en tu mapa, una fábrica que avisa cuando una máquina se recalienta. El costo es la complejidad. Los eventos llegan tarde o desordenados, el mismo evento puede llegar dos veces, y una pregunta como 'ventas de los últimos cinco minutos' necesita **ventanas** sobre un flujo que nunca termina. Cuando alcanza con una respuesta por hora, un pipeline por tandas es más simple y más barato.

## Una analogía

Leer el diario de la mañana o seguir una transmisión de radio en vivo. El diario (por tandas) es prolijo pero llega un día tarde; la radio (el stream) te lo cuenta mientras pasa, y podés sintonizarla en cualquier momento.

## Para quedarse

- Los eventos se procesan de a uno, segundos después de que pasan, en vez de en tandas nocturnas.
- Un log durable como Kafka o Kinesis guarda los eventos en orden y deja que muchos consumidores los lean.
- Los eventos tardíos, duplicados o desordenados son normales y hay que manejarlos.
- Usalo cuando importan los minutos; si no, un ETL por tandas es más simple.

## Para seguir leyendo

- [¿Qué son los datos de streaming? (AWS)](https://aws.amazon.com/es/what-is/streaming-data/)
- [Introducción a Apache Kafka (en inglés)](https://kafka.apache.org/intro)

## Términos relacionados

- [ETL](https://tidbit.legios.com.ar/es/etl/): Sacar datos de sus fuentes, limpiarlos y cargarlos donde se puedan analizar.
