Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.
Lección 1 de 5
Framework Spark Declarative Pipelines y Lakeflow
Spark Declarative Pipelines define datasets y dependencias; Lakeflow extiende el framework y gestiona el grafo, las actualizaciones, el linaje y los eventos.
- Duración
- 17 min aprox.
- Objetivo
- Spark Declarative Pipelines define datasets y dependencias; Lakeflow extiende el framework y gestiona el grafo, las actualizaciones, el linaje y los eventos.
- Siguiente paso
- Continuar con la siguiente lección
Ver detalles del módulo
Spark Declarative Pipelines en Lakeflow
Declara datasets y dependencias para que Lakeflow gestione el grafo y la ejecución incremental sobre el framework actual de Spark.
- Crear tablas streaming y materialized views
- Comparar declarativo con Structured Streaming
- Distinguir Spark Declarative Pipelines de la oferta gestionada Lakeflow
01Modelo mentalFramework Spark Declarative Pipelines y Lakeflow
Spark Declarative Pipelines define datasets y dependencias; Lakeflow extiende el framework y gestiona el grafo, las actualizaciones, el linaje y los eventos.
+
Framework Spark Declarative Pipelines y Lakeflow
Spark Declarative Pipelines define datasets y dependencias; Lakeflow extiende el framework y gestiona el grafo, las actualizaciones, el linaje y los eventos.
En lugar de iniciar manualmente varios `writeStream`, cada función devuelve un DataFrame que define un dataset. Las lecturas entre datasets establecen dependencias y el pipeline determina el orden. Esto reduce código operativo, pero no elimina decisiones sobre contrato, incrementabilidad, calidad o coste.
El grafo debe expresar transformaciones de datos, no pasos imperativos con efectos externos. Crear archivos, llamar APIs o mutar tablas arbitrariamente dentro de una función declarativa rompe reevaluación y dificulta optimización. Esos efectos pertenecen a tareas de Jobs alrededor del pipeline.
Modelo mental
Spark Declarative Pipelines cambia la unidad de razonamiento desde una secuencia de comandos hacia un grafo de datasets y flows. El autor declara qué representa cada streaming table, materialized view o sink y sus dependencias se deducen de las lecturas; el motor construye el DAG, elige el orden válido y administra actualizaciones incrementales. En Databricks, Lakeflow pipelines es la oferta gestionada que extiende e interopera con el framework Apache Spark Declarative Pipelines sobre un runtime optimizado, añadiendo operación, event log, gobernanza y capacidades específicas. No debe confundirse el framework con el antiguo nombre comercial Delta Live Tables: código o exámenes previos pueden usar DLT, pero el modelo vigente se expresa como pipelines, flows y datasets. Declarativo no significa automático sin contrato: claves, semántica temporal, calidad, costes y compatibilidad siguen perteneciendo al diseño humano.
Unidad gestionada de desarrollo y ejecución que contiene datasets, flows, sinks, configuración y el grafo de dependencias que los relaciona.
Define la frontera de actualización, observabilidad y despliegue que el equipo opera como un producto coherente.Relación declarativa que procesa una fuente mediante una consulta y escribe sus resultados en un destino administrado por el pipeline.
Separa la lógica de movimiento de datos del objeto persistente y permite varias entradas controladas hacia un target.Fase en la que el runtime interpreta definiciones para descubrir objetos y dependencias antes de ejecutar el procesamiento efectivo de datos.
Explica por qué las funciones deben ser deterministas y no contener acciones, llamadas externas ni efectos dependientes del orden del archivo.from pyspark import pipelines as dp
from pyspark.sql import functions as F
@dp.table(name="orders_bronze")
def orders_bronze():
return spark.readStream.table("main.raw.orders")
@dp.materialized_view(name="daily_order_totals")
def daily_order_totals():
return (
spark.read.table("orders_bronze")
.groupBy(F.to_date("event_ts").alias("order_date"))
.agg(F.sum("amount").alias("revenue"))
)El nombre lógico `orders_bronze` crea la dependencia; el pipeline administra actualización y metadatos.
Puntos clave
- Las funciones declarativas devuelven DataFrames y no deben ejecutar acciones como `collect()` o escrituras manuales.
- Las dependencias proceden de lecturas, no del orden físico de funciones en el archivo.
- El event log ofrece progreso, calidad, linaje y errores del grafo.
Evita
- Llamar `display`, `count` o `saveAsTable` dentro de una función decorada y mezclar declaración con ejecución.
- Depender del orden del archivo en vez de leer explícitamente el dataset upstream.
Recuerdo activo