SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Ähnliche Dokumente
simply sophisticated Integration von SAP und Non SAP Lösungen Marktüberblick, Techniken, Möglichkeiten & Probleme

BUSINESS INTELLIGENCE IM MITTELSTAND EIN PRAXISBERICHT

Fehlertoleranz und Robustheit von ETL-Prozessen Wie gestalten wir Abläufe möglichst widerstandsfähig. Christian Borghardt I BI Consultant

Oracle Data Warehouse Integrator Builder Ein Selbstversuch

1 Business-Intelligence-Architektur 1

Tobias Braunschober DAS GENERISCHE DWH WENIGER CODE WENIGER KOSTEN

Oracle SQL. Seminarunterlage. Version vom

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

Near Realtime ETL mit Oracle Golden Gate und ODI. Lutz Bauer

Datenbewirtschaftung mit ORACLE Tools - Die Wahl des richtigen Tools -

Near Realtime ETL mit Oracle Golden Gate und ODI. Lutz Bauer

Berechnung von Kennzahlen mit der SQL Model Clause

Entwicklung und Deployment. Stefan Raabe DOAG Konferenz

Gasbeschaffenheit bezüglich des Brennwertes "H s,eff " an wesentlichen Ein- und Ausspeisepunkten oder in den entsprechenden Teilnetzen

SCD2 mal anders. Andrej Pashchenko Trivadis GmbH Düsseldorf

TOra - Toolkit for Oracle

Continuous Delivery mit Orcas

Modellierung agiler Data Warehouses mit Data Vault Dani Schnider, Trivadis AG DOAG Konferenz 2015

Dr. Gernot Schreib, b.telligent GmbH & Co.KG DATENFLÜSSE IM DWH EINSATZ VON 3 RD -PARTY SOFTWARE

Oracle Data Integrator Ein Überblick

Data-Warehouse-Praktikum

Laden von Data Marts auch mal komplex DOAG BI, 9. Juni 2016 Dani Schnider, Trivadis AG

Informationsmanagementpraktikum

BESSER WERDEN DURCH ERSE

Marketing Intelligence Vorstellung der Softwarekomponenten. Josef Kolbitsch Manuela Reinisch

Historisierung auf Knopfdruck

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Exadata und In-Memory Datenbewirtschaftung und Analyse Extrem mit Exadata und InMemory (Erfahrungsbericht)

Erfolgreiches BI durch schlanke Tools und starke Fokussierung Markus Kolp Alec Shalashou

BARC-Studie Data Warehousing und Datenintegration

Profil Andreas Seiler

Schnelle Kurzgeschichten. Dr. Andrea Kennel InfoPunkt Kennel GmbH November 2011

DataVault Ein Leben zwischen 3NF und Star. DOAG Konferenz Nürnberg 2013 Michael Klose November 2013

Vollständig generisches DWH für kleine und mittelständische Unternehmen

Ben Weissman. ETL und Datawarehouse Design mit Metadaten Vom Developer zum Architekten

Präsentation der Bachelorarbeit

Wie modelliere ich mein Core Data Warehouse?

Viel aus wenig: Enterprise-DWH mit Basic ETL

Data Warehousing. Sommersemester Ulf Leser Wissensmanagement in der Bioinformatik

Schnelle Kurzgeschichten

Application Express (APEX) Carsten Czarski Business Unit Database. ORACLE Deutschland B.V. & Co KG

Modernisierung, Migration, Greenfield: DWH-Automatisierung mit dem ODI

INDEXIERUNGS- STRATEGIE IM DATA WAREHOUSE

Online Kurse Modulbeschreibungen

DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb. Referent: Raphael Henneke

Haupttabelle für Grundwasserstände EGLFING LEHRER 265B

DWH-Modellierung mit Data Vault in Kombination mit ODI 12c - Erfahrungen aus der Praxis - Claus Jordan Trivadis GmbH Stuttgart

Moderne Datenbankentwicklung mit Hilfe von SQL Server Data Tools

Data Warehouse Automation und Life Cycle Management mit AnalyticsCreator

Wir bauen uns ein Data Warehouse mit MySQL

Metadaten oder Metainformationen sind Daten, die Informationen über Merkmale anderer Daten enthalten, aber nicht diese Daten selbst (Wikipedia)

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH

Oracle9i Data Warehouse Komponenten im praktischen Einsatz

"Hier kann ich mich weiterentwickeln!"

Verkehrsstatistik 2015

Das ungleiche Paar Koexistenz von OWB und ODI

Ergebnisse der BARC-Studie Datenintegration

! Partitionieren Sie Ihr Data Warehouse?

SAP BI-Fokustagreihe 2016

SQL als ETL Tool. DOAG Konferenz Nürnberg 2014 Christian König, CGI Business Intelligence Expert 18. November CGI Group Inc.

Regressionstesten und Testdatenanonymisieung von DWH Ladestrecken

DataVault in der Praxis

Agile BI in der Praxis Data Warehouse Automation

Datenversionierung in Business-Anwendungen

Automatische Korrektur der NULL-Werte durch Defaultwerte (Singlestones)

DWH Best Practices das QUNIS Framework 80 Jahre Erfahrung bei der Modellierung & dem Betrieb von DWH. Referent: Ilona Tag

Eclipse und EclipseLink

Regressionstesten und Testdatenanonymisierung von DWH-Ladestrecken

quick documentation Inhalt Datenmodellierung

Data Lineage mit ODI und OEMM Holger Dresing Oracle Deutschland BV & Co. KG

DQM Data Quality Manager. DOAG Hochschul-Regionaltreffen Münster Johannes Tomasoni

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

ETL-Tool Survey Light

Für Querdenker Was ODI anders macht als OWB und umgekehrt

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS Metadaten. Andreas Schmidt Metadaten 1/17

Die Microsoft-Komplettlösung für Datawarehousing, Big Data und Business Intelligence im Überblick.

MetaNavigation der effizienteste Weg maximalen Mehrwert aus BI Metadaten zu ziehen

Oracle Warehouse Builder Wie finde ich den richtigen Nachfolger?

eevolution Business Intelligence Oliver Rzeniecki COMPRA GmbH Programmierer & Datenbankadministrator

Data Warehouse in der Telekommunikation

Generated by Foxit PDF Creator Foxit Software

Neue Wege zur Oracle-Migration

Arbeitsmarktstatistik Januar 2017

<Insert Picture Here>

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

Profil Andy Sydow. Persönliche Daten. Profil. Profil Andy Sydow. Deutsch, Englisch (gut) Fachinformatiker für Anwendungsentwicklung

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 10

Brücken bauen im dimensionalen Modell

OWB 10.2 Experts im Einsatz: Automatisierung von Designschritten bei der Bayer Healthcare AG. Referent: Lutz Bauer, Senior Systemberater, MT AG

XML in der Oracle Datenbank

Oracle Warehouse Builder Wie finde ich den richtigen Nachfolger?

Die perfekte Kombination im Agilen Data Warehouse Oracle Engineered Systems mit Data Vault

Business Intelligence im Mittelstand ein Praxisbericht

Deutsch, Englisch (gut) Fachinformatiker für Anwendungsentwicklung

Übersicht SAP-BI. DOAG Regionaltreffen

Mala Bachmann September 2000

Transkript:

SQL-basierte SCD2-Versionierung hierarchischer Strukturen Meik Truschkowski nobilia-werke J. Stickling GmbH & Co. KG Verl Projektleiter Business Intelligence und Data Warehousing 1 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Problem: Historisierung (Versionierung) Person (Teamleiter) Person (Sachbearbeiter) Team Sachbearbeiter (Platz) Kunde 2 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Änderungen in den Quelldaten Team Teamleiter Team BK Name Team BK Team Pers BK gültig ab Mitarbeiter T01 T02 Team Eins Team Zwei T01 P03 01.07.2011 T01 P04 19.04.2016 T02 P05 01.08.2013 Person BK P01 P02 P03 Name Ernst Zacharias Doris Sachbearbeiter / Team SB BK Team BK gültig ab S01 T01 01.08.2011 S02 T01 01.12.2013 S02 T02 20.03.2016 Sachbearbeiter-Zuordnung SB BK SB Person BK gültig ab S01 P09 01.03.2012 S01 P07 10.01.2016 S02 P06 01.09.2011 P04 P05 P06 P07 P08 P09 Viktor Fritz Heinz Sandra Anton Nadine S02 P08 12.12.2015 S02 P09 25.04.2016 Sachbearbeiter-Plätze SB BK S01 S02 Kunden-Zuordnung Kunde BK SB BK gültig ab K4711 S01 01.12.2012 K4711 S02 20.03.2016 Kundenstamm Kunde BK Name gültig ab K4711 Kuno GmbH 01.03.2012 K4711 Kuno AG 09.02.2016 3 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Zeitleiste Nov 2015 Dez 2015 Jan 2016 Feb 2016 Mrz 2016 Apr 2016 Mai 2016 Jun 2016 Jul 2016 Team: Teamleiter T02: P05 (Fritz) T01: P03 (Doris) T01: P04 (Viktor) SB-Platz: Team SB-Platz: SB-Person Kunde: SB-Platz S02: T01 S02: T02 S01: T01 S02: P06 (Heinz) S02: P08 (Anton) S02: P09 (Nadine) Sachbearbeiter Team S01: P09 (Nadine) S01: P07 (Sandra) Kunde K4711: S01 K4711: S02 Kunde (Inhalt) K4711: Kuno GmbH K4711: Kuno AG Person Version = Kunde SK 1 1 2 23 4 2 3 5 Person 4 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Ergebnismenge kleinstmögliche Zeitscheiben KUNDE SK KUNDE BK KUNDE_NAME SB BK SB PERSON BK TEAM BK TEAM PERSON BK GÜLTIG AB GÜLTIG_BIS 1 K4711 Kuno GmbH S01 P09 T01 T03 01.01.2000 09.02.2016 2 K4711 Kuno GmbH S01 P07 T01 T03 10.01.2016 08.02.2016 3 K4711 Kuno AG S01 P07 T01 T03 09.02.2016 19.03.2016 4 K4711 Kuno AG S02 P08 T02 P05 20.03.2016 24.04.2016 5 K4711 Kuno AG S02 P09 T02 P05 25.04.2016 31.12.9999 KIMBALL! 5 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

nun zur Lösung in SQL Moment mal in SQL??? Als Skript? Es gibt doch moderne ETL-Tools!? 6 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

SQL Hybrides ETL ELT Was heißt hier eigentlich Plattform-unabhängig? zentrales Data Warehouse (RDBMS) ETL- bzw. ELT-Werkzeug Oracle DB mysql SQL Server DB2 Views mit der Transformationslogik Stored Procedures und Functions Metadaten (in Tabellen) Schlüsselvergabe (Sequence, Identity) Ablaufsteuerung Extraktion und Laden von externen Quellen in das DWH (Bulk Insert) DML-Aktionen SCD2-Handling Merge/Upsert-Handling Monitoring / Logging Oracle ODI Oracle OWB Informatica Microsoft SSIS SAP BODI IBM DataStage Talend Pentaho Teradata 7 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Argumente für und gegen hybrides ELT Warum das so toll ist oder auch nicht + - SQL-Code allgemein verständlich Rapid Prototyping ANSI-Standard Einflussnahme auf die Performance Stored Procedures SQL-Kenntnisse notwendig kein zeilenbasiertes ETL Magic Numbers Dokumentation (Data Lineage) manuell 8 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Zurück zur Lösung Voraussetzungen Gültigkeitsdatum: beide Datumsspalten für Zuordnung zu Fakten notwendig einheitliches Start-Datum der ersten Versionen (01.01.2000) einheitliches End-Datum der gültigen Version (31.12.9999) keine Lücken keine Überlappungen In der Demo werden die Gültigkeitsregeln im SQL-Skript sichergestellt! SQL-Dialekt: Common Table Expressions (CTE) Greatest() und Least()-Funktionen Case When Then Else bzw. Iif oder ähnliches Konstrukt 9 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

weiter mit der Lösung Variante 1 Eine einzige Ergebnis-Tabelle Ein Transformationsschritt (ein SQL- Statement) Referenzierung nur auf Version des Kunden möglich keine Referenzierung auf Version von SB- Platz oder Team möglich Gute Lösung, wenn keine Hierarchien zwischen den Dimensionen bestehen! 10 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

weiter mit der Lösung Variante 2 Drei Transformationsschritte (drei SQL-Statements) jeweils einzelne versionierte Tabellen für Team und SB-Platz Referenzierung in der Kunden-Tabelle auf deren SKs Star-Schema-Tabelle als View 11 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

Demonstration der Lösung in Variante 2 reines SQL (Oracle) kein ETL/ELT-Tool im Beispiel alle Tabellen/Views im Schema TEST Demo im SQL*Plus Die gezeigte Lösung funktioniert übrigens auch mit Parent-Child-Hierarchien. Dabei muss allerdings rekursives SQL (mit verschachtelten CTEs) angewendet werden! 12 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

13 SQL-basierte SCD2-Versionierung hierarchischer Strukturen Data Lineage manuell mit VISIO

Probleme und Lösungen? Wie bekommt man seine Versionen sauber? Wenn? Komponente ohne Versionen Lücken oder Überlappungen nur eine der beiden Datumsspalten vorhanden erste Parent-Version ist erst später gültig als erste Child-Version Late arriving Facts Gültigkeiten ändern sich nachträglich und rückwirkend (vor allem bei Zuordnungen) dann! eine Version mit dem ersten Gültig-ab- und finalen Gültig-bis-Datum erzeugen eine der Datumsspalten als führend bestimmen, danach die fehlende Spalte in SQL errechnen fehlende Spalte in SQL errechnen (Sub-Select) einheitliches erstes Gültig-ab- und finales Gültig-bis- Datum verwenden bei der jeweils letzten Version immer das finale Gültig-bis-Datum verwenden a) bitemporale Datenhaltung in Dimensionen und Fakten (noch nicht ausprobiert) b) Dimension neu aufbauen, Fakten neu schlüsseln (Informationsverlust) 14 SQL-basierte SCD2-Versionierung hierarchischer Strukturen

noch Antworten? 15 SQL-basierte SCD2-Versionierung hierarchischer Strukturen