Ansätze zur Handhabung von Löschungen und Änderungen in Data Vault 2.0
In diesem Artikel zeigen wir Ihnen, wie Sie Counter Records für den Umgang mit Änderungen und Löschungen in Data Vault 2.0 nutzen können. Im Januar dieses Jahres haben wir einen Beitrag veröffentlicht, der einen Ansatz zur Handhabung von Löschungen und Business-Key-Änderungen in Data-Vault-Beziehungen ohne vorhandenen Audit-Trail beschreibt.
Dieser Ansatz ist eine Alternative zur Driving-Key-Struktur, die Teil der Data-Vault-Standards und eine valide Lösung darstellt.
Manchmal kann es jedoch schwierig sein, diejenigen Business Keys in einer Beziehung zu identifizieren, die sich niemals ändern und daher bei Abfragen als Anchor Keys (Link Driving Keys) verwendet werden. Die vorgestellte Methode fügt Counter Records für geänderte oder gelöschte Datensätze ein, speziell bei Transaktionsdaten und stellt einen einfachen sowie pragmatischen Ansatz dar. Der Artikel warf jedoch viele Fragen auf, sorgte für Verwirrung und regte Diskussionen an.
Ziel dieses Blogbeitrags ist es daher, tiefer in die technische Implementierung einzutauchen, deren Praxistauglichkeit wir im Einsatz bestätigen konnten.
In this article:
Technische Implementierung in Data Vault 2.0
Die folgende Tabelle zeigt eine leicht modifizierte Zielstruktur des Links aus dem vorherigen Blogbeitrag bei der Verwendung von Counter Records in Data Vault 2.0.
In diesem Fall konzentrieren wir uns auf Transaktionen, die vom Quellsystem geändert wurden, ohne dass Audit-Daten über die Änderungen oder Gegenbuchungen durch die Quelle selbst geliefert werden.
Es ist wichtig zu beachten, dass der Link Verkaufspositionen speichert, indem er auf den Kunden und das Produkt verweist. Daher bilden der Link-Hash-Key sowie das Load Date die Primärschlüssel (Primary Keys), da wir in diesem Fall keine konsistente, einzelne Record-ID erfassen können. Aus diesem Grund wird der Link-Hash-Key aus dem Customer-Business-Key, dem Product-Business-Key, dem Verkaufspreis und dem Transaktions-Zeitstempel berechnet.

Abbildung 1: Link mit Counter Records
Um den Link zu laden, sind die folgenden Schritte erforderlich:
Zunächst wird geprüft, ob eine Gegenbuchung überhaupt notwendig ist, und diese gegebenenfalls eingefügt, da der vorherige Schritt neue Daten aus der Staging Area in den Link lädt. Bitte beachten Sie, dass die Ladelogik in diesem Schritt der des Standard-Link-Ladeprozesses ähnelt, jedoch einige Unterschiede aufweist:

Abbildung 2: Insert-Logik
In Data Vault 2.0 soll der Counter Record diejenigen Datensätze identifizieren, genauer gesagt die aktuellsten Datensätze nach Link-Hash-Key, die zwar im Link existieren, aber aufgrund von Löschungen oder Änderungen nicht mehr in der Staging Area vorhanden sind. Somit werden Abfrageergebnisse mit einem Wert von -1 für „counter“ ausgeglichen, was anzeigt, dass diese Datensätze in diesem Stadium nicht gefunden werden können. Beachten Sie, dass wir in dieser Abfrage den bestehenden Datensatz aus der Link-Tabelle im Raw Vault auswählen. Wichtig ist hierbei jedoch, dass die Ankunftszeit des Datensatzes dem LDTS des tatsächlichen Staging-Batches entsprechen sollte. Daher ist das LDTS innerhalb des gezeigten Statements eine Variable mit dem Load Date des Staging-Batches:

Abbildung 3: Counter-Logik
In Fällen, in denen wieder auf den ursprünglichen Datensatz zurückgewechselt wird, gilt dasselbe Verfahren: Der aktuell fehlende Wert wird durch den neuen Wert ausgeglichen, der erneut mit einem neuen LDTS eingefügt wird.
Fazit
Wir können daher festhalten, dass dieser Data-Vault-Ansatz gut für Tabellen funktioniert, die reine Hotspots für Messwerte bilden. Er eignet sich besonders dann, wenn Änderungen möglich sind, obwohl die Daten Transaktionen darstellen, und kein CDC verfügbar ist.
Anstelle einer Logik wie „Hole den aktuellsten Datensatz pro Hash-Key (Driving Key)“ ist es möglich, Berechnungen sowie Aggregationen direkt auf einer Tabelle auszuführen. Das führt letztendlich zu einer besseren Performance in der Endstufe.
Wenn Sie noch Fragen haben, hinterlassen Sie gerne einen Kommentar. Wir freuen uns auf den Austausch und Ihre Gedanken zu diesem Thema.
