Un snapshot dbt capture l'historique des changements d'une table source dont les lignes sont modifiées sur place, en appliquant la logique d'un SCD de type 2. Il ajoute des colonnes de validité (dbt_valid_from, dbt_valid_to) et détecte les changements par une stratégie timestamp ou check.
Exemple
{% snapshot clients_snapshot %}
{{ config(unique_key='id', strategy='timestamp', updated_at='maj') }}
select * from {{ source('crm','clients') }}
{% endsnapshot %}