Was ist ein Satellit in Data Vault?
Ein Satellit enthält alles, was einen Hub beschreibt: Namen, Status, Beträge und jede Änderung daran, angefügt und nie aktualisiert. Er ist eine Slowly Changing Dimension Typ 2 ohne UPDATE, und bringt von Haus aus einen vollständigen Audit-Trail mit.
Kommt Ihnen das bekannt vor?
- Die Adresse eines Kunden hat sich geändert, und die alte ist weg, weil der Ladevorgang sie überschrieben hat.
- Weil sich der Kontostand täglich ändert, wird jede Nacht auch der offizielle Name des Kunden in eine neue Zeile kopiert.
- Ein Datensatz ist in der Quelle verschwunden, und das Warehouse hat seine Historie gleich mitgelöscht.
Hubs sagen, was existiert. Links sagen, wie die Dinge zusammengehören. Keines von beiden speichert einen Namen, einen Kontostand oder einen Status. Das ist die Aufgabe des Satelliten.
In der Sprache der klassischen Modellierung: Die Attribute einer Entität, ihr Kontext, werden zu
einem Satelliten. Wo die Tabelle Customer neben customer_number auch name, address und
segment führt, hält der Data Vault die Nummer im Kunden-Hub und die Attribute in einem
Satelliten an diesem Hub.
Was ein Satellit ist
Ein Satellit enthält die beschreibenden Attribute eines Hubs und jede Änderung daran im Lauf der Zeit. Zieht ein Kunde um, überschreibt der Satellit die Adresse nicht: Er fügt eine neue Zeile an, und die alte bleibt erhalten. Jede Zeile hält fest, wann sie in den Vault kam und welches System sie geliefert hat. So ist jede Version nachvollziehbar.
Wer die dimensionale Modellierung kennt: Ein Satellit ist eine Slowly Changing Dimension Typ 2, nur ohne dass je ein UPDATE ausgeführt wird. Auf Wunsch lässt sich die Historisierung auch abschalten, das ergibt einen nicht historisierten Satelliten.
Der Aufbau eines Satelliten
| Teil | Spalten | Zweck |
|---|---|---|
| Parent | Hash-Schlüssel des Hubs | Welchen Eintrag im Parent-Hub diese Zeile beschreibt |
| Zeit und Audit | Load Date, Record Source | Wann die Zeile ankam und woher |
| Payload | Beschreibende Attribute | Straße, E-Mail, Betrag, Status |
| Änderungserkennung (optional) | Hash-Diff | Ein Hash über die gesamte Payload |
Der Primärschlüssel ist der Parent-Hash-Schlüssel plus das Load-Date.
Der Hash-Diff ist eine Option, keine Regel
Data Vault nach Lehrbuch verlangt, für jede Satellitenzeile einen Hash-Diff zu berechnen, um Änderungen zu erkennen. In der Praxis hängt das vom Ladevorgang ab:
- Delta-Loads: Die gespeicherten Zeilen haben ihren Hash bereits, also ist es günstig, nur die eingehenden Zeilen zu hashen. Hier ist der Hash-Diff im Vorteil.
- Full-Loads: Bei jedem Lauf Millionen von Zeilen zu hashen, kostet viel Rechenleistung. Ein direkter
Spaltenvergleich (
IS DISTINCT FROM) ist auf modernen Datenbanken oft schneller. - Breite Tabellen: Oft wird behauptet, breite Tabellen profitierten am meisten vom Hashen. Eher trifft das Gegenteil zu: Breitere Zeilen bedeuten längere Zeichenketten, die vor dem Hashen verkettet werden müssen.
Datavault Builder unterstützt den Hash-Diff als Option, nicht als Pflicht. Dem Hash-Diff ist ein eigener Artikel dieser Reihe gewidmet.
Transaktionen erhalten einen eigenen Satelliten
Mengen, Preise und Beträge einer Auftragsposition beschreiben die Transaktion selbst. Mit einem Grain-Hub für die Auftragsposition, wie im Artikel über Links beschrieben, kommen sie in einen gewöhnlichen Satelliten an diesem Grain-Hub und werden dort wie jedes andere Attribut historisiert.
Wie Sie Satelliten aufteilen
- Nach Quellsystem. Daten aus CRM und ERP teilen sich nie einen Raw-Satelliten. Jede Quelle behält ihre eigene Herkunft, unverändert.
- Nach Änderungshäufigkeit. Stehen ein täglicher Kontostand und ein offizieller Name im selben Satelliten, wird der Name jeden Tag in eine neue Zeile kopiert. Schnell und langsam wechselnde Attribute werden getrennt gehalten.
- Nach Schutzbedarf. Personenbezogene Daten wie Name, E-Mail und Geburtsdatum kommen in einen eigenen Satelliten, getrennt von Attributen, die niemanden identifizieren. Für das DSGVO-Reporting gibt es dann eine klare Anlaufstelle, und Zugriffsregeln oder ein Löschantrag betreffen nur diesen Satelliten.
- Nie löschen. Verschwindet ein Datensatz in der Quelle, bleibt seine Historie erhalten. Ein Record-Tracking-Satellit vermerkt, dass der Schlüssel nicht mehr geliefert wird. Die Ausnahme ist eine gesetzliche Pflicht, Informationen zu entfernen, etwa ein Löschantrag nach DSGVO, und genau dort zahlt sich die Aufteilung nach Schutzbedarf aus.
Was sich mit Datavault Builder ändert
Sie ordnen im Modell Quellspalten einem Satelliten zu. Änderungserkennung, Append-only-Ladevorgang und Audit-Spalten werden generiert und laufen nativ auf Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle oder PostgreSQL. Zwei Situationen, die klassische Lademuster nicht abdecken, sind von Haus aus berücksichtigt:
- Bitemporale Ladevorgänge. Ein Finanzinstitut mit Tagesendverarbeitung hat zwei Zeitachsen: wann etwas für das Geschäft galt und wann das Warehouse es geladen hat. Datavault Builder verarbeitet die Tagesend-Historie und die Lade-Historie gemeinsam und erzeugt bitemporale Satelliten. Wie das funktioniert, lesen Sie im Beitrag zur „Bi-temporale Datenverarbeitung im DWH“. Auch der Bitemporalität ist ein eigener Artikel dieser Reihe gewidmet.
- Mehr als eine Änderung pro Ladevorgang. Ein Data Lake liefert oft mehrere Versionen desselben Datensatzes in einem Batch. Klassische Muster laden eine Änderung pro Schlüssel und Lauf. Damit müssten Sie die Daten in einer Schleife abarbeiten, und jede Version erhielte den Zeitpunkt des Ladevorgangs als Datum. Datavault Builder lädt alle Änderungen in einem Batch und ordnet jeden Datensatz an der Stelle der Zeitachse ein, an der der Data Lake ihn erfasst hat.
Erleben Sie es live mit Ihren eigenen Datenquellen
Buchen Sie eine kostenlose Demo und bringen Sie den Connector mit, der Sie am meisten kostet, an Geld oder an Zeit.
Drei Schritte zum Satelliten
-
An genau einen Hub anhängen
Jeder Satellit beschreibt genau einen Hub. Er wird über den Hash-Schlüssel dieses Hubs plus das Load-Date identifiziert.
-
Bei Bedarf sinnvoll aufteilen
Wo es hilft: nach Quellsystem, nach Änderungshäufigkeit oder nach Schutzbedarf (personenbezogene Daten getrennt).
-
Die Ladeprozesse generieren lassen
Datavault Builder generiert für jeden Satelliten die Änderungserkennung und den Append-only-Ladevorgang.
Wie Datavault Builder die Reibungsverluste in der Ingestion beseitigt
-
Ingestion ist eingebaut
Batch-, Delta- und CDC-Ladevorgänge aus Datenbanken, Dateien, REST-APIs, NoSQL und Python-Quellen, mit Streams wie Kafka, die als Micro-Batches ankommen. Dieselbe Plattform, die das Warehouse generiert, keine zweite Rechnung.
-
Ihr Schema, nicht das des Anbieters
Quelltabellen werden auf ein Data-Vault-2.0-Modell gemappt, das Sie entworfen haben. Eine neue Spalte oder eine umbenannte Tabelle ändert ein Mapping, keine Kette von Skripten nach dem Load.
-
Nur Deltas bewegen sich
Hubs, Links und Satelliten laden, was sich geändert hat. Vollständige Ladevorgänge bleiben im Staging, statt jede Nacht weiter unten neu verarbeitet zu werden.
-
Historie wird von Haus aus behalten
Jede Änderung wird so festgehalten, wie sie eintrifft. Historien- und Stichtagsabfragen funktionieren also auch dort, wo die Quelle ihre eigenen Zeilen überschreibt.
-
Code, den Sie nie von Hand schreiben
Laden, Historisierung und Lineage werden in Echtzeit aus dem Modell generiert und laufen nativ auf Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle oder PostgreSQL.
-
Eine Plattform, bis zu neun Tools weniger
Modellierung, ETL, CI/CD, Dokumentation und Lineage an einem Ort. Das ist es, was 14,7 Minuten von der Anforderung bis zur Produktion möglich macht.
Sprechen Sie mit unserem Experten
Zwanzig Minuten mit unserem Sales Director und eine ehrliche Antwort, ob das zu Ihrem Stack passt.
Matt Collett
Sales Director
Perfekt, wählen Sie einen passenden Termin:
Weitere Probleme in dieser Serie
-
Technische Schlüssel vs. Business-Keys in Data Vault
Quellsysteme speichern den Business-Key im Stammdatensatz, doch jede Beziehung läuft über technische Schlüssel. Vier Wege, damit umzugehen, was jeder davon kostet, und das Muster, das wir verwenden: ein PSA-Hub für die technischen Schlüssel, der dem Business-Key-Hub zugeordnet wird.
-
Was ist ein Business-Key in Data Vault?
Ein Business-Key ist die Kennung, mit der Ihre Mitarbeitenden und Kunden tatsächlich arbeiten: die Kundennummer, die Rechnungsnummer, die Vertragsnummer. Er ist stabil, wird systemübergreifend verwendet, und auf ihm baut jeder Hub in einem Data Vault auf.
-
Was ist ein Link in Data Vault?
Ein Link hält fest, dass Business-Keys zusammengehören: Dieser Auftrag gehört zu diesem Kunden. Datavault Builder deckt den klassischen Data-Vault-Link ab und ergänzt ihn um einen Transaktions-Link, der an einem Grain-Hub verankert ist. Dieser legt die Granularität einer Transaktion fest und ermöglicht Beziehungen zwischen Transaktionen.
-
Was ist ein Hub in Data Vault?
Ein Hub bildet ein zentrales Geschäftsobjekt wie Kunde, Produkt oder Konto als Liste seiner Schlüssel ab: jeden Schlüssel, den das Warehouse je gesehen hat, jeden genau einmal. Er speichert Identität, keinen Zustand, und genau diese Beschränkung macht ihn zu dem Punkt, an dem die Silos der Quellsysteme aufgelöst werden.
Fragen und Antworten
- Dan Linstedt. Er hat die Methode in den 1990er-Jahren entwickelt und sie um das Jahr 2000 veröffentlicht. Data Vault 2.0, das das Modell um Hash-Schlüssel, eine Methodik und eine Architektur ergänzt, folgte 2013.
- Das Standardwerk ist Building a Scalable Data Warehouse with Data Vault 2.0 von Dan Linstedt und Michael Olschimke (Morgan Kaufmann, 2015).
- Nein. Bill Inmon sieht Data Vault als Weiterentwicklung seiner Sicht auf das Enterprise Data Warehouse in dritter Normalform, nicht als konkurrierenden Ansatz.
- Nein. Ein dimensionaler Output ist oft Teil einer Data-Vault-Implementierung: Der Vault hält die integrierte Historie, und für das Reporting werden darauf Star-Schemas aufgebaut. Derselbe Vault kann auch flache Tabellen oder ein Unified Star Schema liefern.
- Mit Automatisierung lässt sich eine Sicht in dritter Normalform auf einem Data Vault vollständig deterministisch generieren. Der Vault hält die Daten nur einmal, und die 3NF-Schicht wird aus dem Modell abgeleitet. So funktioniert das.
- Es ohne Automatisierung zu versuchen. Data Vault beruht auf wenigen strengen, sich wiederholenden Mustern. Genau deshalb ist es mühsam und fehleranfällig, es von Hand zu schreiben, und einfach, es zu generieren. Deshalb sollten Sie Datavault Builder einsetzen.
- Ja. Wer Schlüssel, Beziehungen und Historie auf Hubs, Links und Satelliten aufteilt, erhält mehr Tabellen als in einem normalisierten oder dimensionalen Modell. Deshalb sollte die physische Schicht durch einen modellgetriebenen Ansatz wie Datavault Builder abstrahiert werden: Sie arbeiten am Geschäftsmodell, und die Tabellen werden generiert.
- Buchen Sie eine Demo und sehen Sie, wie ein Data Vault auf Ihren eigenen Quellen entsteht, oder bestellen Sie eine Trainingsumgebung und probieren Sie es selbst aus.
- Hier. Datavault Builder ist eine Lösung zur Data-Vault-Automatisierung: Sehen Sie sich die Preise an oder buchen Sie eine Demo.
- Datavault Builder wird jährlich für die Nutzung lizenziert. Kauflizenzen gibt es auf Anfrage. Die Editionen und ihren Umfang finden Sie auf der Preisseite.