Data Vault
Qu'est-ce qu'un data vault ?
Un data vault est un modèle de conception pour la modélisation de données qui permet de créer un data warehouse à des fins d'analytique à l'échelle de l'entreprise. Le data vault comprend trois types d'entités : des centres, des liens et des satellites.
Les centres correspondent à des concepts métier fondamentaux, les liens représentent les relations entre ces centres, et les satellites stockent des informations sur les centres et les relations qui les unissent.
Le data vault est un modèle de données particulièrement adapté aux entreprises qui ont fait le choix du paradigme du lakehouse.
Modélisation de data vault : centres, liens et satellites
- Centres : chaque centre correspond à un concept métier fondamental, par exemple : identifiant de client, numéro de produit, immatriculation de véhicule. Les utilisateurs emploient une clé métier pour obtenir des informations sur un centre. Cette clé métier peut combiner un ID de concept métier, un ID de séquence, une date de chargement et autres métadonnées.
- Liens : les liens représentent les relations entre les centres.
- Satellites : les satellites comblent les lacunes des informations descriptives concernant les concepts métier fondamentaux. Les satellites stockent des informations qui appartiennent au centre et aux relations qui les unissent.
Quelques éléments supplémentaires à garder en tête :
- Un satellite ne peut pas avoir de lien direct avec un autre satellite.
- Un centre ou un lien peut avoir un ou plusieurs satellites.
Avantages des data vaults
- Agiles
- Structurés, avec des possibilités de refactorisation
- Extrêmement évolutifs, pouvant accueillir des volumes de l'ordre du Po
- Employant des modèles compatibles avec la génération de code ETL
- Architecture familière : couches de données, ETL, schémas en étoile
Les data vaults reposent sur des méthodologies et des techniques agiles. De fait, ils peuvent s'adapter à une évolution rapide des besoins commerciaux. L'un des grands avantages de la méthodologie data vault réside dans le fait que les tâches ETL nécessitent moins de refactorisation en cas de modification du modèle.
Techniques de modélisation par couche de lakehouse
Une fois ces concepts en tête, voyons comment le data vault s'articule avec nos couches de données Bronze, Silver et Gold, lorsque les données passent d'un état brut à un état raffiné prêt pour l'analytique. Dans cette architecture multi-saut, les données brutes sont stockées dans une couche Bronze après une transformation minimale, et leur structure est aussi proche que possible du système source. La méthodologie data vault peut être appliquée à la couche Silver : c'est à ce moment-là que les données sont converties en centres, liens et satellites.
Dans la couche Gold, vous pouvez créer plusieurs data marts et data warehouses selon la méthodologie de modélisation dimensionnelle ou Kimball. Comme on l'a vu précédemment, la couche Gold est destinée à la création de rapports et utilise davantage de modèles dénormalisés et optimisés pour la lecture, avec un nombre réduit de jointures. Il arrive parfois que des tables de la couche Gold soient entièrement dénormalisées, généralement si les data scientists veulent alimenter leurs algorithmes pour créer des fonctionnalités.
Appliquer le modèle du data vault à la couche Silver simplifie l'ETL et réduit considérablement la quantité de modifications nécessaires pour remplir les data marts et les data warehouse, car les centres facilitent la gestion des clés (clés de substitution/clés naturelles).Enfin, les satellites simplifient le chargement des dimensions car ils possèdent tous les attributs, et les liens facilitent celui des tables de faits parce qu'ils détiennent toutes les relations.
Ressources
- Plateforme Data Lakehouse par Databricks
- Page produit de Databricks SQL
- Blog Databricks : Différentes techniques de modélisation de data warehouse et approches d'implémentation sur la plateforme lakehouse Databricks
- Blog Databricks : Qu'est-ce qu'un data vault et comment l'implémenter sur la plateforme lakehouse Databricks ?