A dbt snapshot captures the history of changes of a source table whose rows are modified in place, by applying the logic of an SCD type 2. It adds validity columns (dbt_valid_from, dbt_valid_to) and detects changes with a timestamp or check strategy.
Example
{% snapshot clients_snapshot %}
{{ config(unique_key='id', strategy='timestamp', updated_at='maj') }}
select * from {{ source('crm','clients') }}
{% endsnapshot %}