Qu'est-ce qu'un satellite dans Data Vault ?
Un satellite contient tout ce qui décrit un hub : noms, statuts, montants, ainsi que chacune de leurs modifications, ajoutées sans jamais être mises à jour. C'est une Slowly Changing Dimension de type 2 sans UPDATE, avec une piste d'audit complète intégrée.
Cela vous semble familier ?
- L'adresse d'un client a changé, et l'ancienne a disparu parce que le chargement l'a écrasée.
- Un solde qui change chaque jour recopie chaque nuit le nom officiel du client dans une nouvelle ligne.
- Un enregistrement a disparu de la source, et l'entrepôt a supprimé son historique avec lui.
Les hubs disent ce qui existe. Les links disent comment les éléments sont liés entre eux. Ni l’un ni l’autre ne stocke un nom, un solde ou un statut. C’est le rôle du satellite.
En termes de modélisation classique, les attributs d’une entité, son contexte, deviennent un
satellite. Là où la table Customer porte name, address et segment à côté de
customer_number, le Data Vault conserve le numéro dans le hub client et les attributs dans un
satellite rattaché à ce hub.
Ce qu’est un satellite
Un satellite contient les attributs descriptifs d’un hub et chacune de leurs modifications au fil du temps. Lorsqu’un client déménage, le satellite n’écrase pas l’adresse : il ajoute une nouvelle ligne, et l’ancienne est conservée. Chaque ligne enregistre quand elle est entrée dans le vault et quel système l’a livrée, si bien que chaque version est traçable.
Si vous connaissez la modélisation dimensionnelle, un satellite est une Slowly Changing Dimension de type 2, sans le moindre UPDATE. L’historisation peut aussi être désactivée à la demande, ce qui donne un satellite non historisé.
L’anatomie d’un satellite
| Élément | Colonnes | Rôle |
|---|---|---|
| Parent | Hash key du hub | L’entrée du hub parent que cette ligne décrit |
| Temps et audit | Load Date, Record Source | Quand la ligne est arrivée, et d’où |
| Payload | Attributs descriptifs | Rue, e-mail, montant, statut |
| Détection des changements (facultative) | Hash diff | Un seul hash sur l’ensemble du payload |
La clé primaire est constituée de la hash key du parent et de la Load Date.
Le hash diff est un choix, pas une règle
Le Data Vault tel que le décrivent les manuels préconise de calculer un hash diff pour chaque ligne de satellite afin de détecter les changements. En pratique, cela dépend du chargement :
- Chargements delta : les lignes stockées portent déjà leur hash, si bien qu’il est peu coûteux de ne calculer le hash que des lignes entrantes. Le hash diff l’emporte.
- Chargements complets : calculer le hash de millions de lignes à chaque exécution consomme
beaucoup de puissance de calcul. Une comparaison directe des colonnes (
IS DISTINCT FROM) est souvent plus rapide sur les moteurs modernes. - Tables larges : on affirme couramment que ce sont les tables larges qui profitent le plus du hash. C’est plutôt l’inverse : plus les lignes sont larges, plus les chaînes à concaténer avant le calcul du hash sont longues.
Datavault Builder prend en charge le hash diff comme une option, pas comme une obligation. Le hash diff fera l’objet de son propre article dans cette série.
Les transactions ont leur propre satellite
Les quantités, prix et montants d’une ligne de commande décrivent la transaction elle-même. Avec un grain hub pour la ligne de commande, comme décrit dans l’article sur les links, ils vont dans un satellite ordinaire rattaché à ce grain hub, où ils sont historisés comme n’importe quel autre attribut.
Comment découper les satellites
- Par système source. Les données du CRM et de l’ERP ne partagent jamais un satellite brut. Chaque source conserve son propre lignage, inchangé.
- Par fréquence de modification. Un solde quotidien et un nom officiel réunis dans un même satellite recopient le nom dans une nouvelle ligne chaque jour. Les attributs qui changent vite et ceux qui changent lentement doivent être séparés.
- Par sensibilité. Les données personnelles, comme le nom, l’e-mail et la date de naissance, vont dans un satellite à part, séparé des attributs qui n’identifient personne. Le reporting RGPD dispose alors d’un seul endroit clairement défini à consulter, et les règles d’accès ou une demande de suppression ne s’appliquent qu’à ce satellite.
- Ne jamais supprimer. Lorsqu’un enregistrement disparaît de la source, son historique est conservé. Un record tracking satellite indique que la clé n’est plus livrée. L’exception est une obligation légale d’effacer des informations, comme une demande d’effacement au titre du RGPD, et c’est là que le découpage par sensibilité porte ses fruits.
Ce qui change avec Datavault Builder
Vous mappez les colonnes sources vers un satellite dans le modèle. La détection des changements, le chargement en insertion seule et les colonnes d’audit sont générés, et s’exécutent nativement sur Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle ou PostgreSQL. Deux situations que les patterns de chargement classiques ne gèrent pas sont prises en charge d’emblée :
- Les chargements bitemporels. Un établissement financier avec un traitement de fin de journée a deux axes temporels : le moment où quelque chose était vrai pour le métier, et le moment où l’entrepôt l’a chargé. Datavault Builder traite ensemble l’historique de fin de journée et l’historique de chargement, et crée des satellites bitemporels. Consultez le traitement des données bi-temporelles pour voir comment cela fonctionne : la bitemporalité fera aussi l’objet de son propre article dans cette série.
- Plusieurs changements par chargement. Un data lake livre souvent plusieurs versions du même enregistrement dans un seul lot. Les patterns classiques chargent un changement par clé et par exécution : il faudrait donc boucler sur les données, et chaque version serait datée du moment du chargement. Datavault Builder charge tous les changements en un seul lot et place chaque enregistrement sur l’axe temporel au moment où le data lake l’a enregistré.
Voyez-le fonctionner sur l'une de vos sources
Réservez une démo gratuite et apportez le connecteur qui vous coûte le plus cher, en argent ou en temps.
Trois étapes pour créer un satellite
-
Le rattacher à un seul hub
Chaque satellite décrit exactement un hub, avec pour clé la hash key de ce hub et la Load Date.
-
Le découper judicieusement si nécessaire
Là où c’est utile : par système source, par fréquence de modification, ou par sensibilité (en isolant les données personnelles du reste).
-
Laisser générer les chargements
Datavault Builder génère la détection des changements et le chargement en insertion seule pour chaque satellite.
Comment Datavault Builder supprime les frictions de l'ingestion
-
L'ingestion est intégrée
Chargements batch, delta et CDC depuis les bases de données, les fichiers, les API REST, les sources NoSQL et Python, les flux comme Kafka arrivant en micro-batches. La même plateforme qui génère le warehouse, sans seconde facture.
-
Votre schéma, pas celui du fournisseur
Les tables source sont mappées vers un modèle Data Vault 2.0 que vous avez conçu. Une nouvelle colonne ou une table renommée change un mapping, pas une chaîne de scripts post-chargement.
-
Seuls les deltas circulent
Les Hubs, Links et Satellites chargent ce qui a changé. Les rechargements complets restent en staging au lieu d’être retraités en aval chaque nuit.
-
L'historique est conservé par conception
Chaque changement est conservé tel qu’il arrive, donc le reporting historique fonctionne même là où la source écrase ses propres lignes.
-
Du code que vous n'écrivez jamais
Le chargement, l’historisation et la traçabilité sont générés depuis le modèle en temps réel et s’exécutent nativement sur Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle ou PostgreSQL.
-
Une plateforme, jusqu'à neuf outils en moins
Modélisation, ETL, CI/CD, documentation et traçabilité au même endroit. C’est ce qui rend possible les 14,7 minutes entre le besoin et la production.
Rencontrez notre expert
Vingt minutes avec notre Sales Director et une réponse honnête sur l’adéquation avec votre stack.
Matt Collett
Sales Director
Parfait, choisissez un créneau qui vous convient :
Les autres problèmes traités par cette série
-
Clés techniques versus clés métier dans Data Vault
Les systèmes sources conservent la business key dans l’enregistrement de référence, mais toutes les relations reposent sur des clés techniques. Quatre façons de gérer cette situation, ce que coûte chacune, et le pattern que nous utilisons : un PSA hub pour les clés techniques, mappé sur le hub de la business key.
-
Qu'est-ce qu'une business key dans Data Vault ?
Une business key est l’identifiant que vos collaborateurs et vos clients utilisent réellement : le numéro de client, le numéro de facture, le numéro de contrat. Elle est stable, elle est partagée entre les systèmes, et c’est sur elle que repose chaque hub d’un Data Vault.
-
Qu'est-ce qu'un link dans Data Vault ?
Un link enregistre une relation entre des business keys : cette commande appartient à ce client. Datavault Builder couvre le link Data Vault classique et y ajoute un link de transaction ancré sur un grain hub, qui fixe la granularité d’une transaction et permet de relier les transactions entre elles.
-
Qu'est-ce qu'un hub dans Data Vault ?
Un hub représente un concept métier central, comme le client, le produit ou le compte, sous la forme de la liste de ses clés : toutes celles que l’entrepôt a jamais reçues, chacune une seule fois. Il stocke l’identité, pas l’état, et c’est cette sobriété qui en fait le point où les silos des systèmes sources disparaissent.
Questions et réponses
- Dan Linstedt. Il a développé la méthode dans les années 1990 et l’a publiée vers 2000. Data Vault 2.0, qui ajoute au modèle les hash keys, une méthodologie et une architecture, a suivi en 2013.
- L’ouvrage de référence est Building a Scalable Data Warehouse with Data Vault 2.0 de Dan Linstedt et Michael Olschimke (Morgan Kaufmann, 2015).
- Non. Bill Inmon considère Data Vault comme une évolution de sa vision de l’entrepôt de données d’entreprise en troisième forme normale, et non comme une approche concurrente.
- Non. Une couche de restitution dimensionnelle fait souvent partie d’une implémentation Data Vault : le vault conserve l’historique intégré, et les schémas en étoile sont construits au-dessus pour le reporting. Le même vault peut aussi fournir des tables plates ou un Unified Star Schema.
- Avec l’automatisation, une vue en troisième forme normale au-dessus d’un Data Vault peut être générée de manière entièrement déterministe. Le vault contient les données une seule fois, et la couche 3FN est dérivée du modèle. Comment cela fonctionne.
- S’y lancer sans automatisation. Data Vault repose sur un petit nombre de patterns stricts et répétitifs : c’est précisément ce qui le rend fastidieux et source d’erreurs quand on l’écrit à la main, et simple à générer. C’est pourquoi il vaut mieux utiliser Datavault Builder.
- Oui. Répartir les clés, les relations et l’historique entre hubs, links et satellites produit plus de tables qu’un modèle normalisé ou dimensionnel. C’est pourquoi la couche physique doit être masquée par une approche pilotée par le modèle comme Datavault Builder : vous travaillez sur le modèle métier, et les tables sont générées.
- Demandez une démo et voyez un Data Vault construit sur vos propres sources, ou commandez un environnement de formation pour l’essayer vous-même.
- Ici. Datavault Builder est une solution d’automatisation Data Vault : consultez les tarifs ou demandez une démo.
- Datavault Builder est concédé sous licence annuelle d’utilisation. Des licences perpétuelles sont disponibles sur demande. Les éditions et leur contenu figurent sur la page des tarifs.