Das generierte Data Warehouse Aspekte beim Einsatz von DWH-Generatoren Peter Welker (Trivadis GmbH) BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1
Trivadis Facts & Figures 11 Trivadis Niederlassungen mit mehr als 600 Mitarbeitern in D-A-CH Hamburg Finanziell unabhängig und nachhaltig profitabel Kennzahlen 2010 Düsseldorf 200 Mitarbeiter Umsatz CHF 101 / EUR 73 Mio. Frankfurt 700 Kunden mit 1.800 Projekten Über 170 Service Level Agreements Stuttgart Wien Mehr als 5.000 Trainingsteilnehmer Freiburg Basel Zürich Bern Lausanne 380 Mitarbeiter München 20 Mitarbeiter Budget für Forschung und Entwicklung von mehr als CHF 5.0 2
Trivadis Lösungsportfolio und Kompetenzen KUNDE Geschäftsbereiche IT LÖSUNGEN, SERVICES & PRODUKTE Business Integration Services Business Intelligence Infrastructure Engineering Application Development Managed Services IT Bereiche Training Integration, Application Performance Management, Security TECHNOLOGIEN Oracle, Microsoft, IBM, Open Source 3
Über den Referent PETER WELKER TECHNOLOGY MANAGER CONSULTANT PARTNER Verantwortlichkeiten bei Trivadis BI Lösungen Trivadis BI Technologieportfolio Architektur & Methodik Datenintegration mit Oracle, Microsoft u.a. BI FrontEnd Applikationen mit Oracle, Microsoft u.a. DWH Appliances & MPP Systeme Services zu BI Strategie, Konsolidierung, Performance, Qualität und Sicherheit bigenius Produktsuite Business Requirements Engineering DWH Modellierung & Generierung Load Control Management Release-Management Publikationen 4
Was will diese Präsentation? 5
versuchen, die folgende Frage zu beantworten: Wann lohnt sich der Einsatz von Objekt-/Prozess- Generatoren in Data Warehouse Projekten? 6
Pro und Kontra Generatoren 7
Überspitzt formuliert geht es darum: Ich mache alles immer nur in Maschinencode Damit habe ich keinerlei technische Einschränkungen, jedes Softwareproblem ist frei lösbar und die höchstmögliche Performance ist erreichbar OK, Assembler ist für manche Problemstellungen gerade noch akzeptabel versus Ich passe mein Business zu 100% der eingesetzten Standardsoftware an Damit habe ich keinerlei Aufwende für die Entwicklung eigener Software- oder Reporting Lösungen und orientiere mich immer am Branchenstandard Was? Innovation? Flexibilität? Visionen? Wer Visionen hat soll zum Arzt gehen 8
Generator Was ist das? Modell = Input des Generators generare (lat.) = hervorheben, erzeugen Eigentlich ein Umwandeln von einer Form in eine andere Bspw. mechanische in elektrische Energie (Stromgenerator) Programm-/Code-Generator Übersetzt formale Modelle in eine Programmiersprache bzw. ein ausführbares Programm Streng genommen ist es nur die letzte Phase im Compilermodell Ich verwende es hier stellvertretend für den gesamten Prozess und berücksichtige darunter auch Interpreter -Lösungen und spreche ab sofort stellvertretend nur noch von Generatoren 9
Generator Was soll das? Starke Vereinfachung bei der Formulierung eines Problems im Vergleich zur manuellen Implementierung Dokumentation Qualitätssicherung Fachkonzeption Technische Konzeption Implementierung Test Deployment Erwartete Vorteile Früher zum Ergebnis Geringere Kosten Höhere Qualität Mehr Sicherheit Geringere Komplexität Bessere Performance Beabsichtigte Ersparnis Fachkonzeption Tech. Konzeption Implementierung Test Deployment Dokumentation QS 10
Generator Thesen Je standardisierter die eingesetzte Technik, desto größer der Nutzen Je vollständiger das Modell, desto größer der Nutzen 11
Generator Kritik (1) Und wenn ich etwas umsetzen muss, was der Generator nicht kann? Keinen Generator verwenden Wenn in den meisten Szenarien nur jeweils ein solcher Sonderfall existiert, braucht man schon keinen Generator mehr Generator erweitern/anpassen Vielfach höherer Aufwand als einfache, manuelle Umsetzung in einem einzigen Fall, denn auch die zugrundeliegende Methode muss erweitert werden Generierte Lösung manuell anpassen/erweitern Sofern Generat gut verständlich ist aber wie geht man mit anschließenden Änderungen im Modell um? Im Generator Orte für manuellen Eingriff schaffen Ermöglicht friedliches Miteinander von Modell und Code 12
Generator Kritik (2) Ich muss zusätzlich zur Umsetzungssprache die Modellierung für den Generator erlernen Ja Eine generierte Lösung ist nie optimal Soviel Zeit und Grips man in eine gute Optimierung eines Generators auch steckt, die generierte Lösung ist immer schwächer als eine gut optimierte, manuell implementierte Lösung 13
Generator Worauf kommt es an? (1) Generator erweitern/anpassen Wie oft sind solche Anpassungen nötig und in wie vielen Fällen wäre die Anpassung dann nutzbar? Wie gut sind Generator und Methodik für eine 80%, 90%, 95%, 99% Lösung? Welcher Art sind die notwendigen Anpassungen? Greifen die tief in die im Generator verankerte Methodik ein? Sind sie in einem auf Anpassung zugeschnittenen Bereich durchführbar? Wie einfach sind diese Anpassungen durchzuführen? Ist es zulässig? Braucht es Spezialwissen? 14
Generator Worauf kommt es an? (2) Generierte Lösung manuell anpassen/erweitern Wird lediglich Prototyping betrieben? Ist das Generat gut lesbar und verständlich? Kann ich die manuell angepasste Lösung in das Modell zurückholen? Vielleicht sogar mit Reverse-Engineering ins Modell? Wie umgehen mit Modelländerungen manuell erweitertem Generat? Handling der Kollisionen von manuellen Änderungen mit Modelländerungen? Gibt es die Möglichkeit, diese Änderungen automatisch zusammenzuführen? Gibt es eine brauchbare Darstellung von Unterschieden? 15
Generator Worauf kommt es an? (3) Im Generator Orte für manuelle Erweiterung schaffen Welche Möglichkeiten für manuelle Erweiterungen sind im Generator vorgesehen? Wie gut passen diese auf tatsächliche Problemstellungen? Wie gut separieren diese Modell und Erweiterung? 16
Generator Worauf kommt es an? (4) Ich muss zusätzlich zur Umsetzungssprache die Modellierung für den Generator erlernen Wie aufwendig ist die Nutzung im Vergleich zur manuellen Implementierung? Wie stark erleichtert und unterstützt die Modellierung die Produktivität? Wird die Komplexität durch den Generator am Ende reduziert? Eine generierte Lösung ist nie optimal Wie gut ist sie im Vergleich zu einer praktikablen, vom Aufwand vertretbaren manuellen Lösung? Um wie viel schneller und flexibler ist bspw. meine selbst geschriebener JOIN zweiter Dateien gegenüber einem Join zweier Tabellen in einer Oracle DB? 17
Zusammengefasst Wann lohnt sich ein Einsatz prinzipiell? Wenn das Generator- Modell die inhaltlichen Anforderungen zumindest weitgehend unterstützt Wenn die Erweiterung des Generators relativ einfach aber nur in Ausnahmefällen nötig ist Wenn eine manuelle Erweiterung/Anpassung des Generats (wo auch immer) vorgesehen und einfach durchführbar ist Wenn eine praktikable Lösung für Kollisionen zwischen Modell und Erweiterung verfügbar ist Wenn die Qualität des Generators schnellere, sicherere und fehlerfreiere Lösungen ermöglicht, als die manuelle Implementierung unter realistischem Aufwand 18
Generieren im Data Warehouse 19
20
Wie einfach ist es, ein DWH zu generieren? Im Vergleich zur Entwicklung von operativen Applikationen (CRM, ERP) ist die technische Grundstruktur eines DWHs eher einfach! Data Mart Data Mart Data Mart Data Mart Komplex sind vor allem die Modelle Daten, Struktur und Fluss Datenfluss Quelle Core Cleansing Staging Quelle Quelle Aufwendig die Umsetzung der ETL Prozesse Workflow incl. Scheduling Business- und Surrogatschlüssel, Tracker-Cols Basis-Cleansing (Types, Format, Nomenklatur) Fehlerbehandlung (Orphans, Dummies, ErrTabs) Historisierung, Versionierung, Archivierung Monitoring, Optimierung, Logging etc. Dazu kommen ggf. Regelwerke für Ersetzungen, Zugriffsschutz etc. 21
ETL Werkzeuge In vielen DWH Projekten werden bereits Generatoren eingesetzt ETL Werkzeuge wie OWB, ODI, Informatica, DataStage oder Talend Aber was heisst das? Im Beispiel ein einfacher 1:1 Transfer einer Tabelle in eine Dimension Source Staging Cleansing Core Mart Extract & Load Cleanse Transform Aggregate Wir entwickeln 4 Prozesse (Mappings) und 4 Objekte Warum? Wir modellieren doch bereits am Anfang die Zielstruktur und analysieren die passenden Werte in den Quellen! 22
Generierung vom Modell zum DWH Möglichst Strukturierter Generator Input Generator Datenfluss Mart Core Cleanse Stage Datenstrukturen Datenflüsse Transformationen 23
Generierung vom Modell zum DWH Detail Strukturierter Generator Input Methodik Best Practices Patterns Datenstrukturen Datenflüsse Zielarchitektur Input: Objektdefinition Architektur Ladeparameter Kennzahlen, Attribute, Hierarchien, Relationen, Mengenangaben, Quellsysteme, Plattform, Keys, Parameter etc. etc. Generator Technischer Output: PL/SQL+SQL ETL-API (bspw. OMB+) Konfiguration f. generische Lösungen Data Mart Core Cleansing Staging Datenfluss 24
+ Mehr Struktur Einfachere & Vollständigere Generierung Business Requirement Engineering Unstrukturierte Anforderungsinformation Strukturierter Generator Input Ziel mehr Struktur Generator Automatisierung Fachkonzepte Technische Konzepte Generator Input: Objektdefinition Architektur Ladeparameter 25
++ Mehr KnowHow Branchenmodelle Unstrukturierte Vorstrukturierte Anforderungsinformation Strukturierter Generator Input Ziel mehr Struktur Fachkonzepte Technische Konzepte Automatisierung Generator Input: Objektdefinition Architektur Ladeparameter 26
+++Mehr Betrieb Versionierung, Lifecycle Management, Run Unterstützung Design Generate Deploy Run Version 1 Doku Core Cleanse Stage E T P Steuerung Monitoring DQ-Test Redesign (Erweiterung) Version 2 Doku Core Cleanse Stage E T P Redesign (Bug Fix) Version 1.1 Doku Core Cleanse Stage E T P Lifecycle Management Dokumentation Betriebsunterstützung (RUN) 27
++++ Mehr Analyse & Reporting Berichtsgenerierung Vorstrukturierte Anforderungsinformation + Berichtstemplates Strukturierter Generator Input Optimierter Generator Output Metadaten Berichte Fachkonzepte Technische Konzepte Automatisierung Generator Input: Objektdefinition Architektur Ladeparameter Mart Core Cleanse Stage Datenfluss Datenstrukturen Datenflüsse Transformationen 28
Lohnen sich Data Warehouse Generatoren? Anforderung 1: Methodik und Architektur in DWHs ist sehr einheitlich These 1 Anforderung 2: Sind die 5 Kriterien für einen Generatoreinsatz weitgehend erfüllt? (Weitgehende) Vollständigkeit des Modells gesichert? These 2 Erweiterung des Generators möglich? Manuelle Erweiterungen/Anpassungen des Generats möglich? Lösung für Kollisionen Manuell/Modell vorhanden? Generator-Qualität für optimierten Output hoch? Anforderung 3: Sind die Einsparungen an Kosten und Zeit und die Qualitätsverbesserungen gegenüber den Lizenz- oder Entwicklungskosten gerechtfertigt? 29
Können Sie die Fragezeichen durch Häckchen ersetzen? Dann lohnt sich der Einsatz von Objekt-/Prozess- Generatoren in Data Warehouse Projekten! 30
bigenius RoadShow @ trivadis VIELEN DANK. DÜSSELDORF FRANKFURT A.M. HAMBURG MÜNCHEN STUTTGART BASEL BERN LAUSANNE ZÜRICH WIEN 04 Mai 02 Mai 03 Mai 17 April 19 April 15 Mai 10 Mai 09 Mai 21 Mai 22 Mai BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 31