Databricks lanzó tres extensiones AUTO CDC esta semana que eliminan lógica MERGE personalizada de pipelines CDC: rastreo de historial bitemporal (Beta), actualizaciones parciales para cambios dispersos (GA), e API AUTO CDC Type 1 Python contribuida a Apache Spark 4.2.
AUTO CDC Bitemporal rastrea dos marcas de tiempo independientes. El tiempo de negocio marca cuándo un hecho era verdadero en el mundo real. El tiempo de sistema marca cuándo el sistema de registro se enteró de él. El motor agrega cuatro columnas administradas: __START_AT y __END_AT para tiempo de negocio, __SYSTEM_START_AT y __SYSTEM_END_AT para tiempo de sistema. Cuando llega una corrección con una marca de tiempo anterior, el motor reescribe el historial afectado en su lugar en lugar de añadir. La declaración es declarativa: STORED AS BITEMPORAL con columnas SEQUENCE BY y SYSTEM SEQUENCE BY — sin MERGE personalizado requerido.
El impulsor regulatorio es directo. La Regla SEC 17a-4 y las reglas de mantenimiento de registros FINRA requieren que las empresas reconstruyan registros tal como existían en un momento específico — tanto lo que los datos decían como lo que el sistema creía. El barrido de cumplimiento de mantenimiento de registros de la SEC ha resultado en más de $2 mil millones en multas en más de 100 empresas desde 2021. Las tablas SCD Type 2 estándar no pueden responder ambas preguntas simultáneamente. Una tabla bitemporal puede: una consulta limitada al 3 de enero devuelve lo que el sistema mostró ese día; una consulta ejecutada hoy devuelve la verdad corregida después de una corrección con fecha retroactiva.
La GA de actualizaciones parciales cierra un modo de fallo común. Muchas fuentes CDC emiten solo columnas cambiadas como NULL para todo lo demás. Sin manejo explícito, esos NULLs sobrescriben datos válidos silenciosamente. La solución es declarativa: configure ignore_null_updates o ignore_null_updates_column_list en create_auto_cdc_flow(), y el motor aplica solo campos cambiados.
La contribución de código abierto envía la API AUTO CDC Type 1 Python a Apache Spark 4.2 a través de SPARK-56249, revisada a través del proceso SPIP estándar. La implementación maneja eventos fuera de orden a través de una tabla de estado auxiliar—las lápidas de eliminación y microblotes reintentados convergen en lugar de corromper el destino. Se ejecuta tanto en Delta Lake como en Iceberg. La interfaz SQL (CREATE FLOW ... AS AUTO CDC INTO) se fusiona en master para la próxima versión de Spark; el soporte SCD Type 2 de historial completo y actualizaciones parciales están en desarrollo.
Un ingeniero aeroespacial y de defensa de Fortune 500 reemplazó 1.500 líneas de código CDC personalizado con 4 líneas de declaraciones AUTO CDC. Navy Federal Credit Union ejecuta AUTO CDC en Lakeflow Spark Declarative Pipelines para procesar miles de millones de eventos de aplicación. La reducción de patrón: 6–10 líneas de pipeline declarativo vs. 40–200+ líneas de lógica MERGE hecha a mano.
Restricciones: AUTO CDC Bitemporal está en Beta y requiere channel: PREVIEW. Se ejecuta solo en SDP sin servidor o ediciones Pro/Advanced. DML en tablas de destino AUTO CDC requiere Unity Catalog y Databricks Runtime 13.3 LTS o superior; leer cambios requiere DBR 15.2 o superior. El historial bitemporal sobrevive a VACUUM (que elimina versiones de archivo Delta anteriores a 7 días), lo que lo hace una alternativa viable a TIMESTAMP AS OF para reproducibilidad de entrenamiento de larga duración.
Si sus pipelines CDC tienen requisitos regulatorios, de auditoría o de reproducibilidad de ML, evalúe bitemporal ahora. El costo operativo son dos columnas de secuenciación extra y un pin de canal de vista previa, no una reescritura de pipeline.