Saltar al contenido

CDC

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar progreso

Lección 4 de 5

AUTO CDC y el alias anterior APPLY CHANGES

SCD tipo 1 conserva el valor vigente; SCD tipo 2 crea intervalos de validez para responder cómo era una dimensión en un momento pasado.

17 min aprox.

Detalles

Change Data Feed, CDC, AUTO CDC y SCD

Procesa inserciones, actualizaciones y borrados respetando clave, secuencia y retención.

Reto observable

Materializa CDC ordenado con inserciones, actualizaciones y borrados, y reconcilia el estado final y el historial para eventos fuera de orden.

Al terminar podrás
  • Consumir Change Data Feed
  • Modelar CDC con AUTO CDC y reconocer APPLY CHANGES
  • Elegir SCD tipo 1 o 2
Prerrequisitos
m15
Última revisión
25 ago 2026
Nivel
Professional
Ruta relacionada
streaming
Dominios blueprint
CDC · Change Data Feed
Estado
Revisión editorial interna
Fuentes principales
Delta Change Data Feed · Databricks · AUTO CDC APIs · Databricks
Reportar un error
04
Diagnóstico

AUTO CDC y el alias anterior APPLY CHANGES

SCD tipo 1 conserva el valor vigente; SCD tipo 2 crea intervalos de validez para responder cómo era una dimensión en un momento pasado.

Tipo 1 sobrescribe atributos y es apropiado para correcciones donde la historia no aporta valor. Tipo 2 conserva versiones con columnas de inicio y fin administradas por el pipeline. Consultas de hechos históricos pueden unir el event time del hecho con el intervalo de la dimensión.

Guardar historia multiplica filas y exige decidir qué columnas disparan una nueva versión. `TRACK HISTORY ON` puede limitar ese conjunto en AUTO CDC. Campos operativos como `ingested_at` no deberían crear una versión de negocio cada vez que cambia.

SQLAUTO CDC SCD tipo 2 selectivo
CREATE OR REFRESH STREAMING TABLE main.silver.customers_history;

CREATE FLOW customers_history_flow AS AUTO CDC INTO
  main.silver.customers_history
FROM STREAM(main.bronze.customer_cdc)
KEYS (customer_id)
APPLY AS DELETE WHEN operation = 'DELETE'
SEQUENCE BY sequence_number
COLUMNS * EXCEPT (operation)
STORED AS SCD TYPE 2
TRACK HISTORY ON (name, segment, country);

Verifica los nombres de las columnas de control que expone el target antes de diseñar consultas point-in-time.

¿Qué problema evita `TRACK HISTORY ON` en un target SCD 2?

Profundiza

SCD tipo 1 y tipo 2 responden preguntas distintas. Tipo 1 representa la mejor versión vigente de cada clave y sobrescribe atributos; es compacto y sencillo, pero no puede responder qué valor se conocía antes. Tipo 2 conserva una fila por periodo de validez, normalmente con fronteras técnicas de inicio y fin, y permite consultas temporales. No todo cambio merece historia: corregir un typo técnico puede no requerir una nueva versión, mientras que dirección, segmento o consentimiento sí pueden afectar hechos y auditoría. La secuencia del CDC define cuándo comienza cada versión, no el instante en que Databricks la procesó. Deletes pueden cerrar el intervalo activo o retirar la fila vigente según el tipo. El modelador debe separar business effective time de system processing time; una SCD2 estándar basada en secuencia no es automáticamente bitemporal ni conserva cuándo se descubrió una corrección.

SCD tipo 1

Modelo que mantiene una única fila vigente por clave y reemplaza atributos con el cambio más reciente.

Es apropiado cuando solo importa el estado actual y minimiza coste y complejidad.
SCD tipo 2

Modelo que conserva múltiples versiones por clave con intervalos de validez no solapados.

Permite análisis as-of y auditoría de atributos cuyo valor histórico afecta decisiones.
Intervalo de validez

Rango temporal durante el cual una versión de dimensión se considera efectiva.

Es la base para joins temporales correctos y para detectar huecos o solapamientos de historia.
Resumen

Puntos clave

  • SCD 1 responde 'cuál es el valor actual'; SCD 2 responde también 'cuál era entonces'.
  • La secuencia determina intervalos; no debe confundirse con la fecha de carga.
  • El conjunto de columnas históricas controla ruido y coste de almacenamiento.

Evita

  • Usar SCD 2 para cada atributo técnico y generar versiones sin valor analítico.
  • Sobrescribir con SCD 1 cuando auditoría o reporting histórico necesitan el valor vigente al producirse el hecho.

Vista de lectura · sin ejecución

change-data-feed.ipynb

Delta Lake examples · commit 82ed214

notebooks/pyspark/change-data-feed.ipynb

Módulo 16

Contenido del módulo