Daniel Piatkowski

Data Vault ist eine Modellierungsmethode  und Vorgehensweise  welche sowohl agile als auch skalierbare Enterprise Data Warehouse Projekte ermöglicht. Der Schlüssel hierzu bildet das Data Vault Datenmodell.

Um zu verstehen was das Data Vault Modell agil und skalierbar macht, ist zunächst zu verstehen warum andere Ansätze das nicht sind. In der konventionellen Modellierung in der 3. Normalform  steht die Vermeidung von Redundanzen im Vordergrund. Der Vorteil hierbei besteht darin Daten unter Verwendung von möglichst wenig Speicherkapazität zu persistieren. Dieser Ansatz stammt aus Zeiten in denen Speicherkapazität sehr kostspielig war. Modelle dieser Art sind weder für das performante Laden von Daten, noch für performante Abfragen dieser Daten geeignet. Die entstehenden Abhängigkeiten innerhalb des Datenmodells sind enorm. Diese Abhängigkeiten gehören zu den Hauptursachen für hohe Änderungsaufwände in klassischen EDWH-Projekten.  Schon kleine Änderungen am Datenmodell bedeuten große Umbauarbeiten sowohl an der Datenbankstruktur als auch an schreibenden und lesenden ETL-Prozessen.  Auch EDWH Modelle welche auf der dimensionalen Modellierung beruhen tun sich mit Veränderungen oft schwer. Da sie meist zweckgerichtet für eine bestimmte Nutzergruppe entwickelt werden, berücksichtigen sie auch nur diese Bedürfnisse. Flexibilität und eine Skalierung auf andere Kontexte ist meist nicht vorgesehen. In beiden Fällen sind Änderungen und Erweiterungen mit hohen Aufwänden verbunden. Wenn ganz neue Quellsysteme integriert werden, steigen die Aufwände für Anpassungen und Regressionstests in einem Maße welches sich nur schwer vertreten lässt. Die Kosten für Umbauten sind verglichen zu den Kosten der fachlichen Neuentwicklungen oft unzumutbar.

Wie unterscheidet sich hier Data Vault?

Data Vault geht hier einen anderen Weg. Die Modellierung nach Data Vault beabsichtigt technische Abhängigkeiten so gering wie möglich zu halten. Zudem sollen Daten performant geladen werden. Bei Änderungen und Erweiterungen sollen nur die von der Änderung tatsächlich betroffenen Bereiche beeinflusst werden.

Um das zu erreichen ist es erforderlich die von der Änderung betroffene Bereiche von anderen zu isolieren. Hierzu werden die Quelldaten im EDWH in ihre Bestandteile segmentiert und verteilt gespeichert. Auf ihren Weg  in das analytische Modell  werden diese später wieder zusammengeführt.

Data Vault Segmentierung

Data Vault  Trennung der Attribute

Durch dieses Vorgehen werden die Abhängigkeiten innerhalb der EDWH Schicht erheblich reduziert. Anhand von Geschäftsentitäten lässt sich diese Vorgehensweise gut verdeutlichen. Geschäftsentitäten sind  Basisgeschäftsobjekte  wie Kunden,   Filialen, Tarife  oder Produkte.  Diese können eindeutig durch einen Business Key identifiziert werden. Attribute dieser Objekte setzen sich grundsätzlich, aus identifizierenden und deskriptiver Attribute zusammen. Zusätzlich weisen sie relationale Attribute auf, die Beziehungen zu anderen Entitäten abbilden.

Identifizierende Attribute

Identifizierende Attribute bilden den Business-Key einer Business-Entität. Über ihn ist eine Entität eindeutig und idealerweise Systemunabhängig zu identifizieren. Im folgendem Beispiel einer Produkt – Entität bildet die ProductNumber den Business Key.  Sie identifiziert das Produkt im Quellsystem und über die Grenzen des Quellsystems hinweg eindeutig.

Der Surrogate Schlüssel  ProductID im Beispiel kann ein Product nur innerhalb des Quellsystems identifizieren. Er ist ein technischer Schlüssel und kein Attribut der Geschäftsentität Produkt.

Product Entität

Product Entität

Deskriptive Attribute

Deskriptive Attribute einer Entität enthalten beschreibende Kontextinformationen des Geschäftsobjekts. Im Beispiel sind das ProductName,  ProductDescription und das Price Attribut.

Relationale Attribute

Relationale Attribute referenzieren identifizierende Attribute anderer Entitäten. Hierdurch werden Entitätsbeziehungen abgebildet. Im Beispiel referenziert das Attribut SupplierId den Lieferanten des Produktes. Hierdurch kann zu einem Produkt der Zulieferer identifiziert werden.

Segmentierung

Bei der Modellierung nach Data Vault werden einzelne,  dieser Attribut – Typen in dafür eigens vorgesehenen Tabellen, verteilt gespeichert.  Hier wird zwischen Hub-, Satelliten- und Link-Tabellen unterschieden. Bei der Bewirtschaftung eines EDWH werden die Quelldaten segmentiert und die segmentierten Daten auf die entsprechenden Tabellen verteilt.

Hub Tabellen

In den Hub Tabellen des Data Vault Modells werden die identifizierenden Attribute gespeichert. Sie enthalten die distinkte Liste von Business Keys einer Geschäftsentität.  Eine Hubtabelle wird  immer von mindestens einen Satelliten referenziert.

Hub Tabelle

Hub Tabelle

Satelliten

Alle deskriptiven Attribute werden in Satelliten gespeichert. Satelliten referenzieren immer einen Hub oder einen Link. Es werden hier niemals mehrere Hubs oder Links referenziert.

Satelliten Tabelle

Satelliten Tabelle

Link Tabellen

Im Data Vault Modell werden im Gegensatz zu anderen Modellen Beziehungen immer in einer Many-To-Many-Tabele  abgebildet. Link Tabellen referenzieren daher immer mindestens 2 weitere Tabellen. Im Regelfall sind das Hub-Tabellen. Aber  auch weitere Link-Tabellen können hier referenziert werden.

Link Tabelle

Link Tabelle

 

 

Skalierbarkeit durch Hub and Spoke Design

Durch ein konsequentes Hub And Spoke Design werden  direkte technische Abhängigkeiten innerhalb einer Tabelle vermieden. Relationen werden nicht direkt sondern indirekt über Links und Hubs dargestellt. Die besonderen Vorteile dieses Designs werden deutlich wenn  man Erweiterungen des Datenmodells betrachtet.

Skalierbarkeit durch Hub and Spoke Design

Skalierbarkeit durch Hub and Spoke Design

 

1. Fachliche Erweiterungen

Neue fachliche Anforderungen erfordern oft das Hinzufügen neuer Daten zum Datenmodell. Hierbei ist es erforderlich neue Entitäten und deren Beziehungen zu den bereits bestehenden Strukturen hinzuzufügen. Im Beispiel wird dieses durch die 1.Erweiterung des Modells dargestellt. Was hier deutlich wird, ist das die bestehenden Strukturen des initialen Modells nicht verändert werden müssen. Da Relationen im Data Vault Modell immer als Many-to-Many Tabellen abgebildet werden, darf sich der Typ der Beziehung im Laufe der Zeit verändern. Unabhängig davon ob  sich Relationen ändern oder neue hinzugefügt werden, verleihen Link Tabellen hier die notwendige Flexibilität die eine nahtlose Erweiterung ermöglicht.

2. Neue Quellen

Im Falle von Quellsystemanbindungen sind oft gleiche Entitäten aus unterschiedlichen Quellsystemen zu integrieren. Die Integration im Data Vault Modell erfolgt sehr einfach über den Business Key der Hub Tabellen. Wenn ein geeigneter Business Key gefunden wurde ist eine Entität auch in mehreren Quellsystemen eindeutig zu identifizieren und zu integrieren. Sollte besagter Business Key bereits im Hub vorhanden sein, sind  keine zusätzlichen Datensätze im Hub hinzuzufügen. Die Attribute der neuen Quelle werden einfach in einen neuen Satellit des betreffenden Hubs hinzugefügt. Dieses wird im Beispiel mit der 2. Erweiterung verdeutlicht.  Je Quellsystem und Geschäftsentität entsteht so ein neuer Satellit. Neue Quellen können so einfach hinzugefügt werden, ohne das diese Einfluss auf  bestehenden Strukturen im EDWH nehmen.

Fazit

Durch die Modellierung nach Data Vault  wurden die zuvor identifizierten Ursachen von mangelnder Flexibilität und  hohen Änderungsaufwänden im Datenmodell beseitigt. Wie aber profitieren Entscheider hierdurch?

Inkrementelles Kostenmanagement

Die Verwendung des Hub and Spoke Design führt dazu, dass Aufwände für Änderungen an bestehenden Strukturen und Quellcode auf ein Minimum reduziert werden. Aufwände für Regressionstest werden hierdurch ebenfalls erheblich minimiert. Dauer und Kosten von Anforderungen bleiben so auch über die Zeit stabil. Ein Anforderungsstau wird vermieden und EDWH Projekte werden bezüglich ihrer Dauer -und Kostenentwicklung planbar.

Mehraufwände durch Anpassungen im EDWH

Mehraufwände durch Anpassungen im EDWH

Agilität

Agile Projekte erfordern ein iteratives Vorgehen bei dem das gewünschte Endergebnis nach und nach  in definierten Iterationen entsteht. Klassische Methoden der Datenmodellierung unterstützen nur sehr bedingt ein solches Vorgehen. Starre unflexible Datenmodelle erfordern ein Vorgehen bei dem zunächst das gesamte Unternehmen analysiert und vollständig modelliert wird.  Ein Iteratives Vorgehen wird so verhindert. Data Vault unterstützt durch seine Flexibilität und Skalierbarkeit  iterative Vorgehensweisen und somit  agile Data Warehouse – Projekte.