En tant qu’expert data, l'une des tâches les plus cruciales est le suivi de vos dimensions.
Dans le contexte de la modélisation et de l'entreposage de données, une "dimension" est un attribut structurel qui organise et catégorise vos données dans un entrepôt de données. Les dimensions sont généralement de nature descriptive et servent à répondre à des questions telles que "qui", "quoi", "où" et "quand".
Les caractéristiques clés des dimensions
- Attributs descriptifs : Les dimensions sont composées d'attributs descriptifs qui fournissent un contexte aux données. Par exemple, dans un entrepôt de données de vente, les dimensions peuvent inclure le "Client" (Qui ?), le "Produit" (Quoi ?), la "Période" (Quand ?) et l’ "Emplacement" (Où ?).
- Structure hiérarchique : Les dimensions ont souvent une structure hiérarchique, où les attributs peuvent être organisés en niveaux. Par exemple, une dimension “Période" comporte des niveaux tels que "Année", "Trimestre", "Mois" et "Jour". Cette structure vous permet d'effectuer des analyses plus détaillées, en passant d'une vue globale des ventes par année à des niveaux plus fins comme le trimestre, le mois et le jour.
- Filtrer et segmenter : Les dimensions peuvent être utilisées pour filtrer et découper les données en fonction de leurs attributs, vous permettant de vous concentrer sur des sous-ensembles spécifiques de données. Par exemple, découper vos clients en fonction de leur âge pour obtenir trois ensembles de données analytiques (18-24, 25-34, 35+).
Les dimensions sont un concept fondamental dans la modélisation de données et travaillent en conjonction avec les tables de faits, qui stockent des données numériques et des mesures, pour permettre des analyses de données puissantes et flexibles.
Si vous êtes nouveau dans le domaine des données, il est possible que le concept de mise en œuvre de l'historisation pour vos dimensions soit flou et que vous ayez besoin d'une explication des tenants et aboutissants.
L'importance du suivi de vos dimensions
Dans des scénarios du monde réel, les données relatives aux dimensions peuvent évoluer au fil du temps. Par exemple, le prix d'un produit ou l’adresse d’un client peuvent changer. La gestion efficace de ces changements est essentielle pour des rapports et des analyses précis. C'est là que les “Slowly Changing Dimensions” (SCD), ou en bon français "Dimensions à Changement Lent", entrent en jeu.
Ce concept célèbre introduit par Ralph Kimball décrit comment stocker et gérer à la fois les données actuelles et historiques dans le temps dans un entrepôt de données.
SCD est obligatoire lorsque vous avez une table de dimension dans un entrepôt de données qui stocke des attributs concernant certaines entités (par exemple, clients, produits, employés) et que vous souhaitez suivre comment ces attributs évoluent au fil du temps. Il existe différents types de SCD, généralement catégorisés en SCD de Type 1 et SCD de Type 2. Il existe des types moins connus de SCD que nous aborderons ici, mais je ne les ai jamais utilisés dans un contexte professionnel.
Les types courants de SCD : Type 1 et Type 2
SCD de Type 1 (Remplacement)
Avec ce type, lorsqu'un changement se produit dans la source de données, les données précédentes dans la table de dimension sont simplement écrasées par les nouvelles données. Il n'y a pas de suivi historique. C'est approprié lorsque vous êtes uniquement intéressé par les données les plus récentes et que vous n'avez pas besoin de conserver un historique des changements.
Exemple : Si l'adresse d'un client change, l'ancienne adresse est remplacée par la nouvelle, et il n'y a aucun enregistrement de l'ancienne adresse. Cela n'est pas un problème si vous n'avez pas besoin d'une utilisation analytique des adresses des clients.
SCD de Type 2 (Ajout d'une Nouvelle Ligne)
Le Type 2 conserve un historique complet des changements au fil du temps. Lorsqu'un changement se produit dans les données source, une nouvelle ligne est ajoutée à la table de dimension, et l'ancienne ligne reste avec une date de fin indiquant quand elle est devenue obsolète. Cela vous permet de suivre les changements historiquement, ce qui signifie que vous pouvez observer la dimension tout au long de sa durée de vie.
Exemple : Si le prix d'un produit change, une nouvelle ligne est ajoutée avec le prix mis à jour, et l'ancienne ligne a une date de fin indiquant quand l'ancien prix n'était plus valable.
Bon à savoir : Le Type 2 est la réponse la plus sûre dans votre entrepôt de données si l'entreprise n'est pas certaine des règles métier pour un attribut.
Les types moins connus de SCD
SCD de Type 0 (Conserver l'Original)
Cette technique n'a pas reçu de numéro de type dans le passé, mais elle existe depuis le début des SCD. Avec le Type 0, la valeur de l'attribut de dimension ne change jamais, de sorte que les faits sont toujours regroupés par cette valeur d'origine. Je n'ai jamais rencontré le Type 0 au cours de ma carrière et je n'ai aucun retour d’expérience à vous donner, mais la seule chose dont je me souviens, c'est que le Type 0 est approprié pour les clés persistantes. N'hésitez pas à commenter si vous souhaitez donner vos réflexions sur les cas d'utilisation du Type 0.
SCD de Type 3 (Ajout de Colonnes)
Le Type 3 maintient un historique limité en ajoutant de nouvelles colonnes à la table de dimension pour stocker quelques versions des données. Typiquement, il stocke la valeur actuelle et une ou plusieurs valeurs précédentes. Cette approche réduit la duplication des données par rapport au Type 2, mais fournit moins d'informations historiques.
Exemple : Si le titre du poste d'un employé change, vous pouvez ajouter une nouvelle colonne à la table pour stocker le titre du poste actuel dans une colonne et l'ancien titre dans une autre.
SCD de Type 4 (Ajout de Mini-Dimension)
Avertissement : pour cette explication, je me réfère fortement au livre de Kimball et je vous recommande de le lire en entier si vous souhaitez améliorer vos compétences en modélisation de données.
La Dimension à Changement Lent de Type 4, également connue sous le nom d'"Ajout de Mini-Dimension", est conçue pour répondre à certaines situations où le rythme des changements s'accélère, en particulier au sein d'une table de dimension à forte volumétrie.
Les dimensions présentent deux défis qui nécessitent un traitement spécial :
- La taille de ces dimensions peut avoir un impact négatif sur les performances de recherche et de filtrage des requêtes.
- La technique SCD de Type 2 pour le suivi des changements peut manquer d'optimisation car nous ne voulons pas ajouter des lignes à une dimension qui compte déjà des millions de lignes, en particulier si les changements sont assez fréquents.
Heureusement, il existe un moyen de résoudre à la fois les problèmes de performance de navigation et de suivi des changements en scindant les attributs fréquemment analysés ou en constante évolution dans une dimension séparée, appelée mini-dimension.
Par exemple, vous pouvez créer une mini-dimension pour un groupe d'attributs démographiques de clients plus volatils, tels que l'âge, le score de fréquence d'achat et le niveau de revenus, en supposant que ces colonnes sont largement utilisées et que les changements de ces attributs sont importants pour l'entreprise.
Il y aurait une ligne dans la mini-dimension pour chaque combinaison unique d'âge, de score de fréquence d'achat et de niveau de revenus rencontrée dans les données, et pas seulement une ligne par client. Avec cette approche, la mini-dimension devient un ensemble de profils démographiques. Bien que le nombre de lignes dans la dimension client puisse atteindre des millions, le nombre de lignes de la mini-dimension est par définition nettement plus faible. Vous laissez derrière vous les attributs plus constants de la table client d'origine.
Des exemples de lignes pour une mini-dimension démographique sont illustrés ici :
À chaque création d'une ligne de table de faits, deux clés étrangères liées au client sont incluses : la clé de la dimension client et la clé de la mini-dimension démographique en vigueur au moment de l'événement, comme le montre la Figure 5-11. La mini-dimension apporte des avantages en termes de performances en fournissant un point d'entrée plus petit pour les faits. Les requêtes peuvent éviter la forte volumétrie de la table de dimension client à moins que les attributs de cette table ne soient contraints ou utilisés comme étiquettes de rapport.
Lorsque la clé de la mini-dimension participe en tant que clé étrangère dans la table de faits, un autre avantage est que la table de faits capture les changements de profil démographique. Supposons que nous chargions des données dans une table de faits de snapshot périodique sur une base mensuelle. En revenant à nos exemples de lignes de mini-dimension démographique dans la Figure 5-10, si l'un de nos clients, John Smith, avait 25 ans avec un faible score de fréquence d'achat et un revenu de 25 000 $, vous commencez par attribuer la clé de la démographie 1 lors du chargement de la table de faits.
Si John a son anniversaire quelques semaines plus tard et a 26 ans, vous attribuerez la clé de la démographie 142 lors du prochain chargement de la table de faits ; la clé de la démographie de John sur les lignes précédentes de la table de faits ne serait pas modifiée. De cette manière, la table de faits suit le changement d'âge. Vous continueriez d'attribuer la clé de la démographie 142 lors du chargement de la table de faits jusqu'à ce qu'il y ait un autre changement dans le profil démographique de John. Si John reçoit une augmentation à 32 000 $ plusieurs mois plus tard, une nouvelle clé de démographie serait reflétée lors du prochain chargement de la table de faits. Encore une fois, les lignes précédentes ne changeront pas. Les cubes OLAP sont également facilement compatibles avec les mini-dimensions de type 4.
Dans l'ensemble, le SCD de Type 4 est utile lorsque vous devez maintenir un équilibre entre le suivi historique et l'efficacité de stockage. Il est généralement appliqué dans des scénarios où vous souhaitez conserver le contexte historique tout en minimisant l'impact sur la taille de la table de dimension principale.
Conclusion
Avec la démocratisation des solutions Cloud comme Google Cloud ou Amazon Web Services, l'accessibilité des entrepôts de données volumineuses et la simplicité du SCD de type 2 ont tendance à définir le SCD de type 2 comme une évidence.
Le SCD de type 2 répond au principal cas d'utilisation d'une plateforme de données en maintenant l'intégrité des données en préservant les relations entre les faits (mesures) et les dimensions (attributs) au fil du temps, garantissant des analyses et des rapports précis. Il fournit un mécanisme d'historisation simple pour vos dimensions et permet aux utilisateurs d'effectuer des analyses historiques en toute simplicité.
Le Type 2 est clairement un élément fondamental de la modélisation de données et c'est sur celui-ci que chaque consultant data doit se concentrer pour le maîtriser car il représente une base solide pour le suivi des dimensions. En plus, son implémentation est assez simple dans un entrepôt de données ce qui en fait une méthode au retour sur investissement très important.