Apache Flink: procesamiento por lotes frente a procesamiento en tiempo real

En términos de Big Data, existen dos tipos de procesamiento:

  • Procesamiento por lotes
  • Procesamiento en tiempo real

El procesamiento basado en los datos recopilados a lo largo del tiempo se denomina procesamiento por lotes. Por ejemplo, el gerente de un banco desea procesar los datos del último mes (recopilados a lo largo del tiempo) para saber la cantidad de cheques que se cancelaron en el último mes.

El procesamiento basado en datos inmediatos para obtener resultados instantáneos se denomina procesamiento en tiempo real. Por ejemplo, el gerente de un banco recibe una alerta de fraude inmediatamente después de que se ha producido una transacción de fraude (resultado instantáneo).

La tabla que se proporciona a continuación enumera las diferencias entre el procesamiento por lotes y el procesamiento en tiempo real:

Procesamiento por lotes Procesamiento en tiempo real

Archivos estáticos

Flujos de eventos

Procesado periódicamente en minutos, horas, días, etc.

Procesado inmediatamente

nanosegundos

Datos anteriores sobre almacenamiento en disco

En almacenamiento de memoria

Ejemplo: generación de facturas

Ejemplo: alerta de transacción de cajero automático

En estos días, el procesamiento en tiempo real se utiliza mucho en todas las organizaciones. Los casos de uso como la detección de fraudes, las alertas en tiempo real en el cuidado de la salud y las alertas de ataques a la red requieren un procesamiento en tiempo real de datos instantáneos; un retraso de incluso unos pocos milisegundos puede tener un gran impacto.

Una herramienta ideal para estos casos de uso en tiempo real sería la que puede ingresar datos como flujo y no por lotes. Apache Flink es esa herramienta de procesamiento en tiempo real.