Im Rahmen vieler DWH Projekte kommt an einem Punkt sehr häufig die Frage auf, ob ein Second Level Data Mart (SLDM) sinnvoll einzusetzen ist oder nicht. In diesem Blogbeitrag möchte ich kurz die Vor- und Nachteile aus meiner Erfahrung beschreiben und zeigen, was aus meiner Sicht die beste Entscheidung ist.
Was ist ein Second Level Data Mart?
Ein Second Level Data Mart ist ein Data Mart, der seine Daten teilweise oder vollständig aus einem oder mehreren anderen Data Marts bezieht. Bei der Beladung des SLDM werden weitere Kennzahlen berechnet oder bestehende auf eine andere Aggregationsebene bezogen. Er ist somit nicht nur eine Kopie der Quell-Data-Marts sondern bildet Kennzahlen ab, die neue fachliche Anforderungen erfüllen. Die Diskussion ob ein SLDM eingeführt wird oder nicht ist meist unabhängig von der Anzahl Datenschichten im Data Warehouse. Allerdings ist das Fehlen einer Core Schicht (HDS & IDS) häufig der größte Faktor über diese Möglichkeit der Datenaufbereitung nachzudenken. Allerdings sind auch mehrschichtige Data Warehouses nicht gefeit vor der Anwendung des SLDM.
Im Rahmen meiner bisherigen Arbeit ist mir das Konstrukt des SLDM (oder auch höhere Level) im Zusammenhang mit einer mehrschichtigen DWH Architektur vorgekommen. Meist wurden die unteren Schichten, also Historisierung und Integration durch die DataVault Modellierung realisiert. Diese Modellierung erlaubt es sehr agil neue Fakten und zugehörige Dimensionen zu entwickeln und dem Fachanwender bereit zu stellen. Folgendes Schema zeigt eine klassische DWH-Architektur mit eventuellen Einsatz eines Second Level Data Marts
:
Durch die DataVault Modellierung ergibt sich eine sehr spezielle Situation für die darauffolgenden DWH Schichten. Diese Situation mag bei einer anderen Modellierung anders aussehen, wodurch meine weitere Betrachtung speziell für den Fall der DataVault Modellierung gilt.
Situation in der Praxis
Grundsätzlich kann nicht in jeder Situation von einem Second Level Data Mart abgeraten werden. In der Theorie werden Beispiele genannt, in dem die Anwendung eines solchen Marten durchaus sinnvoll ist.(1) Oft sind die SLDM allerdings mehr oder weniger ein Kompromiss der im Laufe von DWH Projekten eingegangen wird. Im Grunde ist meist jedem Beteiligten klar, dass die geschaffenen Abhängigkeiten zu bestehenden Marts nicht tragbar sind. Nichtsdestotrotz wird sich für ein weiteres Level entschieden, oft aus Zeitdruck und ggf. auch aus Mangel an Argumenten und Alternativen. So ist es meist schneller, aus bestehenden Marts Kennzahlen zu berechnen, anstatt sie mühsam in vorherigen Schichten zu berechnen und deren Quellen zu konsolidieren. Oft ist die Anwendung eines SLDM auch dem Fehlen integrierter Schichten geschuldet. Wenn ein DWH aufgebaut wird, in dem konsolidierte Berechnung von Kennzahlen nur in der Mart Schicht erfolgen kann sind SLDM meist die erste Wahl. Richtig wäre hier aber die Anwendung einer integrierten Datenschicht (in obigen Abbildung HDS & IDS), die die Berechnung der Kennzahlen übernimmt.
Wird den Fachanwendern umfangreicher Zugang zur Data Mart Schicht gewährt, kann es auch dazu kommen, dass diese sich selbst eine Art SLDM bauen. Der ausgedehnten Schatten-IT sind dann kaum Grenzen gesetzt.
Vor- und Nachteile
Im Detail ist jede DWH Architektur verschieden. Damit sind auch nicht immer alle Vor- und Nachteile auf alle Umgebungen anwendbar. Nichtsdestotrotz möchte ich, die aus meiner Erfahrung stammenden Vor- und Nachteile einmal auflisten Diese haben natürlich nicht den Anspruch auf Vollständigkeit, sollen aber den ein oder anderen Denkanstoß geben.
Vorteile
- Fachliche Anforderungen können kurzfristig schneller umgesetzt werden, da keine Vorberechnung der Kennzahlen in tieferen DWH Schichten erfolgen muss.
Nachteile
- Das Auffinden von Quell-zu-Ziel Ableitungen (DataLineage) wird stark erschwert
- Änderungen in First Level Data Marts wirken sich sofort und ungefiltert auf die darauf aufbauenden Marten aus
- Die auf dem Weg zum SLDM berechneten Kennzahlen müssen für andere Marten neu berechnet werden.
- Keinen Single Point of Truth in der integrierten Core Schicht, da Kennzahlen in der Data Mart Schicht berechnet werden.
- Es kommt zu falschen Ergebnissen, da bereits eine Aggregation im First Level Mart erfolgt und diese speziellen fachspezifischen Anforderungen entsprechen.
- Besonders auf Rundungen, Verarbeitungsgeschwindigkeit, usw. ist genau zu achten
- Es gibt Hardwarekonstellationen besonders bzgl. InMemory bei der eine Berechnung von Kennzahlen schlechtere DB-Performance hervorruft. (Dies ist in jedem Einzelfall zu prüfen)
Fazit
Wie bereits erwähnt ist die Verwendung eines Second Level Data Marts von vielen Faktoren abhängig. Dazu zählen z.b. Hardware, Vorgehensmodell der Entwicklung, Architektur des Data Warehouses, usw. Grundsätzlich kann ich allerdings dem Konzept eines SLDM nicht viel gutes abgewinnen. Den kurzfristigen Vorteilen stehen überproportional viele (langfristige) Nachteile gegenüber. Besonders Abhängigkeiten zwischen den Marten führen meist später zu großen Problemen. Sollte dennoch auf das Konzept eines SLDM gesetzt werden, ist in jedem Fall dazu zu raten, die Berechnung der KPIs langfristig in die Core Schicht zu verlagern. So ist auch in Zukunft die Wartung und Weiterentwicklung bestehender Entwicklungen gewährleistet.
Quellen:
- The Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence Remastered Collection
- https://de.wikipedia.org/wiki/Data-Mart
- http://www.kimballgroup.com/1999/12/the-matrix/