Lakeflow, lección 3 de 17

Cómo funciona Lakeflow por dentro

Christian Herrera7 min de lectura orientativa

Objetivo: entender qué es un DAG, qué son los flows y cómo Lakeflow decide qué ejecutar y en qué orden.

1. El DAG: el mapa de dependencias

DAG significa Directed Acyclic Graph (grafo dirigido acíclico).

En nuestro caso, representa las tablas y sus dependencias.

Bronze · Tickets

Eventos originales

Silver · Clean tickets

Streaming Table

Gold · Sales

Materialized View

Gold · Counts

Materialized View

Lakeflow identifica que:

  • Silver depende de Bronze.

  • Las dos Gold dependen de Silver.

  • Ambas Gold pueden procesarse en paralelo si hay recursos disponibles.

No tienes que programar explícitamente el orden. Lakeflow lo deduce de las consultas. Databricks on AWS

2. ¿Cómo descubre las dependencias?

Observa este ejemplo:

python
from pyspark import pipelines as dp
from pyspark.sql import functions as F

@dp.table(name="silver_tickets")
def silver_tickets():
    return (
        spark.readStream.table("bronze_tickets")
        .filter("amount > 0")
    )

@dp.materialized_view(name="gold_sales")
def gold_sales():
    return (
        spark.read.table("silver_tickets")
        .agg(F.sum("amount").alias("total"))
    )

No hemos dicho que gold_sales se ejecute después de silver_tickets.

Lakeflow detecta la dependencia por esta línea:

python
spark.read.table("silver_tickets")

Es decir, el DAG se construye a partir de las referencias entre datasets.

3. ¿Qué es exactamente un Flow?

Aquí viene un concepto importante.

Una tabla representa dónde se almacenan los datos.

Un flow representa la consulta que produce o actualiza esos datos.

Fuente

FlowLee y transforma

Destino

Cuando escribes:

python
@dp.table(name="silver_tickets")
def silver_tickets():
    return spark.readStream.table("bronze_tickets")

Lakeflow crea implícitamente un append flow que alimenta silver_tickets.

También puedes definir flows explícitos, por ejemplo para alimentar una misma tabla con eventos procedentes de dos países o realizar cargas históricas.

Esto permite que existan varios flows escribiendo en un mismo destino. Databricks on AWS

4. ¿Cómo se ejecuta el pipeline?

Lakeflow tiene dos modos principales:

Triggered

Se ejecuta, procesa los datos disponibles y termina.

Ejemplo: cada hora, un Lakeflow Job inicia el pipeline para actualizar Silver y Gold.

Continuous

El pipeline permanece activo y procesa los datos nuevos conforme llegan o detecta cambios en sus fuentes.

Ejemplo: mantener Silver actualizado continuamente desde Kafka.

Ambos modos admiten Streaming Tables y Materialized Views. Databricks on AWS

Simulador de ejecución

Pipeline · Triggered

Completado

Bronze

Procesado correctamente

Silver

Procesado correctamente

Gold Sales y Gold Counts

Procesado correctamente
Simulación simplificada: en producción Lakeflow puede solapar ejecuciones y procesar ramas independientes en paralelo.

En una actualización real, Lakeflow prepara el entorno, analiza el código, construye el DAG y actualiza los datasets respetando las dependencias.

5. Mini ejercicio: razona como un Data Engineer

Imagina que tienes estas dependencias:

text
Bronze Tickets ──► Silver Tickets ──► Gold Sales

Bronze Customer ──► Silver Customer

Pregunta: ¿puede Lakeflow procesar Silver Customer y Silver Tickets en paralelo?

Qué debes recordar de esta lección:

  • Pipeline: agrupa los datasets, flows y configuración.

  • DAG: representa las dependencias entre ellos.

  • Flow: procesa datos desde una consulta hacia un destino.

  • Triggered / Continuous: determina cómo se mantiene ejecutándose el pipeline.

En la lección 4 pasaremos a Databricks y construiremos un pipeline real con Python, dos tablas y una agregación. Veremos dónde crear los archivos, cómo lanzarlo y cómo inspeccionar su DAG.

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.