Keep it Simple ein rein PL/SQL basiertes Framework zur DWH Beladung Jörg Stahnke 10. Oracle Datawarehouse Konferenz Agenda Ausgangssituation Ziel grundsätzliche Architektur technische Umsetzung Aufgabentrennung fachliche Vorgaben technisches Framework Vorteile Einsatzempfehlung Todo‘s beim Einsatz Anlagen Detailfolien © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 1 Ausgangssituation 1/2 Frameworkeinsatz ist besonders geeignet wenn Sie: ein „kleines“ DWH Projekt haben Team besteht nur aus wenigen Personen DWH / Reporting ist evtl. nur ein kleines Teilprojekt eines größeren Vorhabens sehr schnell auf veränderte / ergänzte fachliche Anforderungen reagieren müssen unter Kostendruck stehen aufgrund des kleinen Teams nicht die Möglichkeit haben, technisches Spezial KnowHow in verschiedenen Gebieten aufzubauen Datenbank ETL Tools Mitarbeiter haben, die über gute fachliche Kenntnisse und Basiskenntnisse in SQL verfügen © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 2 Ausgangssituation 2/2 Voraussetzung für den Frameworkeinsatz ist: die Komplexität der Berechnungen ist gering bis mittel z.B. Transformation relationales Modell in ein Starschema z.B. Zusammenführen und Plausibilisieren mehrerer Liefersysteme Berechnungen können mit Hilfe der Grundrechenarten / SQL -Funktionen erfolgen sehr komplexe Berechnungen (z.B. finanzmathematische Bewertungen von Derivaten) sind nicht enthalten © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 3 Ziel vollständige Trennung fachlicher Vorgaben und technisches Framework technisches Framework braucht (fast) nie angepasst werden die laufende Entwicklung besteht nur aus der Anpassung der fachlichen Vorgaben Entwickler konzentrieren sich nur auf fachliche Fragen haben keinen technischen „Overhead“ das technische Framework übernimmt alle technischen Aufgabenstellungen Steuerung der Beladung einzelner Tabellen in der korrekten Reihenfolge Fehlerhandling optimierte Performance Protokollierung Statushandling Historisierung © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 4 Grundsätzliche Architektur Technik Fachlichkeit Quelldaten liest verwendet technisches Framework fachliche Definition schreibt Ziel Datenmodell © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 5 Technische Umsetzung Schema Quelldaten enthält Quelldaten unverändert verwendet Views als fachliche Definition PL/SQL Package als technisches Framework lesen DB-User Transformation lesen/schreiben Schema Reporting Schema Error Reporting Schema enthält verarbeitete Daten Error Schema enthält fehlerhafte Sätze mit fachlichen Fehlertexten lesen DB-User Reporting © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz verwendet Views zum Zugriff auf Daten im Rahmen des Reporting 6 Aufgabentrennung - Fachlichkeit - Technik Ablauf ohne Framework Steuerung anpassen Dokumentation anpassen Datenmodell Datenfluss Entwicklertest inhaltlich Status-/Fehlerhandling/Performance u.a. Performanceoptimierung Software ändern inhaltlich Status-/Fehlerhandling u.a. Datenbank anpassen Analyse der Fachanforderung Entwickler © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 7 Aufgabentrennung - Fachlichkeit - Technik Ablauf mit Framework Framework Entwickler Steuerung anpassen Performanceoptimierung Dokumentation anpassen Datenmodell Datenfluss Entwicklertest = Abfrage View Entwicklertest View inhaltlich ändern Status-/Fehlerhandling/Performance Datenbank anpassen Status-/Fehlerhandling u.a. Datenbank anpassen © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz Analyse der Fachanforderung 8 Aufgabentrennung - Fachlichkeit - Beispiel Die Views haben typischerweise folgenden Code: CREATE FORCE VIEW TRANSFORMATIONUSER.verbund_konto as select a.Verbundnummer ,a.SNPVom as SNP_Vom ,a.rzmandant as mandant ,a.Kontonummer ,a.Waehrung ,a.Saldo ,case when a.saldo>0 then 0 else (-1)*a.saldo end as GESAMTRISIKO ,k.kurs from QUELLSCHEMA.fmverbundkonto a join REPORT_SCHEMA.cog_kurs_euro k on k.mandant =a.rzmandant and k.stichtag=&&Aktstichtag and k.waehrung=a.waehrung © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz View inhaltlich ändern Felder aus Quellschema übernehmen einfache Berechnung redundantes Feld aus Kurstabelle Zugriff auf Quellschema Zugriff auf Reportingschema Verwendung eines Parameters 9 Vorteile 1/2 fachliche Vorteile fachliche Änderungen können sehr schnell umgesetzt werden Entwicklungsaufwand zur Ergänzung von wenigen Feldern unter 1 PT geringe Fehleranfälligkeit, da Statushandling, Steuerung, Logging usw. immer korrekt sind weniger Testaufwand Logiken können durch Abfrage von Views sofort getestet werden fachlich orientiertes Fehlerhandling regelmäßiges Feedback über Fehler an Liefersystem möglich Korrektur von Fehlern an der Quelle © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 10 Vorteile 2/2 technische Vorteile maximal mögliche Parallelisierung bei der Beladung nutzt im Oracle Cluster alle Knoten serielle Abarbeitung nur, wenn dies fachlich zwingend erforderlich ist sehr gute Performance durch konsequente Massenverarbeitung einheitliche technische Architektur für alle Beladungen Framework belädt alle Tabellen mit gleichem technischen Vorgehen Protokollierung, Statushandling, Fehlerhandling u.a. ohne Ausnahme immer gleich Budgetvorteile spart Kosten kostenloses Basic Komprimierung geringer Implementierungs- und Testaufwand weniger Fehler © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 11 Einsatzempfehlung typische Einsatzszenarien sind z. B. Erstellen Reporting auf einem vorhandenen Datenmodell ein relationales Datenmodell ist bereits vorhanden auf diesem Datenmodell soll ein Reporting erstellt werden für ein optimales Reporting soll das vorhandene Datenmodell in ein Starschema transformiert werden Ergänzen einer Historisierung ein Datenmodell ist bereits vorhanden, enthält aber immer nur aktuell gültige Daten für Revisions- oder Analysezwecke sollen die Daten historisiert aufbewahrt und ausgewertet werden Zusammenführung verschiedener Liefersysteme Daten aus verschiedenen Systemen werden in einer Datenbank zusammengeführt die Daten werden auf Inkonsistenzen geprüft Konsistenzfehler werden an Liefersysteme gemeldet und dort korrigiert liefersystemübergreifende Auswertungen sind möglich © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 12 Todo‘s beim Einsatz einmalige Aufwände Übernahme des bei PPI vorhandenen Quellcodes Absprache der konkreten technischen Anforderungen des Projektes evtl. Anpassung des technischen Frameworks an geänderte technischen Anforderungen Ausführung der Installationsskripte Test des Frameworks mit Dummy-Logiken Übergabe der Installationsskripte an fachliches orientiertes Entwicklungsteam laufende Projektarbeit Einsatz des Frameworks im Projekt Änderungen am Framework nicht mehr notwendig nur noch Entwicklung fachlicher Logiken (Views) und Ergänzung des fachlichen Datenmodells © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 13 Kontakt Jörg Stahnke Dipl. Mathematiker | Principal Database Engineer PPI Aktiengesellschaft Moorfuhrtweg 13 22301 Hamburg © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz Telefon: +49 40 227433-1329 Mobil: +49 1603841771 [email protected] 14 Anlagen Die folgenden Folien sind nicht zur Präsentation während des Vortrages vorgesehen. Bei Interesse können hier Details zu einzelnen Features des Framework nachgelesen werden. © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 15 Technische Umsetzung 1/2 Es werden mehrere Schemata / DB-User genutzt DB-Schema Quelldaten enthält Daten der Quellsysteme ohne Änderung wird per SQL-Loader / Datapump gefüllt bzw. ist ein DB Link auf Quellsysteme DB-User Transformation enthält ein PL/SQL Package, welches das technische Framework repräsentiert enthält für jede zu füllende Zieltabelle einen gleichnamigen View, welcher die Logik der Befüllung dieser Tabelle repräsentiert © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz Schema Quelldaten DB-User Transformation 16 Technische Umsetzung 2/2 DB-Schema Reporting enthält die zu füllenden Zieltabellen in einem für das Reporting optimiertem Datenmodell wird mit fehlerfrei angelieferten Daten gefüllt Schema Reporting DB-Schema Error enthält für jede zu füllenden Zieltabelle des Reporting Schemas eine strukturgleiche Fehlertabelle ergänzt um Felder zur Fehlerbeschreibung wird mit fehlerhaft angelieferten Daten inklusive fachlicher Fehlermeldung gefüllt DB-User Reporting hat Views auf DB Schemata Reporting und Error wird vom Reporting-Tool verwendet © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz Schema Error DB-User Reporting 17 Aufgabentrennung - Fachlichkeit 1/3 Es gibt eine klare Aufgabentrennung zwischen fachlichen Vorgaben und technischem Framework. Bei ergänzten / geänderten fachlichen Vorgaben ist Folgendes zu tun bei Bedarf Änderung des Datenmodells für Quelldaten bei Bedarf Änderung des Datenmodells für das Reporting Schema Änderung der Views Test der geänderten fachlichen Logiken durch Abfrage der Views evtl. Konfiguration der anzuzeigenden fachlichen Fehlertexte Diese Arbeiten erfordern folgende Kenntnisse: fachliche Kenntnisse der Datenmodelle fachliche Kenntnisse für die umzusetzenden Logiken Basiskenntnisse in SQL (Schreiben von Select-Statements) © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 18 Aufgabentrennung - Fachlichkeit 2/3 Features der Definition von fachlichen Logiken: fachliche Logiken werden ausschließlich durch Views definiert weitere Arbeiten sind zur Implementierung einer Logik nicht erforderlich Logiken sind durch Abfrage der Views sofort testbar Durch eine Abfrage der View kann der Entwickler sofort testen, ob die vorgenommenen Änderungen wie erwartet wirken. Eine erneute Beladung ist dazu nicht notwendig. Durch Abfrage der View für bestimmte „kritische“ Geschäfte können die Logiken für einzelne Geschäfte geprüft werden. © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 19 Aufgabentrennung - Fachlichkeit 3/3 Die Views dürfen folgende Objekte referenzieren: Tabellen im Quellschema Tabellen und Views im Reporting Schema durch Referenzen auf diese Tabellen/Views können einfache, mit einem einzigen SQL umsetzbare Logiken implementiert werden Packages des Transformationsusers durch Nutzung von pipelined Funktions, welche in den Views referenziert werden, können auch Logiken mit mittlerer Komplexität implementiert werden Systemkontexte Systemkontexte repräsentieren Parameter der jeweiligen Beladung und werden während der Beladung durch das Framework gesetzt zum Testen können Systemkontexte durch Logon-Trigger oder manuell gesetzt werden © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 20 Aufgabentrennung - technisches Framework 1/6 Initialaufwand Einmalig ist bei Einführung des technischen Frameworks Folgendes zu tun: Analyse der konkreten technischen Anforderungen evtl. Anpassung des PL/SQL Packages (z.B. Definition der verfügbaren Parameter) Tests aller technischen Funktionalitäten Diese Arbeiten erfordern folgende Kenntnisse: detaillierte PL/SQL Kenntnisse detaillierte Datenbankkenntnisse KEINE fachlichen Kenntnisse Nach der Erstellung des technischen Frameworks muss dieses nur angepasst werden, wenn sich die technischen Anforderungen (z. B. Art und Weise der Historisierung) ändern. Geänderte fachliche Anforderungen führen NICHT zu Änderungen am Framework. © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 21 Aufgabentrennung - technisches Framework 2/6 Aufgaben Framework Das technische Framework übernimmt folgende Aufgaben vollautomatisch ohne dass Anpassungen erforderlich sind: Analyse der fachlichen Abhängigkeiten der Views Analyse der Foreign Key Abhängigkeiten der Zieltabellen Festlegen der Reihenfolge der Tabellenbefüllung auf Basis der Abhängigkeiten Überprüfen aller Foreign Keys, Unique Keys und Not-Null Constraints soweit auf Basis der Abhängigkeiten möglich paralleler Start der Befüllung der Zieltabellen Statushandling, so dass der Reporting User auch während einer Beladung nur auf konsistente Daten zugreifen kann Protokollierung aller Vorgänge in Log-Dateien und Protokolltabellen © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 22 Aufgabentrennung - technisches Framework 3/6 weitere Aufgaben Framework Einfügen fehlerfreier Daten in Report Schema Einfügen fehlerhafter Daten in das Error Schema inklusive Kategorisierung der Fehler Folgefehler - z.B. Konto nicht verarbeitbar, weil zugehöriger Kunde nicht verarbeitbar war fachlicher Fehler mit zugeordneten fachlichen Fehlertexten z.B. - fehlerhafte Zuordnung einer nicht gültigen Kundennummer als Kontoinhaber im Liefersystem „Konto“ - doppelte Anlieferung der gleichen Kontonummer - fehlende Zuordnung einer Kontokategorie zum Konto (Zwangsfeld) unerwarteter Fehler - alle sonstigen Fehler - sind in der Regel ein Hinweis auf Fehler in den programmierten Logiken oder fehlende Konfigurationen für fachliche Fehler - sollten im Produktionsbetrieb nicht auftreten © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 23 Aufgabentrennung - technisches Framework 4/6 automatisierte Checks Das technische Framework führt folgende Checks automatisch durch: sind die Views, welche die fachlichen Logiken repräsentieren, tatsächlich strukturgleich zur Zieltabelle (Feldnamen und -formate) ? werden festgelegte technische Eigenschaften der Zieltabellen eingehalten? Partitionierung Komprimierung Indizierung von Foreign Keys u.a. gibt es fehlerhafte zyklische Abhängigkeiten? Durch diese automatisierten Checks werden versehentliche Fehler im Design des Datenmodells und bei der Definition der Logiken vermieden. © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 24 Aufgabentrennung - technisches Framework 5/6 automatisierte Anpassungen Das technische Framework führt folgende Anpassungen automatisch durch: bei Änderungen des Datenmodells im Reporting Schema wird das Error Schema automatisch analog angepasst weitgehende automatisierte Dokumentation des Datenflusses durch Auswertung der Abhängigkeiten und des Quellcodes der Views Vergabe notwendiger Rechte Anpassung der Views für den DB User Reporting Durch diese automatisierten Anpassungen wird der Entwicklungsaufwand verringert. Datenmodelländerungen / Logikänderungen werden nur einmal kodiert und notwendige redundante Folgearbeiten erfolgen automatisch. © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 25 Aufgabentrennung - technisches Framework 6/6 sonstige Features weitere Features des technischen Frameworks: optimale Performance durch Parallelverarbeitung und konsequente Nutzung massenorientiertes SQL nur massenorientierte „insert append“ / truncate Partition Befehle genutzt Nutzung Parallel Query (Lesezugriffe) und Parallel DML (Schreibvorgänge) parallele Befüllung mehrerer Tabellen mit Hilfe von dbms_schedule soweit keine fachlichen Abhängigkeiten dies verhindern optimales Partitionpruning Nutzung der kostenlosen Basic Komprimierung, da alle Randbedingungen zur Nutzung dieser Option eingehalten werden automatische Administration der Partitionierung Restartfähigkeit bei Abbrüchen schnelles Housekeeping durch truncate Partition Befehle Übergabe der Parameter von Beladungen (z.B. Stichtag) an die Views mit Hilfe von Systemkontexten dadurch können diese Parameter von View an jeder Stelle des SQL referenziert werden (z.B. in join Klauseln) unterstützt Partitionpruning sehr effektiv © PPI AG 10.03.2015 10.Oracle Datawarehouse Konferenz 26