Estimador de capacidad de procesamiento para canalizaciones de datos

Este estimador calcula la capacidad aproximada de una canalización de datos cuando el trabajo se procesa en lotes o unidades repetibles. Usa el volumen de cada lote, la duración media, el número de procesos concurrentes y una utilización efectiva para convertir una prueba de rendimiento en registros por segundo, hora y día.

La cifra es útil para dimensionar cargas ETL/ELT, migraciones, backfills y ventanas de procesamiento. También permite comparar escenarios de concurrencia o eficiencia sin confundir volumen total con velocidad sostenida. El modelo supone que los workers aportan capacidad de forma aproximadamente lineal; en entornos reales, una base de datos, una cola, el almacenamiento, la red o una API compartida pueden convertirse en el cuello de botella antes de alcanzar la capacidad calculada.

Datos de entrada

s
%
Resultado
Registros por hora
Registros por segundo
Registros por minuto
Registros por 24 h
Lotes equivalentes por hora

1. Obtén una medición de lote
Usa un volumen y una duración observados en una carga representativa.

2. Indica los workers activos
Cuenta solo unidades capaces de ejecutar trabajo realmente en paralelo.

3. Ajusta la utilización
Introduce el porcentaje de tiempo productivo esperado durante una ejecución sostenida.

4. Revisa la tasa horaria
La salida principal expresa capacidad por hora y el desglose muestra otras escalas útiles.

5. Añade margen operativo
Para compromisos de tiempo, no dimensionas al 100 % de la capacidad teórica; contrasta con pruebas y reserva margen.

Fórmula principal:

Registros/s = (registros por lote / segundos por lote) × workers × utilización
Registros/h = registros/s × 3.600

Variables:

  • registros por lote: volumen completado en una ejecución típica
  • segundos por lote: duración media de ese lote
  • workers: procesos concurrentes
  • utilización: fracción efectiva de trabajo, entre 0 y 1

Supuestos: Se supone escalado aproximadamente lineal y coste homogéneo por registro. La fórmula no incorpora saturación de servicios compartidos, compresión, variación de tamaño, reintentos ni backpressure.

Qué significa el resultado

El resultado aproxima el volumen que puede atravesar la canalización por unidad de tiempo si se mantienen las condiciones introducidas.

Usa percentiles de latencia y pruebas prolongadas cuando necesites garantías operativas, no solo una media de laboratorio.

Datos:

  • 100.000 registros por lote
  • 45 s por lote
  • 6 workers
  • 80 % de utilización

Cálculo:
Registros/s = (100.000 / 45) × 6 × 0,80 ≈ 10.666,67.
Registros/h ≈ 10.666,67 × 3.600 = 38.400.000.

Resultado:
≈ 38.400.000 registros por hora.

Interpretación:
La cifra sirve como techo aproximado bajo estas condiciones; un cuello de botella compartido puede reducirla en producción.

¿La utilización debe incluir tiempos de espera por I/O?

Sí. Si esos tiempos forman parte del funcionamiento normal, una utilización menor puede representar de forma simple la pérdida de capacidad efectiva.

¿Cómo trato lotes de tamaños muy diferentes?

Mide varios tamaños y usa un escenario representativo o conservador. Una sola media puede ocultar costes fijos importantes en lotes pequeños.

¿Puedo usar esta cifra para estimar un backfill?

Sí: divide el total de registros pendientes entre la capacidad horaria. Añade margen por variación de rendimiento y ventanas de mantenimiento.

¿Por qué la concurrencia no siempre mejora linealmente?

Los workers pueden competir por CPU, memoria, locks, ancho de banda o límites del servicio de destino. Cuando eso ocurre, cada worker adicional aporta menos rendimiento.

¿Capacidad y disponibilidad son la misma métrica?

No. La capacidad mide volumen procesable; la disponibilidad mide si el servicio está operativo. Un pipeline puede tener mucha capacidad pero sufrir interrupciones frecuentes.