Skip to main content
Scalefree Blog Datenmodellierung Modellierung bei strukturellen Änderungen im Quellsystem

Modellierung eines Satelliten bei strukturellen Änderungen im Quellsystem

Im Laufe der Zeit kann sich ein Quellsystem verändern. Es stellt sich die Frage, wie diese Änderungen in ein Data Vault 2.0 Data Warehouse integriert werden können – insbesondere im Hinblick auf die Satelliten.

Bei Änderungen der Quelltabellenstruktur gilt es, eine Balance zwischen Reengineering-Aufwand und Performance zu finden. Um allen zu helfen, die mit strukturellen Änderungen im Quellsystem konfrontiert sind, stellt dieser Artikel auf Basis unserer Knowledge Base Empfehlungen für verschiedene Arten von Quelländerungen vor.

Dieser Artikel beschreibt Eigenschaften des Data Vault 2.0-Modells: Das Fundament aus Hub-, Link- und Satelliten-Entitäten kann sich problemlos an Änderungen der Quelldaten anpassen, wodurch die Kosten für das Reengineering des Enterprise Data Warehouse reduziert werden.

Neue Spalten im Quellsystem: Vorgehen beim Hinzufügen von Attributen

Es gibt zwei Optionen, um neue Attribute aus der Quelle in das Data Warehouse zu übernehmen. Erstens kann der bestehende Satellit angepasst werden.
Dies ist ein pragmatischer Ansatz, erfordert jedoch die Änderung bestehenden Codes.
Zweitens ist es möglich, einen neuen Satelliten für das neue Attribut bzw. die neuen Attribute zu erstellen, ohne die bestehenden Satelliten zu verändern. Dies hat den Vorteil, dass kein bestehender Code angepasst werden muss (Zero Code Impact), erfordert jedoch mehr Joins im Bereich der Informationsbereitstellung (Information Delivery) des Data Vaults.

Die erste Option erfordert diesen Join nicht, da das neue Attribut dem bestehenden Satelliten hinzugefügt wird. Der beste Ansatz besteht darin, die Vor- und Nachteile beider Optionen im Kontext Ihrer spezifischen Situation abzuwägen. Automatisierungstools können beispielsweise die ALTER-TABLE-Anweisung in der Regel automatisch ohne manuellen Programmieraufwand verarbeiten, erfordern jedoch Änderungen an der Datenbank.

Löschen von Spalten im Quellsystem

Eine Option besteht darin, den „alten“ Satelliten zu schließen, d. h. nicht weiter zu beladen (indem der ETL-Code deaktiviert wird), und einen neuen Satelliten zu erstellen, der fortan beladen wird. Der gleiche Ansatz wird gewählt, wenn die zugrunde liegenden Datenstrukturen der Quelle in größerem Umfang geändert werden.
Alte Satelliten werden abgeschaltet, neue Satelliten mit der neuen Struktur werden anschließend beladen.
Eine andere Option ist sinnvoller, wenn nur geringfügige Änderungen erforderlich sind, wie etwa das Entfernen einer einzelnen Spalte. In diesem Fall kann diese Spalte mit einem NULL-Wert oder einem fachlich korrekten Ersatzwert „simuliert“ werden, was für Revisionszwecke hilfreicher ist.

Wenn ein neuer Satellit erstellt wird, führt dies zu zwei neuen Spalten in der zugehörigen PIT-Tabelle (Hash-Key + LDTS).

Das Schließen eines Satelliten und das Erstellen eines neuen ist auch bei größeren Änderungen im Quellsystem anwendbar, beispielsweise bei einer neuen Release-Version des Quellsystems, bei der Spalten gelöscht, umbenannt und neu erstellt werden. Bei kleineren Änderungen, insbesondere wenn Spalten entfallen, empfehlen wir die Anpassung des bestehenden Satelliten.

Erstellung einer virtuellen Dimensionstabelle aus einer PIT-Tabelle mit mehreren Satelliten

Wenn ein neuer Satellit für das neue Attribut (oder die neuen Attribute) erstellt wird, anstatt den bestehenden Satelliten zu verändern, ist eine neue virtuelle Dimension erforderlich, um Informationen aus PIT-Tabellen unter Verwendung beider Satelliten basierend auf dem erforderlichen Zeitstempel abzufragen.
Es gibt zwei Ansätze, wie Informationen aus beiden Satelliten abgerufen werden können:

  • Der erste Ansatz nutzt einen Computed Satellite, in dem Sie alle Satelliten mit dem aktuellsten Datensatz pro Hash-Key und derselben Struktur kombinieren. Dies kann jedoch eine komplexe Abfrage sein, da sie von der Datenmenge und der Anzahl der zu joinenden Satelliten abhängt.
  • Der zweite Ansatz besteht darin, eine PIT-Tabelle für alle Satelliten zu verwenden. Beim Abfragen der Daten beispielsweise für eine Dimensionstabelle, wählen Sie den Datensatz aus dem führenden Satelliten aus, zum Beispiel mithilfe einer IIF-Anweisung oder der COALESCE-Funktion.

Fazit

Obwohl jede Situation einen Ansatz erfordert, der den individuellen Charakter der Aufgabenstellung berücksichtigt, haben sich die oben genannten Lösungen bei der Umsetzung in unseren eigenen Projekten als essenziell erwiesen.

Wir teilen diese Empfehlungen, damit auch andere von unseren Erkenntnissen aus Testen, Anwendung und Implementierung profitieren können.

Leave a Reply