Implémenter des dimensions à variation lente

Effectué

Les données de dimension changent au fil du temps. Les clients se déplacent vers de nouvelles villes, les produits sont renommés et les employés sont transférés entre les services. Un rôle principal d’un entrepôt de données consiste à décrire le passé avec précision. Vous avez donc besoin d’une stratégie pour gérer ces modifications. Les modèles SCD (Dimension à variation lente) définissent la façon dont votre modèle dimensionnel répond lorsque les données sources changent.

Comprendre les types SCD

Différentes exigences métier appellent différentes approches pour le suivi des modifications. Les types SCD suivants vont de l'ignorance complète des changements à la conservation complète des enregistrements historiques.

Type 0 : Conserver l’origine

Le type 0 conserve la valeur d’origine et n’autorise jamais les modifications. Utilisez le type 0 pour les données de référence fixes qui ne doivent pas changer, telles qu’un score de crédit d’origine au moment de l’application ou une date de naissance.

Type 1 : Remplacer

Le type 1 remplace la valeur existante par la nouvelle valeur. Aucun historique n’est conservé. Cette approche est appropriée lorsque :

  • La modification est une correction d’une erreur.
  • La précision historique de l’attribut modifié n’est pas importante.
  • Vous avez besoin de la maintenance la plus simple possible.

Par exemple, si l’adresse e-mail d’un client change, une mise à jour de type 1 remplace l’ancien e-mail par le nouveau. Tous les faits historiques associés à ce client reflètent désormais l’adresse e-mail actuelle.

Note

Les modifications de type 1 peuvent affecter l’analyse historique. Si un vendeur est réaffecté à une nouvelle région et que vous remplacez la région, toutes leurs ventes passées apparaissent sous la nouvelle région. Déterminez si ce comportement répond à vos exigences de création de rapports.

Type 2 : Ajouter une nouvelle ligne

Le type 2 insère une nouvelle ligne pour chaque modification, en conservant l’historique complet. La ligne initiale est maintenue, et chaque déclinaison de l’élément de dimension reçoit sa propre clé de substitution. Ce type SCD est le plus courant pour les attributs où la précision historique est importante.

Une implémentation de type 2 nécessite des colonnes supplémentaires :

Colonne Objectif
Date de début Lorsque cette version est devenue effective
Date de fin Lorsque cette version a été remplacée (les lignes actuelles utilisent une date ultérieure comme 9999-12-31)
Est le drapeau actuel Permet d’identifier la version active lors des recherches au moment du chargement des tables de faits

Lorsqu’une modification se produit, le processus ETL :

  1. Met à jour la ligne actuelle existante en définissant sa date de fin et en modifiant l’indicateur FALSEactuel en .
  2. Insère une nouvelle ligne avec les nouvelles valeurs d’attribut, une nouvelle clé de substitution, la date de début définie sur la date de modification et l’indicateur actuel défini sur TRUE.

Le type 2 est essentiel lorsque vous devez analyser le passé avec précision. Par exemple, si vous devez signaler les ventes par la région à laquelle un vendeur a été affecté au moment de chaque vente, le suivi de type 2 conserve ce contexte.

Diagramme montrant SCD Type 2 avant et après la modification de la région d’un client, avec une nouvelle ligne ajoutée et la ligne d’origine a expiré.

Type 3 : Ajouter une nouvelle colonne

Le type 3 ajoute une colonne pour stocker la valeur précédente en même temps que la valeur actuelle. Cette approche suit l’historique limité, généralement seulement le changement le plus récent.

À titre d’exemple, une dimension « commerciaux » peut comporter à la fois les colonnes CurrentSalesRegion et PreviousSalesRegion. Lorsque l’vendeur se déplace, la région actuelle passe à la colonne précédente et la nouvelle région devient actuelle.

Le type 3 est utile lorsque vous n’avez besoin de comparer l’état actuel qu’à un état antérieur. Toutefois, il n’est pas couramment utilisé, car vous perdez toutes les modifications intermédiaires.

Type 6 : Approche hybride

Type 6 combine des éléments de Type 1, Type 2 et Type 3. Il conserve l’historique complet des versions (type 2) tout en stockant également la valeur actuelle sur chaque ligne (type 1 remplacer sur une colonne spécifique) et la valeur précédente (type 3).

Cet hybride permet aux requêtes d’accéder à la fois au contexte historique et actuel à partir de n’importe quelle ligne de version. Toutefois, il ajoute de la complexité au processus ETL, car chaque ligne d’un membre de dimension doit être mise à jour lorsque la valeur actuelle change.

Choisir le type SCD approprié

Utilisez les instructions suivantes pour sélectionner le type SCD approprié :

Prérequis Type recommandé
Données de référence fixes qui ne changent jamais Type 0
Corrections ou historiques non nécessaires Type 1
Précision historique complète requise Type 2
Besoin seulement de la comparaison actuelle par rapport à la précédente Type 3
Il est indispensable de disposer simultanément d’une vue actuelle et d’une vue historique pour chaque ligne Type 6

Envisager des compromis de mise en œuvre

Chaque type SCD a des implications sur les coûts et la complexité :

  • Stockage : les dimensions de type 2 augmentent au fil du temps à mesure que de nouvelles lignes de version s'ajoutent. Planifiez l’augmentation du stockage et réfléchissez à la façon dont la croissance affecte les performances des requêtes.
  • Complexité des requêtes : la jonction de tables de faits à des dimensions de type 2 nécessite la correspondance à des dates effectives ou l’utilisation de l’indicateur actuel, ce qui ajoute de la complexité aux requêtes.
  • Complexité ETL : le type 2 et le type 6 nécessitent une logique ETL plus sophistiquée pour détecter les modifications, expirer les anciennes lignes et insérer de nouvelles versions.
  • Exigences métier : le choix du type SCD doit être piloté par les besoins de l’entreprise. Ne suivez pas l’historique là où ce n’est pas nécessaire et ne négligez pas le suivi de l’historique là où il est requis.

Conseil / Astuce

Évitez d’appliquer le suivi de type 2 à chaque attribut d’une dimension. Effectuez uniquement le suivi de l’historique sur les attributs où l’entreprise nécessite une analyse historique. Utilisez le type 1 pour le reste pour conserver la dimension gérable.