Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 16 · Lección

CDC, CDF y sus diferencias

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 1 de 5

CDC, CDF y sus diferencias

Delta Change Data Feed expone cambios confirmados de una tabla junto con su tipo, versión y timestamp de commit para consumo incremental.

Duración
17 min aprox.
Objetivo
Delta Change Data Feed expone cambios confirmados de una tabla junto con su tipo, versión y timestamp de commit para consumo incremental.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

Change Data Feed, CDC, AUTO CDC y SCD

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

Al terminar podrás
  • Consumir Change Data Feed
  • Modelar CDC con AUTO CDC y reconocer APPLY CHANGES
  • Elegir SCD tipo 1 o 2
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 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
01
Modelo mental

CDC, CDF y sus diferencias

Delta Change Data Feed expone cambios confirmados de una tabla junto con su tipo, versión y timestamp de commit para consumo incremental.

Mostrar prerrequisitos
Dificultad
Professional
Prerrequisitos
m15
Reportar un error en esta lección

Al habilitar `delta.enableChangeDataFeed`, las versiones futuras pueden leerse con `readChangeFeed=true`. La salida incluye `_change_type`, `_commit_version` y `_commit_timestamp`; los updates generan imágenes previa y posterior. CDF no reconstruye cambios anteriores a su activación.

El historial disponible depende de la retención de la tabla y de `VACUUM`. Un consumidor que permanezca caído más allá del horizonte puede no recuperar versiones antiguas. Por eso el SLA de recuperación debe relacionar retención, máxima indisponibilidad y una alternativa de snapshot.

Modelo mental

Change Data Feed convierte el historial transaccional de una tabla en una interfaz incremental de cambios por fila. En lugar de comparar snapshots completos, el consumidor solicita versiones y recibe inserts, deletes y, para updates, imágenes anteriores y posteriores junto con versión y timestamp de commit. La frontera importante es el commit Delta: todos los cambios de una transacción comparten versión, aunque su orden de filas dentro de ella no sea una secuencia de negocio. CDF facilita replicación, auditoría y ETL incremental, pero no constituye una copia permanente e independiente del historial; su disponibilidad depende de la retención de la tabla y de las políticas aplicables. En 2026 Databricks distingue el change data feed automático, calculado al leer mediante row lineage cuando es compatible, y el legado materializado durante escrituras. Ambos se consumen con las APIs documentadas, pero sus prerrequisitos y costes operativos deben comprobarse.

Change Data Feed

Interfaz que expone cambios de filas confirmados entre versiones de una tabla con metadatos de tipo y commit.

Permite procesamiento incremental sin escanear y comparar snapshots completos en cada ejecución.
Commit version

Número monotónico que identifica una transacción Delta dentro del historial de una tabla.

Sirve como frontera reproducible para checkpoints y replays, pero no sustituye la secuencia de negocio de la fuente.
Preimage/Postimage

Valores anterior y posterior que CDF puede emitir para una fila actualizada.

Distinguirlos evita duplicar entidades y permite elegir entre auditoría completa y aplicación del estado vigente.
PySparkLectura incremental de Change Data Feed
spark.sql("""
ALTER TABLE main.bronze.customers
SET TBLPROPERTIES (delta.enableChangeDataFeed = true)
""")

changes = (
    spark.readStream
      .option("readChangeFeed", "true")
      .table("main.bronze.customers")
      .where("_change_type IN ('insert', 'update_postimage', 'delete')")
)

En un stream nuevo se puede fijar `startingVersion`; al reanudar, el checkpoint conserva la posición.

Puntos clave

  • CDF se habilita antes de los cambios que se quieren capturar.
  • `update_preimage` y `update_postimage` representan dos vistas del mismo update.
  • La versión de commit ordena cambios Delta; el timestamp ayuda a auditoría, pero no sustituye la secuencia de origen.

Evita

  • Esperar que habilitar CDF genere retroactivamente cambios de versiones anteriores.
  • Consumir preimages y postimages como dos actualizaciones independientes y duplicar efectos.

Recuerdo activo

¿Qué tipos de cambio suelen conservarse para materializar el estado actual?

Borrador privado · solo en este navegador
5 lecciones pendientes

Vista de lectura · sin ejecución

change-data-feed.ipynb

Delta Lake examples · commit 82ed214

notebooks/pyspark/change-data-feed.ipynb