taod Insight: Vorteile eines Data Vault in der Praxis - Data Warehouse

by Dirk Müller
2 Wochen ago
543 Views

Die Anforderungen an ein modernes Data Warehouse sind schnell aufgezählt: Daten sollen schnell und korrekt integrierbar sein und auch auf große inhaltliche Änderungen soll flexibel reagiert werden können. Die von Dan Linstedt geschaffene Methode Data Vault verspricht diese Vorteile umzusetzen.

In der Vergangenheit hat die Diskussion vorwiegend zwischen Befürwortern der dimensionalen Modellierung mit denen der normalisierten Modellierung stattgefunden. In den letzten Jahren scheint jedoch die von Dan Linstedt geschaffene Methode des Data Vault eher die gewünschten Anforderungen an ein modernes DWH erfüllen zu können.

Ein Blick zurück

Bei vielen großen Data-Warehouse-Implementierungen wurde oft die Modellierung anhand der dritten Normalform präferiert. Dies entspricht den Vorstellungen von einem der „Urväter“ des Data-Warehouse-Konzeptes (Bill Immon) und hatte das Ziel ein umfassendes, unternehmensweites Datenmodell für das Core Data Warehouse aufzubauen. Neben dem zeitaufwändigen Aufbau ist insbesondere die Weiterentwicklung des Datenmodells mit hohem Aufwand und langen Projektlaufzeiten verbunden.

Im Gegensatz zu Inmon schlägt Ralph Kimball bereits seit mehr als 20 Jahren den Aufbau eines dimensionalen Datenmodells für das Core Data Warehouse vor, welches mit einer Star- oder Snowflake-Modellierung Daten in Dimensions- und Faktentabellen organisiert. Relativ nahe am Verständnis der fachlichen Anwender gelingt sowohl der erstmalige Aufbau als auch die iterative Weiterentwicklung relativ schnell.

Als wesentlicher Kritikpunkt an der dimensionalen Modellierung für das Core Data Warehouse gilt die mangelnde Robustheit gegenüber Änderungen an den Quellsystemen oder an der Geschäftslogik, die in der Regel umfangreiche und aufwendige Modifikationen im Datenmodell mit sich bringen. Heute wird die dimensionale Modellierung daher vorwiegend auf der Ebene der Data Marts genutzt.

Das Konzept des Data Vault verspricht die Nachteile der klassischen Modellierungsmethoden zu überwinden. Dies liegt an der Grundidee des Ansatzes, die darin besteht, Informationen im Data Warehouse so aufzuteilen, dass eine einfache Integration und Historisierung der Daten möglich ist und das Modell zudem ohne Migration der bestehenden Tabellen erweitert werden kann.

Jetzt mit einer Data Discovery Session starten

Elemente eines Data Vault

Im Unterschied zu den bisherigen Ansätzen, bei denen die Daten in der 3. Normalform abgelegt wurden, werden bei der Data-Vault-Modellierung alle zu einem Geschäftskonzept (z.B. Kunde oder Produkt) gehörenden Informationen in drei Kategorien eingeteilt und in drei Typen von Datenbanktabellen abgelegt.

Hubs

In die Kategorie Hub gehören alle Informationen, welche ein Geschäftskonzept eindeutig beschreiben, d. h. ihm seine Identität geben (z. B. Kundennummer beim Kunden). Hubs repräsentieren somit die Kernobjekte der jeweiligen Geschäftslogik. Hubs dienen der der Identifikation der fachlichen Entitäten und beinhalten zusätzlich zu einem fachlichen Schlüssel einen künstlichen Primärschlüssel (Surrogatschlüssel) sowie technische Attribute wie Informationen über das Quellsystem oder das Ladedatum. Ein Hub lässt sich als eine Liste von eindeutigen Geschäftsschlüsseln beschreiben, welche als Integrationspunkt für Daten aus verschiedenen Quellen dienen.

Links

In die Kategorie Link werden alle Arten von Beziehungen zwischen Geschäftskonzepten (z.B. Zuordnung eines Produktes zu einem Hersteller) abgelegt. Links werden zur Verknüpfung zwischen (zwei oder mehreren) Hubs verwendet und nutzen hierfür die Surrogatschlüssel. Beziehungen in einem Data Vault werden immer als n:n-Beziehungen modelliert und in einer eigenen Beziehungsentität abgelegt. Eine zukünftige Änderung in der Kardinalität der Relation führt daher nicht zu einer Änderung des Datenmodells.

Satelliten

Die Kategorie Satellite beinhaltet alle Attribute, die ein Geschäftskonzept oder eine Beziehung beschreiben (z.B. Name oder Alter eines Kunden). Ein Hub oder Link kann mehrere Satelliten haben. Auch bei den Satelliten werden zusätzlich die Angaben zur Datenquelle und Ladezeit festgehalten. Das Ladedatum ist zusammen mit der Hub-Referenz der Primärschlüssel der Tabelle. Dies ermöglicht eine komplette Historisierung der Datensätze.

Die Verknüpfung der einzelnen Entitäten basiert dabei immer auf eine Modellierung über Links, die auf Hubs verweisen. Zwischen den einzelnen Hubs ist innerhalb von Data Vault eine direkte Verbindung nicht erlaubt. Ebenso untersagt sind Fremdschlüssel in einem Satellite, welche auf einem fremden Hub zeigen.

Die strikte Trennung zwischen Hubs, Links und Satellites und die Einhaltung der vorgegebenen Regeln ist wesentlich für die flexible Integration von Daten aus mehreren Quellsystem und die Erweiterbarkeit des Datenmodells.

Wenn zu einem bestehenden Datenmodell neue Daten hinzugefügt werden, verändern diese das bestehende im Rahmen von Data Vault Modell nicht. Werden neue Attribute zu einem existierenden Hub hinzugefügt, so werden die in neue Satelliten abgelegt. Komplett neue Geschäftsobjekte werden per Link angefügt. Dies hat den Vorteil, dass die bestehenden Prozesse nicht erneut getestet werden, da diese von den Änderungen nicht betroffen sind

ETL-Prozesse für Data Vault

Die strikte Trennung zwischen Hubs, Links und Satellites ist wesentlich für die Integration von Daten aus mehreren Quellen und die Erweiterbarkeit des Datenmodells.

Der Ladeprozess der Daten basiert auf einheitlichen und einfachen Mustern. Die entsprechenden ETL-Prozesse bestehen aus Key Lookups, INSERT-Statements auf Hubs, Links und Satelliten, sowie aus spezifischen Deltaermittlungen. Die verschiedenen Tabellen eines Typs werden dabei unabhängig voneinander geladen, sodass eine parallelisierte Ausführung möglich ist.

Der gesamte Beladungsprozess besteht aus drei Schritten:

  1. Alle Hubs werden parallel geladen
  2. Alle Links und Hub Satellites werden parallel geladen
  3. Alle Link Stellites werden parallel geladen

Komplexer als das Beladen des Data Vaults ist die Extraktion von Daten in dimensionale Data Marts, denn um eine Dimensions- oder Faktentabelle zu beladen, müssen zum Teil mehrere Hubs, Links und Satellites zusammengeführt werden. Eine zusätzliche Herausforderung entsteht in diesem Kontext vor allem beim Laden von Slowly Changing Dimension des Typ 2. Für Hubs mit mehreren Satelliten bedeutet dies, dass alle Gültigkeitsintervalle ermittelt werden müssen, welche sich durch die Verknüpfung der Gültigkeiten der einzelnen Satelliten ergeben.

Die Speicherung der Gültigkeitsintervalle erfolgt in einer weiteren Satelitte-Tabelle, in der die unterschiedlichen Ladezeitpunkte mit der zugehörigen Gültigkeit verknüpft werden. Ist dieser Schritt umgesetzt, lassen sich die jeweils gültigen Versionen der einzelnen Satellites ermittelten und die Dimensionstabellen korrekt befüllen.

Die ETL-Prozesse für die einzelnen Strukturelemente (Hubs, Links und Satellites) sind ansonsten nach einem gleichen Muster aufgebaut, was bedeutet, dass eine wiederkehrende Logik für die Ladeprozesse des Data Vaults entsteht, die sich relativ einfach über geeignete Generatoren implementieren lässt. Dies erleichtert anschließend spürbar den Anpassungsprozess bei Strukturänderungen in großen Data Warehouses. Aufgrund der einheitlichen Regeln für die Modellierung und die Ladestrecken lässt sich in der Praxis beobachten, dass sich Tabellen und ETL-Prozesse vergleichsweise einfach generieren lassen.

Vorteile von Data Vault in der Praxis

Der effiziente Umgang mit der zunehmenden Datenflut wird für Unternehmen immer mehr zum zentralen Erfolgsfaktor. Innerhalb kürzester Zeit ändern sich die Anforderungen der verschiedenen Fachabteilungen und an die Datenbasis. Große Datenmengen aus unterschiedlichsten, teilweise unstrukturierten Datenquellen müssen erfasst und zu entscheidungsrelevanten Informationen für Fachabteilungen und Geschäftsführung aufbereitet werden.

Für IT-Abteilungen wird es immer schwieriger schnell und flexibel auf dieses Datenwachstum zu reagieren und neue Datenquellen in bestehende Data Warehouses zu integrieren. Datenmodelle müssen sich den Erfordernissen von Big Data anpassen. Sollen z.B. Daten aus Social Media integriert werden oder Informationen von Kundenkarten oder Smart-Metering-Systemen ist nachvollziehbar, dass dies nur mit agilen Modellierungsmethoden möglich sein kann.

Das Konzept des Data Vault zielt darauf ab, einen Ansatz bereitzustellen, der in der Lage ist diesen Entwicklungen zu begegnen und dass Komplexität zu reduzieren. Die Methode ist besonders geeignet für Data Warehouses, bei denen häufig Strukturerweiterungen vorgenommen werden müssen und für Projekte, bei denen von Anfang an ein agiles Vorgehen gewählt wird. Ziel der Modellierung mit Data Vault sind effizient erweiterbare Data Warehouses.

Die Erfahrungen aus unseren Projekten im Bereich Data Vault sind größtenteils als positiv zu beschreiben. Mit dem Ansatz kann der Prozess der Datenmodellierung verbessert werden, woraus insbesondere für Unternehmen die folgenden Vorteile entstehen können:

Reduktion von Komplexität
Automatisierung von Prozessen
Schnellere Ladeprozesse
Vereinfacht Rückverfolgbarkeit durch Historisierung
Skalierbarkeit ermöglicht flexibles Wachstum

Data Vault empfiehlt sich vor allem bei drei Anwendungsfällen. Unternehmen, die innerhalb von kurzer Zeit sehr große Datenvolumen laden müssen, Unternehmen, die eine agile Entwicklung von anstreben sowie Unternehmen, die im Rahmen einer bereits existierenden Silo-Architektur ein vorgelagertes Core Data Warehouse implementieren möchten.

Informieren Sie sich zu den Einsatzmöglichkeiten von Talend