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.

Qu'est-ce qu'un satellite dans Data Vault ?

La plateforme d'automatisation de data warehouse à laquelle les équipes data font confiance

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

  1. 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.

  2. 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).

  3. 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.

Reconnu par BARC dans The Data Fabric Survey 26

Rencontrez notre expert

Vingt minutes avec notre Sales Director et une réponse honnête sur l’adéquation avec votre stack.

Matt Collett

Matt Collett

Sales Director

Que recherchez-vous ?

En soumettant, vous acceptez notre Politique de confidentialité.

Les autres problèmes traités par cette série

  • Clés techniques vs clés métier

    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.

  • 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.

  • Link

    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.

  • Hub

    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