En pocas palabras
Enfoque declarativo de pipelines de datos Databricks, conocido históricamente como Delta Live Tables.
Qué problema resuelve
Coordinación manual de dependencias, ejecución incremental y operación de pipelines batch y streaming.
Cuándo utilizarlo
Ingeniería de datos en Databricks. Ejemplo: transformar eventos de pedidos en tablas depuradas.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
Se declaran tablas, vistas y transformaciones en SQL o Python y la plataforma determina dependencias y ejecución. Permite organizar ingesta y transformaciones incrementales.
Ejemplo de uso
Definir una tabla de eventos originales y otra con pedidos válidos, con reglas para registros incorrectos. Monitorizar frescura, descartes y coste de procesamiento.
Nombre actual
Delta Live Tables se integró en Lakeflow como Lakeflow Declarative Pipelines, y su modelo declarativo se ha propuesto como Spark Declarative Pipelines en Apache Spark. Los conceptos se mantienen; en documentación y APIs conviven ambos nombres.
Tipos de objetos
| Objeto | Comportamiento | Uso típico |
|---|---|---|
| Streaming table | Procesa cada registro nuevo una vez (incremental) | Ingesta desde archivos, Kafka, CDC |
| Materialized view | Resultado recalculado, de forma incremental cuando es posible | Agregados y transformaciones |
| View | Temporal, no se persiste | Pasos intermedios |
Ejemplo en SQL con calidad de datos
-- Bronce: ingesta incremental de archivos JSON con Auto Loader
CREATE OR REFRESH STREAMING TABLE pagos_bronce
AS SELECT * FROM STREAM read_files('/Volumes/finanzas/raw/pagos/', format => 'json');
-- Plata: limpieza con expectativas
CREATE OR REFRESH STREAMING TABLE pagos_plata (
CONSTRAINT importe_positivo EXPECT (importe > 0) ON VIOLATION DROP ROW,
CONSTRAINT credito_presente EXPECT (credito_id IS NOT NULL) ON VIOLATION FAIL UPDATE
)
AS SELECT credito_id, CAST(importe AS DECIMAL(18,2)) AS importe, fecha_pago
FROM STREAM(pagos_bronce);
-- Oro: agregado para negocio
CREATE OR REFRESH MATERIALIZED VIEW recaudo_diario
AS SELECT date(fecha_pago) AS dia, sum(importe) AS recaudo
FROM pagos_plata GROUP BY ALL;
| Acción ante violación | Efecto |
|---|---|
| (sin acción) | Registra la métrica y conserva la fila |
DROP ROW |
Descarta la fila y la contabiliza |
FAIL UPDATE |
Detiene la actualización del pipeline |
Las métricas de cada expectativa quedan en el event log del pipeline y sirven para alertas de calidad.
CDC y dimensiones lentas
AUTO CDC (antes APPLY CHANGES INTO) aplica un flujo de cambios ordenado por una columna de secuencia y gestiona SCD tipo 1 (sobrescribir) o tipo 2 (historial con vigencias), resolviendo eventos desordenados y borrados.
Modos de ejecución
- Triggered: procesa lo pendiente y se detiene; adecuado para cargas por lotes.
- Continuous: mantiene el cluster activo para baja latencia; más caro.
- Development / production: en desarrollo se reutiliza el cluster y no hay reintentos automáticos.
Versiona los pipelines con Databricks Bundles y define contratos de las tablas de salida con Data Contract CLI.
Criterios de implementación
Planificar reejecuciones, CDC, checkpoints y cambios de esquema. Antes de borrar o recrear una pipeline, verificar las reglas de retención y ciclo de vida de cada tabla.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.