Lakeflow, lección 9 de 17

Batch vs Streaming y Triggered vs Continuous

Christian Herrera10 min de lectura orientativa

Objetivo: saber elegir el modo de procesamiento y ejecución de cada pipeline, equilibrando latencia, complejidad y coste.

1. Son dos decisiones diferentes

Esta es la idea más importante de hoy:

  • Batch vs Streaming: ¿cómo procesamos los datos?

  • Triggered vs Continuous: ¿cuándo ejecutamos el pipeline y durante cuánto tiempo?

Las cuatro combinaciones posibles

Triggered

Continuous

Streaming Table

Procesa lo nuevo y termina

Procesa lo nuevo continuamente

Materialized View

Refresca y termina

Se mantiene actualizada

Las cuatro combinaciones están soportadas en Lakeflow. Databricks on AWS

Por tanto, una Streaming Table no obliga a tener un proceso ejecutándose 24 horas al día.

Puedes consumir Kafka cada 15 minutos mediante una Streaming Table con un pipeline Triggered.

2. Ejemplo real: Kafka → Bronze

Imagina que llegan 1.000 tickets por minuto.

Opción A · Triggered

Menor coste habitual

Ejecutamos el pipeline cada 15 minutos. Consume los eventos pendientes y termina.

Opción B · Continuous

Menor latencia

El pipeline permanece ejecutándose y procesa nuevos eventos conforme están disponibles.

Con Triggered, el retraso depende de la frecuencia, el arranque y la duración de cada ejecución. Con Continuous, normalmente reducimos la latencia, pero mantenemos recursos activos.

3. El código puede ser exactamente el mismo

python
from pyspark import pipelines as dp

@dp.table(name="bronze_tickets")
def bronze_tickets():
    return (
        spark.readStream
        .format("kafka")
        # Configuración de conexión...
        .load()
    )

¡No hemos cambiado nada!

La elección Triggered/Continuous pertenece a la configuración y orquestación del pipeline, no a la definición de esta tabla.

Databricks actualmente recomienda usar un Continuous Job para orquestar pipelines continuos, ya que permite aprovechar opciones adicionales de rendimiento Serverless. Databricks on Google Cloud

4. ¿Cuánto cuesta cada opción?

El coste depende principalmente de:

  • Tiempo de ejecución.

  • DBUs consumidos.

  • Tipo de compute y tarifa contratada.

  • Volumen, complejidad de las transformaciones y frecuencia de actualización.

La facturación exacta varía por región, tipo de compute y contrato. Microsoft publica las tarifas de Lakeflow en su página oficial de precios de Azure Databricks . Microsoft Azure

Simulador de costes

Vamos a suponer que ambos modos cuestan 2 € por hora de compute activo, únicamente para comparar el tiempo de ejecución. No es una tarifa real de Databricks.

Configura tu escenario

3 min

Triggered / mes

288 €

4,8 h activas/día

Continuous / mes

1440 €

24 h activas/día

Triggered

20%

Continuous

100%

Modelo didáctico de 30 días, sin arranques, solapamientos, mínimos de facturación ni diferencias en consumo de DBUs. En producción esas variables pueden alterar mucho el resultado.

Conclusión: Continuous no siempre es más caro en cualquier escenario, pero suele resultar considerablemente más costoso cuando hay poca actividad y los pipelines Triggered terminan rápidamente. Databricks recomienda comenzar con Triggered salvo que haya requisitos reales de baja latencia. Databricks on AWS

5. ¿Qué elegiría para nuestra arquitectura?

Capa

Tipo de tabla

Modo inicial

Bronze desde Event Hubs

Streaming Table

Triggered cada 5–15 min

Silver deserializada

Streaming Table

Triggered tras Bronze

Silver clientes con CDC

Streaming Table + AUTO CDC

Triggered

Gold KPIs para Power BI

Materialized View

Triggered cada 15–60 min

KPIs operacionales de muy baja latencia

Según necesidad

Continuous

Esto es un punto de partida, no una configuración definitiva.

Si el dashboard operacional necesita datos con menos de un minuto de retraso, evaluaría Continuous para esa ruta específica. No convertiría automáticamente toda la arquitectura en Continuous.

Además, hay que medir el end-to-end lag: desde que se genera el evento hasta que realmente aparece en Power BI. No basta con medir el tiempo de ingesta en Bronze.

6. Mini ejercicio

Tienes un pipeline que consume Kafka y actualiza Silver.

El negocio acepta que los datos tengan hasta 30 minutos de retraso. Una ejecución tarda normalmente 3 minutos.

¿Qué configuración elegirías inicialmente?

¡Correcto!

Con un calendario de 15 minutos y ejecuciones de unos 3 minutos, tenemos un margen razonable para cumplir el SLA de 30 minutos, siempre que no aparezcan retrasos importantes o acumulación de datos.

Qué debes recordar:

  • readStream no significa Continuous.

  • Triggered procesa los datos pendientes y termina.

  • Continuous permanece activo para reducir la latencia.

  • El SLA del negocio debe determinar la frecuencia de ejecución.

Próxima lección: joins, agregaciones y watermarks. Aprenderemos por qué un streaming puede necesitar mantener estado y qué ocurre con los eventos que llegan tarde.

Una idea más en tu cuaderno.

Marca esta lección cuando hayas terminado de repasarla.

Material importado del curso original. Simulaciones conservadas como ejemplos estáticos; para sus controles interactivos, consulta el original.