Skip to main content
search
0
Scalefree - Blog - Data Vault - Multi-Active Satellites richtig einsetzen - Teil 1

Multi-Active Satellites in Data Vault 2.0

Mit multi-aktiven Satelliten sind Sie in der Lage, mehrere aktive Datensätze für einen Geschäftsschlüssel zu speichern. Je nachdem, wie die Daten von Ihrer Quelle ankommen, gibt es verschiedene Möglichkeiten, mit multiaktiven Datensätzen in Data Vault 2.0 umzugehen. In diesem Beitrag zeigen wir Ihnen, welche Möglichkeiten Sie bei der Modellierung haben. 

Was sind Multi-Active Satellites?

Multi-active satellites sind vergleichbar mit Standard Satelliten und ihrer Struktur. Wie bereits erwähnt, speichern sie mehrere gleichzeitig aktive Datensätze pro Schlüssel zu einem bestimmten Zeitpunkt. Die genaue Struktur richtet sich jedoch nach dem jeweiligen Anwendungsfall.
Beispielhaftes Data Vault Modell – siehe Abbildung 1.

Multiaktive Satelliten - Hub mit Satellit

Abbildung 1: Data Vault Modell

Wann sollte man Multi-Active Satellites verwenden?

Aus diesem Grund eignen sich Multi-Active Satellites für Szenarien mit multiaktiven Datensätzen. Wir setzen sie ein, wenn das Quellsystem solche Datensätze liefert. Darüber hinaus sind sie auch dann sinnvoll, wenn der Liefermechanismus nicht genügend Metadaten bereitstellt – etwa bei der Verwendung von XML.

 

Das Data Vault Handbook:
Grundlagen und moderne Anwendungen

Ihr Weg zu einer skalierbaren und resilienten Datenplattform

Das Data Vault Handbook ist eine leicht verständliche Einführung in Data Vault. Es richtet sich an Datenexperten und bietet einen klaren, zusammenhängenden Überblick über die Grundprinzipien von Data Vault.

Kostenlos lesen

Ein Beispiel

Angenommen, Sie erhalten die Kundendaten in semi-strukturierten XML-Dateien. Darin befinden sich mehrere Telefonnummern in einem Array. Die Metadaten liefern jedoch keine weiteren Informationen – weder zur Anzahl noch zum Typ oder zur Reihenfolge der enthaltenen Datensätze. Beim Flattening der XML-Datei entstehen so viele Datensätze, wie das Array Tupel enthält (siehe Abbildung 2). Wenn Sie daraus einen Standard-Satelliten erstellen, kann jedoch nur eine Zeile pro Customer Business Key gleichzeitig aktiv sein. Andernfalls würde ein Verstoß gegen den Primärschlüssel auftreten, da Hash Key und ldts (Load Date Timestamp) identisch wären.

Beispiel für einen multiaktiven Satelliten

Abbildung 2 - customer.xml

Verschiedene Optionen für die Umsetzung

Um diese Probleme zu vermeiden und gleichzeitig die aktiven Telefonnummern zu jedem beliebigen Zeitpunkt abfragen zu können, gibt es mehrere Möglichkeiten. Diese hängen jedoch davon ab, ob ein „Multi-Active Key“ verfügbar ist – sowie von Performance-Aspekten und der Nutzbarkeit bei der Abfrage der Daten. Im folgenden Abschnitt stellen wir diese Optionen kurz vor. Im nächsten Beitrag gehen wir dann näher auf die Details ein.

Zeilen in Multi-Active Satellites

Wenn Sie keinen Multi-Active Key haben, aber Multi-Active Satellites verwenden möchten, müssen Sie einen eigenen Schlüssel erzeugen – indem Sie in der Staging-Layer pro Business Key eine Untersequenznummer hinzufügen.Diese muss zusätzlich zum Hash Key und zum LDTS in den Primärschlüssel aufgenommen werden (siehe Abbildung 3). Dabei ist jedoch besondere Vorsicht geboten, falls sich die Daten bei einem späteren Ladevorgang ändern. Ändert sich zum Beispiel die Reihenfolge der Telefonnummern, lässt sich keine bestimmte Nummer mehr eindeutig einer bestimmten Untersequenz zuordnen.

Beispiel für einen multiaktiven Satelliten

Abbildung 3 – Multi-active satellite mit Untersequenznummer

Das Data Vault Handbook:
Grundlagen und moderne Anwendungen

Ihr Weg zu einer skalierbaren und resilienten Datenplattform

Das Data Vault Handbook ist eine leicht verständliche Einführung in Data Vault. Es richtet sich an Datenexperten und bietet einen klaren, zusammenhängenden Überblick über die Grundprinzipien von Data Vault.

Kostenlos lesen

Typen und Typecodes

Wenn es möglich ist, Typecodes zu definieren und sie dem Quellfeed hinzuzufügen, ist es am besten, diese als Teil des Primärschlüssels im Satelliten zu verwenden. In der Regel müssen diese Kategorien nur selten geändert werden. In unserem Beispiel würden wir Kategorien wie „home“, „business“, „cell“ und „fax“ definieren – wie in Abbildung 4 dargestellt. Aber denken Sie daran: Diese Informationen müssen vom Quellsystem geliefert werden. Ist das nicht der Fall, müssen stattdessen Teilsequenzen verwendet werden.

Beispiel für einen multiaktiven Satelliten

Abbildung 4 - Typecode-Lösung

Eine weitere Möglichkeit, Typänderungen zu vermeiden, besteht im Pivoting, bei dem für jeden Typ eine eigene Spalte erstellt wird. Dadurch erhalten Sie die gleiche Granularität wie im Hub. Allerdings muss auch der potenzielle Aufwand für ein Reengineering berücksichtigt werden, falls sich die Typen der Attribute ändern.

 

Extra Hub

Die letzte Möglichkeit, Probleme mit multiaktiven Datensätzen zu lösen, besteht darin, einen zusätzliches, "weak Hub" für das mehrfach aktive Attribut – in diesem Fall die Telefonnummer – zu erstellen und es mit dem "main Hub" zu verknüpfen. Voraussetzung dafür ist, dass dieses Attribut als Business Key qualifiziert.Dabei kann die Anzahl der Hubs erheblich steigen – je nachdem, wie viele multiaktive Datensätze pro Business Key vorhanden sind. Außerdem stellt das neue Hub möglicherweise kein eigenständiges Geschäftsobjekt dar. Diese Lösung ist zwar nicht der bevorzugte Ansatz, kann jedoch in bestimmten Fällen praktikabel sein.

 

Hinzufügen des Multi-Active-Attributs zum zusammengesetzten Schlüssel

Es ist nicht empfehlenswert, den Multi-Active Key einfach zum Business Key hinzuzufügen. Dadurch verändern sich sowohl die ursprüngliche Granularität als auch die semantische Bedeutung. In der Folge geht die ursprüngliche Intention des Hubs verloren.
Beachten Sie diese Grundregeln für einen Raw Data Vault Hub: 

  1. Keine Super- oder Subtypen innerhalb eines Hubs
  2. Keine Vermischung unterschiedlicher semantischer Bedeutungen
  3. Keine Vermischung verschiedener Granularitäten in einem Hub

 

Das Data Vault Handbook:
Grundlagen und moderne Anwendungen

Ihr Weg zu einer skalierbaren und resilienten Datenplattform

Das Data Vault Handbook ist eine leicht verständliche Einführung in Data Vault. Es richtet sich an Datenexperten und bietet einen klaren, zusammenhängenden Überblick über die Grundprinzipien von Data Vault.

Kostenlos lesen

Fazit

Die Implementierung von Multi-Active Satellites kann in vielen Data Vault Projekten sinnvoll sein – insbesondere bei der Arbeit mit semistrukturierte Daten. Bei multiaktiven Datensätzen ist es jedoch in der Regel am besten, mit Typcodes zu arbeiten, die dem Quellfeed hinzugefügt werden. Stehen diese nicht zur Verfügung, sollte auf Untersequenzen zurückgegriffen werden. Als letzte Möglichkeit kann ein zusätzlicher Hub erstellt werden – auch wenn dieses möglicherweise kein echtes Geschäftsobjekt darstellt.

Im nächsten Beitrag befassen wir uns ausführlicher mit den Vor- und Nachteilen der einzelnen Optionen sowie deren konkreter Umsetzung. Dabei geht es unter anderem um Delta-Checks, LDTS, PITs und eine spezielle Hash-Funktion zur Berechnung mehrzeiliger Hashdiffs.

- von Marvin Geerken (Scalefree)

Scalefree - Blog - Data Vault - Multi-Active Satellites richtig einsetzen - Teil 1

Multi-Active Satellites in Data Vault 2.0

Mit multi-aktiven Satelliten sind Sie in der Lage, mehrere aktive Datensätze für einen Geschäftsschlüssel zu speichern. Je nachdem, wie die Daten von Ihrer Quelle ankommen, gibt es verschiedene Möglichkeiten, mit multiaktiven Datensätzen in Data Vault 2.0 umzugehen. In diesem Beitrag zeigen wir Ihnen, welche Möglichkeiten Sie bei der Modellierung haben. 

Was sind Multi-Active Satellites?

Multi-active satellites sind vergleichbar mit Standard Satelliten und ihrer Struktur. Wie bereits erwähnt, speichern sie mehrere gleichzeitig aktive Datensätze pro Schlüssel zu einem bestimmten Zeitpunkt. Die genaue Struktur richtet sich jedoch nach dem jeweiligen Anwendungsfall.
Beispielhaftes Data Vault Modell – siehe Abbildung 1.

Read More

Leave a Reply

Close Menu