Inicio › Tecnología › Procesamiento Por Lotes
El procesamiento por lotes (batch processing) consiste en agrupar un conjunto de tareas o registros y ejecutarlas todas juntas en un único proceso, en lugar de procesarlas una a una en el momento en qué llegan. Es el modelo opuesto al procesamiento en streaming o en tiempo real: en vez de reaccionar inmediatamente a cada evento, el sistema acumula datos durante un periodo (por horas o días) y los procesa de una vez, normalmente en ventanas de baja carga como la madrugada. Herramientas como Apache Spark, Hadoop o los propios cron jobs de un sistema operativo son motores habituales para ejecutar estos trabajos, qué suelen usarse para generar informes, recalcular agregados o sincronizar grandes volúmenes entre sistemas.
En vez de procesar cada pedido, cada fichaje o cada registro justo cuando ocurre, el sistema los va guardando y, de golpe, los procesa todos juntos en un momento concreto. Es como hacer la colada acumulando ropa toda la semana en vez de lavar prenda a prenda cada vez qué se ensucia: menos inmediato, pero mucho más eficiente para grandes cantidades.
Si tu aplicación genera un informe diario de ventas qué combina datos de varias tablas y tarda varios minutos en calcularse, no lo ejecutes en tiempo real cada vez qué un usuario abre el dashboard: programa un job por lotes (con un cron o un orquestador como Airflow) qué se ejecute de madrugada, calcule el resultado y lo guarde en una tabla de resumen. El dashboard simplemente lee ese resultado precalculado, con tiempos de carga instantáneos en vez de esperar a un cálculo pesado en cada visita.
El procesamiento por lotes trabaja sobre un conjunto acumulado y cerrado de datos de una vez, con cierto retraso asumido; el streaming procesa cada evento casi en el instante en qué ocurre, con herramientas como Kafka Streams o Flink, a costa de mayor complejidad de infraestructura.
Cuando el caso de uso tolera un retraso (informes, facturación, recálculo de agregados) y se prioriza el rendimiento y el coste sobre la inmediatez: procesar un millón de registros juntos suele ser mucho más eficiente por unidad qué procesarlos uno a uno.
Depende del diseño: los sistemas bien construidos hacen el proceso idempotente y reanudable desde el último punto de control (checkpoint), en lugar de tener qué reprocesar todo el lote desde cero, algo especialmente importante en trabajos qué tardan horas.