In unserem ersten Beitrag über multiaktive Satelliten haben wir kurz die verschiedenen Implementierungen erläutert, die zur Lösung von Multiaktivitäten verwendet werden können. Jetzt gehen wir näher auf die Vor- und Nachteile dieser Ansätze mit ein- oder ausgeschalteten Delta-Prüfungen ein.
Kurze Zusammenfassung von Multi-Active Satellites
Multiaktive Satelliten ermöglichen es Ihnen, in Data Vault 2.0 mehrere aktive Datensätze pro Geschäftsschlüssel zu implementieren. Um die Notwendigkeit dieser Lösung zu verdeutlichen, betrachten wir das häufige Auftreten eines Quellsystems, das nicht die erforderlichen Metadaten bereitstellt, z. B. bei der Arbeit mit XML-Dateien.
Eine Lösung für die obigen Probleme besteht darin, einen mehrfach aktiven Satelliten zu erstellen, indem eine Teilnummer pro Business Key hinzugefügt wird. Auf diese Weise wird allen Fällen Rechnung getragen, in denen von der Quelle selbst kein multiaktives Attribut geliefert wird. Bei Telefonnummern könnte diese Information ein Tag für eine Geschäfts-, Privat- oder Mobiltelefonnummer sein. Eine weitere Möglichkeit besteht darin, einen zusätzlichen Hub für das multi-aktive Attribut zu schaffen. Da es sich dabei jedoch nicht um ein echtes Geschäftsobjekt handelt, kann die erste Lösung effektiver sein.
Delta Check OFF
Es gibt zwei Möglichkeiten, neue Datensätze in einen mehrfach aktiven Satelliten einzufügen - mit aktiven oder inaktiven Delta-Prüfungen. Wenn die Delta-Prüfungen deaktiviert sind, werden alle Datensätze eines Geschäftsschlüssels aus Ihrer Quelllieferung in den Satelliten eingefügt.
Dies hat den Vorteil, dass die Ladevorgänge schneller ablaufen und ein konsistenter Zeitstempel für das Ladedatum des übergeordneten Hash-Schlüssels verwendet wird, unabhängig vom Attribut "multi-aktiv".
Später vereinfacht es die Abfrage auf der Grundlage der multiaktiven Daten (siehe Abbildung 1). Ein entscheidender Nachteil ist, dass die aufgenommene Datenmenge stark ansteigen kann, wenn volle Datenmengen empfangen werden.
In diesem Fall sollten Sie Ihre Daten nach dem Zeitstempel des Ladedatums aufteilen.
Abbildung 1: Verknüpfung von Datensätzen mit einer PIT-Tabelle, wenn eine LDTS für alle aktiven Datensätze pro Schlüssel vorhanden ist.
Delta Check ON
Um die Datenmenge zu reduzieren, verwenden Sie einfach Deltaprüfungen. Dabei gleichen Sie die eingehenden Daten mit dem neuesten LDTS pro Hash-Schlüssel ab.
Eine nützliche Funktion zur Nutzung der Deltaprüfung ist LISTAGG(). Diese Funktion wandelt Werte aus einer Gruppe von Zeilen in eine Liste von Werten um. Als Ergebnis können Sie eine Hash-Differenz von mehrfach aktiven Attributen pro Geschäftsschlüssel erstellen (siehe Abbildung 2).
Abbildung 2. Mehrzeilige Hash-Differenz unter Verwendung der LISTAGG()-Funktion
Wenn neue Daten eintreffen, können sie mit der mehrzeiligen Hash-Differenz verglichen werden. Auf diese Weise kann ein großer Teil der Daten ignoriert werden. Wenn ein Delta erkannt wird, werden alle Datensätze per Hash-Schlüssel auch wenn sich der Inhalt der Daten für nur eine Teilsequenz ändert. Das Ergebnis ist ein einheitlicher Zeitstempel des Ladedatums pro Hash-Schlüssel. Außerdem wird ein Delta festgestellt, wenn sich die Reihenfolge der Datensätze ebenfalls ändert. Dieser Ansatz ist ein Kompromiss, um die Anzahl der Datensätze zu verringern und gleichzeitig einen konsistenten Zeitstempel für das Ladedatum pro Hash-Schlüssel zu erhalten, so dass nur eine PIT-Tabelle erforderlich ist.
Typ-Codes verwenden
Eine andere Methode zur Bewältigung der Mehrfachtätigkeit ist die Verwendung von Attributstypen, sofern diese vorhanden sind, wie im vorherigen Beitrag erläutert.
Wenn Sie über Typcodes verfügen, können Sie Zeile für Zeile vergleichen und nur diese spezifischen Daten laden. Aber folglich erhalten Sie unterschiedliche LDTS pro multiaktivem Attribut. Bei der Verwendung von PIT-Tabellen in der business vault benötigen Sie daher eine zusätzliche multiaktive PIT-Tabelle. Dieses Szenario ist in Abbildung 3 dargestellt.
Abbildung 3. Die Notwendigkeit eines MA-PIT mit verschiedenen LDTS aktiver Datensätze pro Schlüssel
Wenn Sie die mehrfach aktive Spalte in mehrere Spalten, eine Spalte pro Merkmal, aufteilen können, brauchen Sie keinen der oben genannten Vor- oder Nachteile zu berücksichtigen. In diesem Fall verwandeln Sie den Satelliten in einen Standardsatelliten. Bezogen auf unser Beispiel mit den Telefonnummern würden Sie mehrere neue Spalten pro Telefontyp erstellen.
Diese Lösung ist anwendbar, wenn Sie sicher sein können, dass sich die Merkmale der Telefontypen in Zukunft nicht ändern werden. Andernfalls müssen Sie Ihren Prozess umgestalten, um alle gelieferten Daten zu erfassen!
Schlussfolgerung
In unserem zweiten Beitrag über multiaktive Satelliten haben wir uns mit den Hintergründen der verschiedenen Methoden beschäftigt. Sie können diese Informationen nutzen, um Ihre eigene multiaktive Lösung in Abhängigkeit von Ihren vorhandenen Daten zu implementieren.
Beachten Sie jedoch, dass es oft empfehlenswert ist, die zu ladenden Daten einzuschränken. Zu diesem Zweck wird die LISTAGG()-Funktion nützlich. Wenn Sie eine Lösung mit potenziell unterschiedlichen LDST verwenden, denken Sie daran, diese bei der Abfrage der Daten zu berücksichtigen.
- von Marvin Geerken (Scalefree)
Updates und Support erhalten
Bitte senden Sie Anfragen und Funktionswünsche an [email protected].
Für Anfragen zu Data Vault-Schulungen und Schulungen vor Ort wenden Sie sich bitte an [email protected] oder registrieren Sie sich unter www.scalefree.com.
Um die Erstellung von Visual Data Vault-Zeichnungen in Microsoft Visio zu unterstützen, wurde eine Schablone implementiert, die zum Zeichnen von Data Vault-Modellen verwendet werden kann. Die Schablone ist erhältlich bei www.visualdatavault.com.
Hallo,
In meinem aktuellen Projekt müssen wir einen multiaktiven Satelliten verwenden, und wir haben diesen Artikel gelesen. Wir verwenden SQL SERVER, wo wir die Funktion STRING_AGG haben, aber die Funktion akzeptiert nur eine Spalte. Und wir haben mehr als 100 Spalten in der Tabelle. Ist es also möglich, diesem Artikel Beispielabfragen hinzuzufügen, um zu zeigen, WIE Sie LISTAGG, STRING_AGG oder andere DB-Funktionen zur Berechnung Ihres Hash-Diffs verwenden, denn in Ihrem Beispiel ist es einfach, Sie haben nur eine Spalte mit einer Telefonnummer. Wie handhaben Sie den Fall, dass die Anzahl der Spalten eine Verkettung über die maximale Größe eines nvarchar zum Beispiel machen könnte.
Hallo Julien,
Wenn die Verkettung für die Hashdiff-Berechnung die maximal mögliche Größe überschreitet, sollten Sie in Erwägung ziehen, Ihre Attribute in mehrere (multiaktive) Satelliten aufzuteilen (z. B. durch Aufteilung nach Änderungsrate). Möglicherweise sind auch nicht alle Attribute multiaktiv und Sie könnten die beschreibenden Attribute in einen oder mehrere Standardsatelliten und einen multiaktiven Satelliten aufteilen. Ich würde nicht empfehlen, eine so große Anzahl von Spalten in eine einzige Satellitentabelle aufzunehmen.
Ich hoffe, das hat geholfen.
- Öle