¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Por lotes o en tiempo real (almacén, streaming)

La lección completa está aquí para leer. Crea una cuenta gratuita para ejecutar sus comandos en un laboratorio y hacer sus cuestionarios y tareas.

Lección de 45 minSin comandos

¿Mañana o ahora mismo?

Un supermercado de Madrid vende también por internet.

Dirección quiere saber cuánto se vendió en el verano por barrio. Esa respuesta puede esperar a mañana.

El almacén de la tienda online quiere saber cuándo se acaba el pan. Esa respuesta no puede esperar: un cliente está pagando ahora.

Las dos preguntas usan los mismos datos de ventas, pero los datos viajan de forma distinta.

Al final de esta lección

Nota

Puedo decir cuándo los datos van a un almacén de datos y cuándo se procesan en flujo.

Palabras clave

PalabraQué significaEjemplo
Almacén de datosuna base de datos para analizar el pasado
Lotemuchos datos que se cargan juntoslas ventas del día
Eventoun hecho que llega solouna venta
Flujotratar cada evento en cuanto llega
Latenciael tiempo hasta tener la respuesta

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un almacén responde sobre el pasado

Un almacén de datos guarda la historia del negocio, ordenada para hacer preguntas.

Se llena por lotes: cada noche se cargan de una vez las ventas del día. Por eso sus datos son de ayer, no de este minuto.

Es lo adecuado para informes, comparaciones entre meses y preguntas que nadie esperaba. Se consulta con SQL.

Pregunta al almacén

Código: sql
-- Ventas online del trimestre, cargadas en el almacén cada noche.
-- Total vendido por mes:
SELECT month, SUM(total) AS sales
FROM online_sales
GROUP BY month
ORDER BY month;

-- Cambia month por district en las tres líneas y ejecuta de nuevo.

Un flujo responde al momento

En un flujo, cada venta es un evento y se trata en cuanto llega. No se espera a la noche.

Sirve cuando una respuesta tardía no vale: reponer un producto, parar un pago sospechoso, mostrar dónde va el repartidor.

Tiene un precio. Hay que tener un programa siempre encendido y es más difícil de montar. Solo compensa si de verdad hace falta la respuesta ya.

Avisos de stock evento a evento

Código: python
# Llegan ventas una a una. Cada una se trata en cuanto llega.
stock = {"leche": 12, "pan": 6, "huevos": 9}
sales = [
    {"product": "pan", "qty": 2},
    {"product": "leche", "qty": 3},
    {"product": "pan", "qty": 3},
    {"product": "huevos", "qty": 1},
]
limit = 3

for sale in sales:
    product = sale["product"]
    stock[product] = stock[product] - sale["qty"]
    print("Venta de", product, "- quedan", stock[product])
    if stock[product] < limit:
        print("  AVISO: reponer", product, "ya")

# Cambia limit a 5 y mira qué avisos salen ahora.

Un error frecuente

Advertencia

Mucha gente cree que en tiempo real siempre es mejor. No es así. Un flujo cuesta más de montar y de mantener. Si nadie va a actuar en el momento, un lote cada noche da la misma respuesta por mucho menos.

Cómo decidir

Pregunta¿Cuándo se actúa?Camino
ventas por barrio en veranoen la reunión del lunesalmacén
queda poco panen minutosflujo
pago con tarjeta sospechosoantes de aceptarloflujo
clientes nuevos por mesuna vez al mesalmacén

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Tu turno: avisos de stock

El almacén de la tienda online quiere una lista con los avisos de stock bajo, en el orden en que saltan. Cada producto debe avisar una sola vez. Unas pruebas ocultas comprueban tu respuesta.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.