Data Vault Beladung mit Talend Data Integration

Data Vault Beladung mit Talend Data Integration

In meiner langjährigen Arbeit im Bereich Business Intelligence (BI) habe ich in vielen Unternehmen Data Warehouse Projekte umgesetzt. Einige dieser Unternehmen setzen bei ihren BI-Projek­ten zur Modellierung des Data Warehouse auf Data Vault und auf Talend Data Integration (Talend DI) als ETL-Tool, um ihr Data Warehouse zu bewirtschaften. Da es in Talend DI keine Komponenten gibt, die explizit die Beladung von Data Vault Strukturen übernehmen, müssen wir auf die vorhandenen Komponenten der jeweiligen Datenbank zurückgreifen. Als Berater stehen wir somit häufig vor der Frage: „Wie gestaltet man für den Kunden die Ladeprozesse?“

Eine mögliche Antwort auf diese Frage soll in diesem Blogbeitrag vorgestellt werden. Sie beschreibt eine beim Kunden implementierte Methode für ein Beladungsverfahren.

 

Was ist überhaupt Data Vault

 

„Data Vault ist eine Modellierungstechnik für Data Warehouses, die insbesondere für agile Data Warehouses geeignet ist. Sie bietet eine hohe Flexibilität bei Erweiterungen, eine vollständige unitemporale Historisierung der Daten und erlaubt eine starke Parallelisierung der Datenladeprozesse“.[1]

Das Data Vault Modell basiert auf 3 Entitätstypen. Diese Entitätstypen sind Hubs, Links und Satelliten. Die Hubs separieren die Business Keys vom restlichen Modell, die Links speichern die Beziehungen zwischen den Business Keys und die Satelliten speichern den Kontext (entweder die Attribute des Business Keys oder der Beziehung). Unter einem Business Key versteht man einen Schlüssel, der ein Business-Objekt eindeutig identifiziert, beispielsweise bei einem Buch die ISBN. Alle Entitäten enthalten zudem einen Hash Key, der aus einem verschlüsselten Business Key gebildet wird und der Primärschlüssel der jeweiligen Tabelle ist.

Die Abhängigkeiten zwischen Hubs, Links und Satelliten sind in Abbildung 1: Hubs, Links und Satelliten dargestellt.

 

 

Abbildung 1: Hubs, Links und Satelliten

 

Da eine vollständige Beschreibung des Data Vault Modells den Rahmen des Artikels überschreiten würde, beschränke ich mich hier auf den für die Beladung wichtigen Teil.

 

Data Vault Beladungsverfahren

 

Bevor die Hubs, Links und Satelliten im Data Vault Datenbankschema beladen werden können, muss zuerst bestimmt werden, welche Daten noch nicht aus den Quelltabellen übertragen worden sind. Dafür hat sich der Talend-Partner cimt ag ein Framework überlegt, in dem sich jeder Job mit seinem Ausführungsstatus und Ergebnissen in eine Statustabelle einträgt. Aus der Statustabelle werden dann die entsprechenden Informationen für den nächsten Start gelesen. Beim nächsten Start wird zuerst geprüft, welche Job Instance ID (JID) beim letzten Job-Lauf in die Zieltabelle geladen wurde. Er überträgt dann nur noch die Daten ab der letzten erfolgreich gelaufenen Job Instance ID (siehe Abbildung 2: Job Instance Status Tabelle)

 

 

Abbildung 2: Job Instance Status Tabelle

 

Beladung Hubs und Links

 

Da die Beladung der verschiedenen Data Vault Entitäten (Hub/ Link/ Satellit) immer nach dem gleichen Prinzip verläuft, haben die (ET)Load-Talend-Jobs die gleiche Struktur. Für die Hubs und Links gibt es pro Entität je einen expliziten und für die Satellitentabellen einen generischen Talend-Job, der die Beladungslogik zusammenfasst, ohne dabei Quell- und Zieltabelle zu spezifizieren.

 

Die Beladung von Hubs und Links verläuft nach dem gleichen Prinzip:

Pro Hub kann es mehrere Quelltabellen geben. Für jede Quelltabelle wird in einem separaten Sub Job ein Select Statement generiert (Siehe 1. Komponente in Abbildung 3: Hub Beladung). Diese Select Statements werden in der tJava-Komponente zwischengespeichert und dann iterativ abgearbeitet. Zuerst wird das Select Statement auf der Quelltabelle abgesetzt. In einer tMap werden die zurückgegebenen Datensätze dann mit den vorhandenen Datensätzen aus dem jeweiligen Hub per Inner Join verknüpft. Nur die Datensätze, die noch nicht im Hub vorhanden sind, werden anschließend in den Hub geschrieben. Für jeden Hub bzw. Link existiert ein Talend-Job, der so aufgebaut ist wie in Abbildung 3. Es existieren zwei Meta-Tabellen in der Datenbank, Hub_Table_Mapping und Hub_Column_Mapping. Im Hub_Table_Mapping sind die Quell- und Zieltabellen eingetragen, im Hub_Column_Mapping sind die Hash und Business Keys des jeweiligen Hubs enthalten. Aus diesen Tabellen werden die Select Statements für den Talend-Job generiert. Die Beladung der Links erfolgt analog mit Meta-Tabellen, die nach dem gleichen Prinzip aufgebaut sind wie die der Hubs.

 

 

Abbildung 3: Hub Beladung

 

Beladung der Satelliten

 

Die Beladung der Satellitentabellen erfolgt über einen generischen Talend-Job, für den als Parameter die Quelltabellen und die Satellitennamen notwendig sind. Zuerst werden dann die Meta-Tabellen Sat_Table_Mapping und Sat_Column_Mapping ausgelesen, die die Informationen enthalten, wie die Spalten der Quelltabellen auf die Zieltabelle gemappt werden. Anschließend wird über Routinen in tJavaRow- und tJavaFlex-Komponenten ein SQL-Statement zur Beladung generiert, das dann in einer tDBRow-Komponente ausgeführt wird.

Einen Ausschnitt aus dem generischen Satelliten-Beladungsjob mit den oben beschriebenen Komponenten zeigt Abbildung 4:

 

 

Abbildung 4: Satelliten-Beladung

 

Fazit zur Data Vault Beladung mit Talend

Auch wenn es in Talend DI keine vorgegebenen Komponenten für die komplette Beladung in ein Data Vault Modell gibt, existieren doch genügend Möglichkeiten dies mit den vorhandenen Komponenten umzusetzen. Das hier dargestellte Verfahren ist eins von vielen möglichen Wegen. Talend DI bietet die Flexibilität, Beladungsprozesse nach individuellen Anforderungen zu gestalten.

 

Mehr über Birger und die cimt ag

Nachdem er seine Bachelorarbeit im Bereich Datamining verfasst hat, arbeitet Birger seit 9 Jahren im Bereich Business Intelligence/ Data Warehouse. Seit einigen Jahren ist er BI-Consultant bei der cimt ag mit dem Fokus auf ETL-Entwicklung mit Data Vault und Talend. Die cimt ag ist seit 10 Jahren mit über 100 zertifizierten Beratern der einzige Talend Platinum Partner in der Region DACH und bietet neben dem Schwerpunkt BI-Beratung auch Erfahrungen in Data Warehouse, Data Analytics und Cloud Migration Projekten.

 

 

[1] https://de.wikipedia.org/wiki/Data_Vault 

An der Diskussion teilnehmen

0 Comments

Hinterlasse eine Antwort

Your email address will not be published. Required fields are marked *