Mecanismo nativo de dbt que captura instantáneas periódicas de tablas transaccionales mutables para construir automáticamente dimensiones históricas SCD Tipo 2.
Explicación y Contexto Conceptual
Muchas fuentes operativas (como bases de datos transaccionales de Shopify, Salesforce o Stripe) solo almacenan el estado actual de los registros: cuando el estado de una orden cambia de 'procesando' a 'enviada', el registro previo se sobrescribe y desaparece para siempre.
dbt Snapshots resuelve este problema histórico implementando la metodología Kimball SCD Tipo 2 de forma 100% automatizada. En cada ejecución, dbt compara el estado de la tabla de origen con la instantánea previa utilizando una columna de marca de tiempo (`check_cols = 'updated_at'`) o calculando un hash criptográfico de las columnas seleccionadas.
Si detecta modificaciones, dbt 'cierra' la fila anterior estableciendo la fecha `dbt_valid_to` e inserta una nueva fila activa con `dbt_valid_from` igual a la fecha actual y `dbt_valid_to = NULL`.
Permite auditar retroactivamente el embudo de ventas en cualquier fecha pasada.
Ejemplo en la Práctica
Un snapshot de la tabla de leads en Salesforce permite conocer con total precisión cuántos prospectos estaban en estado "Negociación" exactamente el 31 de diciembre pasado.