Cómo funciona Lakeflow por dentro
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 originalesSilver · Clean tickets
Streaming TableGold · Sales
Materialized ViewGold · Counts
Materialized ViewLakeflow 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:
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:
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:
@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
CompletadoBronze
Procesado correctamenteSilver
Procesado correctamenteGold Sales y Gold Counts
Procesado correctamenteEn 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:
Bronze Tickets ──► Silver Tickets ──► Gold Sales
Bronze Customer ──► Silver CustomerPregunta: ¿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.