Alejandría

Busca en Alejandría

Herramientas

Databricks Delta Live Tables

Enfoque declarativo de pipelines de datos Databricks, conocido históricamente como Delta Live Tables.

01

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.

02

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.