Ein Data Warehouse ist ein großer Datentopf, in dem alle geschäftsrelevante Daten aus beliebig unterschiedlichen operativen und auch dispositven Datenhaltungssysteme denormalisiert vorliegen. In operativen Datenbank-Systemen wird versucht Redundanz der Daten zu vermeiden, es wird normalisiert. Die Zielsetzung eines Data Warehouse verfolgt das Ziel Daten für das Reporting optimal zur Vefügung zu stellen, es wird denormalisiert.

Das folgende Diagramm zeigt eine klassische Data Warehouse Architektur.

 

Im Zusammenhang mit einem Data Warehouse wird oft über ETL oder ELT Verarbeitung gesprochen.

E - Extraktion

T - Transformation

L - Laden

In der Extraktionsphase werden Daten aus den Quell-Datenbanken in ein Data Warehouse geladen. Im nächsten Schritt erfolgt die Transformation der Daten, d.h. Konvertierungen, Berechnungen und Datenqualitätsprüfungen werden durchgeführt. Im letzten Schritt beim Laden werden Fakten und Dimensions-Tabellen aufgebaut und in ein Star-Schema gebracht.

 

Tipp:

Im Vorfeld sollte man sich über eine Nomenklatur für Tabellen, Spalten, Foreign-Keys einigen:

S_ - Staging-Tabellen, T_ - Transformationstabellen, R_ - Referenztabellen, H_-Hiestorisierungstabellen, D_- Dimensionstabellen und F_- Faktentabellen.

Tipp:

Es ist Sinnvoll für jede Tabelle zusätzliche Spalten wie Anlagedatum, Geändertdatum und Batchlauf-ID hinzuzufügen. Über eine Batchlauf ID die am Anfang eines Ladeprozesse vergeben wird, lassen sich Fehlersuchen und ein Rollback einfacher durchführen.

 

Datenquellen

Operative Datenquellen sind z.B. ERP-, CRM- oder BDE-Anwendungen. Dispositive Datenquellen ist z.B. Excel.

Die größte Herausfoderung beim Aufbau eines Data Warehouse ist es, die Quell-Systeme zu identifizieren und anzubinden, herauszufinden in welchen Tabellen sich die Daten befinden und in welcher Relation. Dieser Schritt nimmt erfahrungsgemäß die meiste Zeit in Anspruch.

 

Extraktion

In der Extraktions-Verarbeitung werden die Quelle-Datenhaltungssysteme angebunden und die Daten 1:1 in die Staging-Ebene geladen. Die Anbindung kann über Datei-Import, Datenbank-Links ODBC oder JDBC erfolgen. Oft wird der Flat-File Import aus Sicherheitsgründen bevorzugt.

Eine Validierung, z.B. Datentyp/Länge-Prüfung, der Daten sollte hier nicht stattfinden, d.h. die Spalten der Staging-Ebene sind alle vom Datentyp VARCHAR mit einer großen Länge.

 

Transformation

In der Transformations-Verarbeitung wird die Daten qualitativ für das Reporting aufbereitet. Dazu müssen folgende Schritte durchgeführt werden:

1) Datenqualitäts Prüfung

-> technische Prüfung: stimmt der Datentyp und die Länge

-> fachliche Prüfung: sind alle Daten und ihre Beziehungsdaten vorhanden, z.B. Stammdaten, Master-Detail-Beziehungen

2) Konvertierungen, z.B. Umwandlung des Datumsformat oder Währungsumrechnung

Des Weiteren werden oft Referenz-Tabellen benötigt, um z.B. Daten aus zwei Quellen in Beziehung zu setzen, wie beim Master Daten Management MDM oder um spezielle Gruppierungsebenen die das Reporting fordert hinzuzufügen.

3) Aggregation, Daten werden auf eine Auswertungsebene Ebene aggregiert. Dies reduziert die Datenmenge und fördert die Abfrageperformance.

 

Laden

Die letzte Verarbeitung ist das Laden. Beim Daten werden Dimensionstabellen und Faktentabellen gefüllt. Eine Dimension ist eine Auswertungsebene z.B. Zeit, Region, Produkt oder Kunde. Die Faktentabellen beinhalten die Kennzahlen, beschreibene Informationen und die Foreign-Keys zu den Dimensionstabellen.

Für die Dimensions- und Fakten-Tabellen sollte zusätzlich der "Natural-Key" gespeichert werden. Der Natural-Key ist der PK-Schlüssel aus dem Quell-System. Bei Aggregationstabellen ist das hinterlegen eines Natural-Key nicht immer möglich.

Oft werden für Fachbereiche eigene Fakten-Tabellen erstellt und in einem separaten Datenbereich gestellt, dies wird als Data-Mart bezeichnet. Mehrere Data-Marts nutzen in der Regel die gleichen Dimemsionen.

 

Historisierung

Eine Historisierung dient zum protokollieren von Datenzuständen. Ändert sich z.B. die Farbe eines Produktes, kann dies durch eine Historisierung nachvollzogen werden und es können auch die Auswertungen über einen älteren Zeitraum auf die damals gültige Farbe erstellt werden.

Eine Historisierung der Daten kann auf jeder Ebene durchgeführt werden. Hier entscheidet die Anforderung. Historisiert wird in der Regel über einen begrenzten Zeitraum z.B. 24 Monate. Eine Speicherplatzberechnung (Anzahl Daten * Bytes pro Datensatz) ist unbedingt notwendig, da sonst das existierende Storage schnell voll ist.