🏗️Exemple concret
Retailer avec 5M clients : SCD Type 2 sur la dimension Client. Un client change de région : nouvelle ligne créée avec is_current = 1, l'ancienne passe à is_current = 0. Les rapports de ventes historiques par région restent exacts, et les analyses actuelles utilisent la dernière adresse. La table Client passe de 5M à 5.8M lignes sur 3 ans (800K déménagements).
∑ Concept clé
Type 1 : écrasement (pas d'historique). Type 2 : nouvelle ligne (is_current, start_date, end_date). Type 3 : colonne ajoutée (old_value, new_value). Type 6 : combinaison 1+2+3.
🎯Quand l'utiliser ?
✓Type 1 : corrections d'erreurs ou attributs sans valeur historique
✓Type 2 : suivi de l'historique des changements (région, segment, manager)
✓Type 3 : uniquement 1 niveau d'historique nécessaire
✅ Avantages
+Préserve l'historique des analyses (Type 2)
+Standard bien connu et supporté par tous les outils DW
+Permet de reconstruire l'état à n'importe quelle date
⚠️ Limites
−Type 2 : croissance exponentielle de la table si beaucoup de changements
−Complexifie les requêtes (jointures avec filtres is_current)
−Risque d'oubli du filtre is_current = erreurs dans les rapports
🛠️ Outils principaux
dbt (snapshots = SCD Type 2 automatique)
SQL pur
Informatica, Talend (gestion native)
Delta Lake / Iceberg (MERGE pour SCD)
Data EngineeringModélisationData WarehouseHistoriqueDimensions