Donnerstag, 26. Juli 2018

ModGen für Einsteiger V: Der Surrogatschlüssel

Für den fünften (und letzten) Teil unserer ModGen-Einsteigertipps möchten wir uns näher mit den für Data Vault wichtigen Surrogatschlüsseln (Surrogate keys) beschäftigen. Ich habe diese bereits in einem vorangegangenen Blogeintrag angesprochen (ich meine es war der dritte Teil), nun wollen wir einmal genauer schauen wie ModGen diese generiert und welche Einstellungsmöglichkeiten uns zur Verfügung stehen. 

 
Surrogatschlüssel sind künstliche Datenbankschlüssel, welche sich nicht aus den Daten der Tabelle ableiten lassen. Für den Data Vault „Standard“ (Standard in Verbindung mit Data Vault muss immer mit einer gewissen Vorsicht betont werden, wie ich mittlerweile bei einigen Kunden und aus diversen Workshops gelernt habe) sind diese für die Objekttypen „Hub“ und „Link“ verpflichtend.  

Objekttypen eines Data Vault Modells



Wie auf der Grafik zu erkennen ist, verfügt die Tabelle „HUB_ZipCode“ in der Farbe giftgrün über einen eigenen Surrogatschlüssel, in Form der Spalte „HUB_ZipCode_SID“. Der Link wiederum (leuchtgrün) verfügt ebenfalls über seinen eigenen Surrogatschlüssel, hier als Spalte „LNK_ZipCode_SID“. Lediglich SAT-Tabellen benötigten diesen Schlüssel nicht. Dieser wird vom verbundenen Hub vererbt.
Doch wie legt ModGen diese Schlüssel an, bestimmt den korrekten Datentyp und sonstige Attribute? Hierfür stehen zwei Verfahren zur Verfügung.

1. Der HKEY
Generiert ModGen einen Surrogatschlüssel benötigt er dafür eine Vorlage. Wir haben darauf verzichtet, einen Default einzubauen, wäre die Chance sehr gering, dass dieser den Anforderungen des Nutzers genügt. Stattdessen wird ModGen einen Fehler pro Tabelle ausgeben, welche keine Vorlage für einen Surrogatschlüssel enthält.
Eine Möglichkeit ModGen diese Vorlage zur Verfügung zu stellen, ist der Spaltentyp „HKEY“.



Mit HKEY befüllte Spalte

Hier haben wir eine Tabelle in unserem Staging-Modell, welcher wir die Spalte „SurrogatTemplate“ hinzugefügt haben. Diese Spalte ist mit dem MODGEN_COLUMN_TYPEHKEY“ befüllt. Das bedeutet: Diese Spalte wird von der Generierung nur dafür verwendet, als Vorlage für den Surrogatschlüssel jenes Hubs zu dienen, welcher aus dieser Tabelle generiert wird.
Der HKEY ermöglicht es also, pro generiertem Hub den Surrogatschlüssel separat festzulegen. Gehen wir natürlich davon aus, dass all unsere Surrogatschlüssel im rawVault – Modell über dieselben Attribute verfügen, erscheint dieses Vorgehen sehr zeitintensiv. Aus diesem Grund haben wir eine zweite Option.

2. Domain als Template für Surrogatschlüssel
Anstatt für jede Tabelle im Quellmodell ein eigenes HKEY-Feld anzulegen, besteht die Möglichkeit, vor der Generierung in den Advanced Options eine Domain auszuwählen, welche als Vorlage für sämtliche Surrogatschlüssel im Zielmodell gilt. Wir haben dieses Thema bereits in Teil 1 und 4 angesprochen. 

Auswahl einer Advanced Options im ModGen - Menü



Die hier gelisteten Domains welche für die Generierung der Surrogatschlüssel zur Verfügung stehen, werden aus dem Template-Modell bezogen und können dort individuell erstellt und gepflegt werden. Wie das im Detail funktioniert, haben wir in Blog 4 dieser Reihe beschrieben.



Wichtig ist zu wissen, dass ModGen in der Lage ist, beide Optionen in einem Quellmodell zu Verarbeiten. Zuerst wird geprüft, ob ein HKEY vorliegt. Nur wenn das nicht der Fall ist, wird auf die Advanced Option und somit auf die ausgewählte Domain zugegriffen. Trifft gar keine der beiden Optionen zu, wird das Objekt von der Generierung ausgeschlossen und ein Fehler im Data Vault Compare – Dialog erzeugt.



Wir sind am Ende unserer kleinen Reihe rund um Einsteigertipps für ModGen. Ich als Autor hoffe natürlich, dass Ihnen die Tipps weitergeholfen haben. Selbstverständlich sollten Sie diesen Blog weiterverfolgen, wird es nicht der letzte Beitrag zu ModGen oder anderen spannenden Themen gewesen sein.



Fragen, Kritik oder sonstige Anmerkungen nehmen wir gern in den Kommentaren entgegen oder treten Sie einfach direkt mit uns in Kontakt.
0 Kommentare:
Kommentar veröffentlichen