Data Warehouse Automatisierung MT AG

Data Warehouse Automation mit MTGen: Metadaten statt Handarbeit

Voraussetzung für weitgehende Data Warehouse Automation ist die Standardisierung der Modelle und Prozesse. Wenn das in Theorie bzw. auf dem Papier gelungen ist, müssen die entstandenen Regeln und Konventionen so in Digitalform abgelegt werden, dass sie von Generierungsprozessen gelesen, verstanden und angewendet werden können. Des Weiteren müssen die Quellen eines Data Warehouse ebenfalls so beschrieben werden, dass sie automatisch angesprochen und zur Generierung der Objekte und ETL Prozesse im Data Warehouse verwendet werden können. In unserem MTGen, einem selbstentwickelten Generierungstool für DWH Automatisierung, bilden alle diese Informationen die Metadaten für ein Data Warehouse und bestimmen seine Architektur und Arbeitsweise.

Was kann man als Metadaten definieren?

So ziemlich alles. Damit der MTGen die Quellen anzapfen kann, muss er die Namen der geforderten Objekte kennen, egal, ob es sich dabei um Tabellen, Dateien oder andere Formate handelt. Um fachliche Logik später abbilden zu können bzw. um die Historisierung zu ermöglichen, müssen auch die Business Keys als Metadaten definiert werden. Darüber hinaus werden weitere Informationen benötigt, beispielsweise wie man auf die Systeme zugreift, wie der Server heißt, auf dem die Quelldaten liegen, ob man einen Datenbanklink benutzt oder ob man über ODI Topologie geht.

Die Architektur des Data Warehouse wird ebenfalls in den Metadaten abgelegt: DWH Areas mit den zugehörigen Datenbankusern, Namenskonventionen und Verarbeitungsstandards. Basisregeln für Partitionierung und Indexverwendung. Mappingregeln für Tabellenbeziehungen und Spaltenzuordnung, technische Standardspalten wie z.B. LoadDate, Definition der Defaultwerte z.B. für die NULL-Behandlung oder das zu verwendete Knowledge Module.

Die Abbildung 1 zeigt einen Ausschnitt der Metadaten, die die Architektur des Data Warehouse vorgeben. Man sieht den Datenbankuser, der bei der Erstellung der Objekte verwendet werden soll. Object Naming Rule gibt an, nach welchen Regeln die Objektnamen aufgebaut werden sollen. Zur Laufzeit wird MTGen diese Platzhalter durch die Namen der Objekte bzw. weitere Metadaten ersetzen. Wird z.B. eine View in der Stagingarea erstellt, die das Objekt EMP aus dem Schema SCOTT der Quelldatenbank referenziert, könnte sie je nach hinterlegten Metadaten VW_STG_IN_EMP_SCT heißen.

Metadaten Area
Abb. 1: Metadaten für DWH Areas

In Abbildung 2 sieht man die Metadaten der DWH Objekte, die auf der Quelltabelle PRD basieren. Diese werden vom MTGen zur Laufzeit ausgelesen. Basierend darauf werden entsprechende physische Objekte erzeugt.

Metadaten Object
Abb. 2: Metadaten für DWH Objekte

Auch die Verarbeitungslogik wird als eine Art Metadaten hinterlegt und auf einzelne Objekte angewendet. Je nachdem, wie die ETL Prozesse im Projekt umgesetzt werden sollen, können diese Templates z.B. in Form von dynamischen PL/SQL Routinen oder parametrisierten groovy-Skripten implementiert werden. Zur Laufzeit kombiniert der Generator die allgemeine ETL-Logik mit den konkreten Objektmetadaten und erzeugt lauffähige ETL Prozesse.

Generierung der Metadaten

Die Metadaten erlauben uns also, Objekte im Data Warehouse in gewünschter Form automatisch zu erstellen. Aber was ist mit den Metadaten selbst? Müssen diese manuell eingepflegt werden? Man stelle sich vor, ein Quellsystem enthält 100 Tabellen mit durchschnittlich 20 Spalten. Man müsste demnach alleine für die Quellenanbindung Metadaten für 2000 Spalten erfassen. Dazu kommt die gleiche Menge für Stage und Core, und zusätzlich auch noch die Mappings für die ETL Prozesse. Der dafür benötigte Zeitaufwand würde die Vorteile der Automatisierung vermutlich zunichtemachen.

Deswegen liest MTGen die notwendigen Informationen aus dem Quellsystem und generiert anschließend alle objektbezogenen Metadaten automatisch. Außer der klaren Zeitersparnis, hat dieses automatisierte Vorgehen natürlich auch den Vorteil, dass die Metadaten damit garantiert fehlerfrei sind.

Keine Regel ohne Ausnahme

Wenn man über Automatisierung spricht, hört man bei Unternehmen oft den Wunsch, immer und die gesamte DWH Bewirtschaftung zu automatisieren. Es gibt auch Hersteller, die dies mit ihren Werkzeugen versprechen. Nur ist das realistisch?

Wenn man viele Objekte nach gleicher „relativ einfacher“ Logik verarbeiten muss, macht es absolut Sinn, Zeit in die Einrichtung eines Generators und die Pflege der Metadaten zu investieren. Wenn man aber nur wenige Objekte hat oder die fachliche Logik sich von Objekt zu Objekt stark unterscheidet, wird die initiale Zeitinvestition oft die spätere Zeitersparnis durch die Generierung übersteigen. Natürlich kann man jede Individualität und jede noch so komplexe Logik in den Metadaten berücksichtigen, um später alles generieren zu können. Nur der Aufwand dafür würde in keinem Verhältnis zum Nutzen stehen. Moderne ETL Werkzeuge nehmen dem Entwickler bereits viel Arbeit ab, man sollte also immer abwägen, ob Automatisierung im jeweiligen Fall Sinn macht oder nicht.

Den Überblick behalten

Jede Entwicklung ist irgendwann vorbei und das Data Warehouse geht in den Betrieb über. Nach ein paar Jahren arbeiten dann häufig andere Personen an dem jeweiligen System weiter. Darüber hinaus verändern sich die Anforderungen, es kommen neue hinzu und auch der Umfang wächst. Vor dem Hintergrund dieser Entwicklungen wird deutlich, ob man bei den Designentscheidungen und der Automatisierung einen guten Job gemacht hat. Die Metadaten ermöglichen es nämlich, sich schnell einen Überblick über die DWH Landschaft zu verschaffen. Sie erlauben es, Änderungen schnell auf das gesamte System zu übertragen. Daher sollten sie von Beginn an mit Bedacht erstellt und kontinuierlichgepflegt werden. Eine zu hohe Komplexität oder viele Ausnahmen können das Verständnis und die Pflege allerdings sehr erschweren. Man sollte daher beim Design versuchen, immer an die Wartung des Systems zu denken – Ihre Nachfolger werden es Ihnen danken.

Fazit

Ein Automatisierungswerkzeug wie der MT Gen kann die Entwicklung im Data Warehouse sehr stark beschleunigen. Die Metadaten sind dabei primär dafür verantwortlich, wie das Ergebnis der Generierung aussehen wird. Vielleicht noch wichtiger als die Dauer und Kosten des Projekts ist die spätere Wartbarkeit des Systems. Es ist daher wichtig, sich bereits am Anfang bewusst zu machen, wie das Data Warehouse später benutzt werden wird.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte füllen Sie dieses Feld aus
Bitte füllen Sie dieses Feld aus
Bitte gib eine gültige E-Mail-Adresse ein.

Menü