Informationsintegration ETL & Datenherkunft (Lineage)

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Object Relational Mapping
Imperative Programmierung
Christian Scheideler SS 2009
Knapsack & Bin Packing Sebastian Stober
Heterogene Informationssysteme
Eine dynamische Menge, die diese Operationen unterstützt,
Daten- und Informationsqualität. © Prof. T. Kudraß, HTWK Leipzig Management der Informationsqualität Keine verbindlichen Standards oder Vorgaben für Informationsqualität.
Schnelle Matrizenoperationen von Christian Büttner
Apriori-Algorithmus zur Entdeckung von Assoziationsregeln
Informationsintegration Heterogenität Felix Naumann.
Informationsintegration Local-as-View: LaV
Informationsintegration Der Bucket-Algorithmus Felix Naumann.
Informationsintegration Dynamische Programmierung
Informationsintegration Global-as-View: GaV
Informationsintegration Containment und Local-as-View Anfragebearbeitung Felix Naumann.
Informationsintegration Schema Matching Felix Naumann.
Objekt – Relationales – Modell Tomasz Makowski IN
Dr. Brigitte Mathiak Kapitel 9 Physische Datenorganisation (ganz kurz)
Institut für Informatik Abteilung Datenbanken Problemseminar Datacleaning Überblick Datacleaning.
3. Kapitel: Komplexität und Komplexitätsklassen
Finale Semantik und beobachtbares Verhalten
der Universität Oldenburg
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
SQL als Abfragesprache
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 16: Grundlagen des Data Mining.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Übung Datenbanksysteme SQL-Anfragen (2)
Access 2000 Datenbanken.
Informationsintegration Architekturen
Informationsintegration Anwendungsszenarien
Informationsintegration Materialisierte vs. Virtuelle Integration
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
- Schnittmengenbildung -
IGH – 05/061 Die drei Netze der. 2 Götz Gantner (1) Verwaltungsnetz R-232 Hausmeister 4 PC / 2 Drucker LZ 1PC / 1 Laser.
Christian Schulz, Marc Thielbeer, Sebastian Boldt
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Die Grundterminologie
Effiziente Algorithmen
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
GIS - Seminar Wintersemester 2000/2001
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Algebraische Optimierung (1)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Komponenten und Phasen des Data Warehousing
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
Indexierung Oracle: indexes Indexierung.
 Präsentation transkript:

Informationsintegration ETL & Datenherkunft (Lineage) 2.2.2006 Felix Naumann

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

ETL Schritte ... Daten quellen Data Extraction Data Transformation Data Loading Data Warehouse ETL: Extract, Transform, Load ... Lookup tables Data scrubbing Data cleansing Similarity Functions Object Fusion 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 ETL – Überblick Häufig aufwändigster Teil des Data Warehousing Vielzahl von Quellen Heterogenität Datenvolumen Komplexität der Transformation Schema- und Instanzintegration Datenbereinigung Kaum durchgängige Methoden- und Systemunterstützung Vielzahl von Werkzeugen vorhanden => Großes Forschungspotenzial! Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 ETL – Überblick Zwei Schritte Von den Quellen zur Staging Area (Arbeitsbereich) Extraktion von Daten aus den Quellen Erstellen / Erkennen von differentiellen Updates Erstellen von LOAD Files Von der Staging Area zur Basisdatenbank Data Cleaning und Tagging Erstellung integrierter Datenbestände Kontinuierliche Datenversorgung des DWH Sicherung der DWH Konsistenz bzgl. Datenquellen Zielkonflikt Effiziente Methoden essentiell → Sperrzeiten minimieren Rigorose Prüfungen essentiell → Datenqualität sichern Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Extraktion Selektion eines Ausschnitts der Daten aus den Quellen und Bereitstellung für Transformation Aufgabe Regelmäßige Extraktion von Änderungsdaten aus Quellen Datenversorgung des DWH Unterscheidung Zeitpunkt der Extraktion Art der extrahierten Daten Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Extraktion – Zeitpunkt Synchrone Benachrichtigung Asynchrone Benachrichtigung Periodisch Quellen erzeugen regelmäßig Extrakte DWH fragt regelmäßig Datenbestand ab Ereignisgesteuert DWH erfragt Änderungen vor jedem Jahresabschluss Quelle informiert nach 100 Änderungen Anfragegesteuert DWH erfragt Änderungen Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Extraktion – Art der Daten Snapshots: Quelle liefert immer kompletten Datenbestand Neuer Lieferantenkatalog, neue Preisliste, etc. Logs: Quelle liefert jede Änderung Transaktionslogs, Anwendungsgesteuertes Logging Netto-Logs: Quelle liefert Netto-Änderungen Katalogupdates, Snapshot-Deltas Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Transformation Anpassung der Daten an vorgegebene Schema- und Qualitätsanforderungen Siehe diese gesamte VL Problem Daten im Arbeitsbereich nicht im Format der Basisdatenbank Struktur der Daten unterschiedlich Schematransformation Schema Mapping etc. Datentransformation Data Scrubbing, Data Cleansing Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Laden Physisches Einbringen der Daten aus dem Arbeitsbereich (staging area) in das Data Warehouse (einschl. eventuell notwendiger Aggregationen) Aufgabe Effizientes Einbringen von externen Daten in DWH Kritischer Punkt Load-Vorgänge blockieren unter Umständen die komplette DB (Schreibsperre auf Faktentabelle) Aspekte Trigger Integritätsbedingungen Indexaktualisierung Update oder Insert? Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Laden Satzbasiert Benutzung von Standard-Schnittstellen: PRO*SQL, JDBC, ODBC, ... Arbeitet im normalen Transaktionskontext Trigger, Indices und Constraints bleiben aktiv Manuelle Deaktivierung möglich Keine großräumigen Sperren Sperren können durch COMMIT verringert werden Benutzung von Prepared Statements Bulk-Load DB-spezifische Erweiterungen zum Laden großer Datenmengen Läuft (meist) in speziellem Kontext Komplette Tabellensperre Keine Beachtung von Triggern oder Constraints Indexe werden erst nach Abschluss aktualisiert Kein transaktionaler Kontext – kein Logging Quelle: VL „Data Warehouse Technologien“ Sattler/Saake 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] Foto von Jennifer Widom 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Motivation Data Lineage ist das Problem, zu Objekten im DWH diejenigen Objekte in den Quellen zu bestimmen, aus denen das DWH Objekt abgeleitet wurde. Auch: Data Provenance Auch: Data Pedigree Data Warehouses Datenanalyse Decision Support Data Mining Aggregation Hilfe durch Data Lineage 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Motivation Schwierigkeit des Data Lineage hängt von Transformationen ab SQL: Leichter aber unrealistisch Data Lineage durch SQL Sichten Data Lineage durch Operatoren der relationalen Algebra Allgemeine Transformationen: Schwierig aber wichtig Data Lineage durch komplexe, nutzerdefinierte Transformationen Data Lineage durch ETL Prozesse Data Lineage durch Ketten von 60+ Transformationen Data Lineage geschieht auf Datenebene. Metadata Lineage Schema Mapping Schemaintegration 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Motivation B a -1 2 b A B a 2 b Transformation T Herkunft des Tupels (a, 2)? T = B0  lin(a,2) = {(a,2)} T = Gruppierung nach A und Aggregation: 2x SUM(B)  lin(a,2) = {(a,-1); (a,2)} T = Gruppierung nach A und Aggregation: MAX(B) ... 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Motivation Zusätzliche Schwierigkeiten Runtime overhead ETL Bei virtueller Integration Speicherbedarf Metadaten Transformationen Einzeln In Ketten In (azyklischen) Graphen Trade-off zwischen Nutzen und Kosten 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel Produkt(PID, Name, Kategorie, Preis, Gültig) Bestellung(BID, KundenID, Datum, Produkte) Quelle: [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel Ziel: Tabelle „Verkaufssprung“ Computer-Produkte, die im letzten Quartal mehr als doppelt so viel verkauften wie im Durchschnitt der drei vorigen Quartale Tabelle anlegen Transformationen als Graph definieren Transformationen ausführen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel T1: Bestellungen (Produktlisten) aufspalten Neues Schema: Bestellung(BID, KundenID, Datum, PID, Menge) T2: Kategorie selektieren Filter für Computer Kategorie T3: Join (und Projektion) über Bestellungen und Produkte Neues Schema: (BID, Datum, PID, Menge, Name, Preis, Gültig) T4: Aggregation und Pivotisierung Verkaufsmenge pro Quartal und Produkt Neues Schema: (Name, Q1, Q2, Q3, Q4) T5: Durchschnittsberechnung Neues Schema: (Name, Q1, Q2, Q3, AVG3, Q4) T6: Selektion für Verkaufsprünge T7: Projektion Neues Schema: Verkaufssprung(Name, AVG3, Q4) Verkaufssprung T7 T6 T5 T4 T3 T2 T1 Produkt(PID, Name, Kategorie, Preis, Gültig) Bestellung(BID, KundenID, Datum, Produkte) Produkt Bestellung 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel Data Lineage für Verkaufssprung Tupel (Sony VAIO, 11250, 39600): 1950 Quelle: [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Transformationen Datenmenge: Menge aus beliebigen Daten: Tupel, Werte, Objekte Hier: i.d.R. Tupel Transformation: Beliebige Prozedur, mit einer Datenmenge als Input und einer Datenmenge als Output. T(I) = O Komposition von Transformationen T = T1∘T2: T(I) = T2(T1(I)) [ Assoziativ: (T1∘T2)∘T3 = T1∘(T2∘T3) ] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Eigenschaften Stabil: Kein erfundener Output Also: T() =  Gegenbeispiel: Transformationen, die jedem Tupel einen festen Wert anhängen Deterministisch: Immer gleicher Output bei gleichem Input Gegenbeispiel: Transformationen, die einen zufälligen Sample produziert. 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Definition Allgemein gilt: Transformationen können für jeden Outputwert alle Inputwerte betrachten. I.d.R. ist das nicht so. Sei T(I) = O und oO I*  I ist die Menge der Inputwerte, die zum Output o beitragen. I* = T*(o,I) Sei O*O, dann T*(O*,I) = ⋃oO*T*(o,I) O* ist der „interessante“ Output 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Motivation B a -1 2 b A B a 2 b Transformation T Herkunft des Tupels (a, 2)? T = B0  T*((a,2),I) = {(a,2)} T gruppiert nach A und aggregiert 2x SUM(B)  T*((a,2),I) = {(a,-1); (a,2)} 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Transformationen Zwei Extreme Relationale Operatoren oder Sichten: Exakte Data Lineage kann bestimmt werden. Völlig unbekannte Transformation Der gesamte Input ist Data Lineage. Realität liegt dazwischen. Drei Transformationsklassen Hinzu kommen Schema Mappings (nicht hier) Inverse Transformationen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen - Klassifikation Dispatcher (wörtlich: „Abfertiger“) Jeder Input produziert null oder mehr Outputs Aggregatoren Gruppen von Inputs produzieren einen Output Black-Boxes Alles andere Quelle: [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Dispatcher Jeder Input produziert unabhängig null oder mehr Outputs. Formal: ∀I, T(I) = ⋃iI T({i}) Lineage: T*(o,I) = {iI | o  T({i})} 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel T1: Bestellungen aufspalten T2: Kategorie selektieren T3: Join und Projektion T4: Aggregation und Pivotisierung T5: Durchschnittsberechnung T6: Selektion für Verkaufsprünge T7: Projektion Verkaufssprung T7 Dispatcher T6 Dispatcher T5 Dispatcher T4 Dispatcher T3 Dispatcher T2 T1 Produkt Bestellung 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Dispatcher Tracing Prozedur Definiert für Outputmengen, deshalb geeignet für Kompositionen Aufwand: Vollständiger Scan des Input Transformationsaufruf für jeden Inputwert 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Dispatcher Dispatcher-Spezialfall: Filter Filter: ∀iI, T({i}) = {i} oder T({i}) =  Data Lineage: T*(o) = {o} Bzw. T*(O) = O Tracing Prozedur trivial 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel T1: Bestellungen aufspalten T2: Kategorie selektieren T3: Join und Projektion T4: Aggregation und Pivotisierung T5: Durchschnittsberechnung T6: Selektion für Verkaufsprünge T7: Projektion Verkaufssprung T7 Dispatcher Filter T6 Dispatcher T5 Dispatcher T4 Dispatcher T3 Dispatcher Filter T2 T1 Produkt Bestellung 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Aggregatoren Zwei Bedingungen müssen gelten Partition: Inputs können partitioniert werden, so dass jede Partition für genau ein Output verantwortlich ist. Sei T(I) = {o1,..., on}. ∀I existiert eine eindeutige, disjunkte Partitionierung I1, ..., In, so dass T(Ik) = ok für alle k. Vollständig: Jeder Input ist an mindestens einem Output beteiligt ∀I  , T(I)   Lineage: T*(ok,I) = Ik 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Vergleich: Dispatcher vs. Aggregator Jeder Input produziert unabhängig null oder mehr Outputs. Aggregator Jeder Input ist an mindestens einem Output beteiligt. Inputs können partitioniert werden, so dass jede Partition für genau ein Output verantwortlich ist. Transformationen, die zugleich Dispatcher und Aggregator sind Identität Projektion (ohne Duplikate) 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Data Lineage – Beispiel T1: Bestellungen (Produktlisten) aufspalten Neues Schema: Bestellung(BID, KundenID, Datum, PID, Menge) T2: Kategorie selektieren Filter für Computer Kategorie T3: Join (und Projektion) über Bestellungen und Produkte Neues Schema: (BID, Datum, PID, Menge, Name, Preis, Gültig) T4: Aggregation und Pivotisierung Verkaufsmenge pro Quartal und Produkt Neues Schema: (Name, Q1, Q2, Q3, Q4) T5: Durchschnittsberechnung Neues Schema: (Name, Q1, Q2, Q3, AVG3, Q4) T6: Selektion für Verkaufsprünge T7: Projektion Neues Schema: Verkaufssprung(Name, AVG3, Q4) Verkaufssprung Aggregator Filter T7 T6 Dispatcher Aggregator T5 Dispatcher T4 Dispatcher Aggregator T3 T2 T1 Filter Produkt Bestellung 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Aggregatoren Potenzmenge Tracing Prozedur Aufwand: 2|I| Aufrufe von T Zu viel! Deshalb zwei Unterklassen Kontextfreie Aggregatoren Schlüsselerhaltende Aggregatoren Mindestens I* ist Lineage I* ist vollstän-diges Lineage Eingrenzung: I* ist größer 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Aggregatoren Kontextfreie Aggregatoren Input gehört zu einer Partition, unabhängig von den Werten andere Inputs in der Partition. Alle bisherigen Aggregatoren sind kontextfrei. Gegenbeispiel: Clustering und Durchschnittsbildung über Cluster Mitgliedschaft in einem Cluster ist von anderen Werten abhängig. Tracing Prozedur einfacher Intuition: Bildung der Partitionen I ist linear. Danach nur noch Zugehörigkeit prüfen. 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Aggregatoren Finde für jedes i eine Partition Initialisierung der ersten Partition Prüfe ob i in eine vorhandene Partition passt Sonst erzeuge neue Partition |I²| Transformationen Suche Partitionen, die O* erzeugen. |I| Transformationen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Aggregatoren Schlüsselerhaltende Aggregatoren Sei I partitioniert I1, ..., In, so dass T(I) = {o1,...on}. ∀k, ∀I‘Ik : T(I‘) = {o‘k} und o‘k.key = ok.key Beispiel: „Normale“ Gruppierung und Aggregation Gegenbeispiel: Gruppierung, die Gruppierungsattribut nicht erhält. Tracing Prozedur Aufwand: |I| Intuition: Schlüssel im Transformationsergebnis wird verwendet, um Zugehörigkeit zu prüfen. 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationen – Black Boxes Transformationen, die weder Dispatcher noch Aggregatoren sind, noch eine explizite Tracing Prozedur aufweisen. Beispiel: Sortierung und Einfügen der Ordnungszahl. Kein Dispatcher, weil Output nicht unabhängig Kein Aggregator, weil ein Output nur mittels aller Inputs erzeugt werden kann. Lineage: T*(o,I) = I Tracing Prozedur: Trivial, aber nutzlos 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

MISOs – Multiple Input Single Output Transformationen Exklusive MISOs Unabhängige Transformation jeder Inputmenge Beispiel: UNION Lineage: Teilen der Transformation in unabhängige Teile Bestimmung der Eigenschaften der Teile Lineage gemäß der Eigenschaften Inklusive MISOs Lineage Teilen der Transformation in Einzelteile Jeweils anderer Input als Konstante 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Vorgegebene Tracing-Prozedur Mit „Glück“ wird zusammen mit der Transformationsprozedur die entsprechende Tracing-Prozedur TP geliefert. TP benötigt Inputdaten: TP(O*,I) = I* TP benötigt keine Inputdaten: TP(O*) = I* Aufwand: unbekannt 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Inverse Transformation Mit „Glück“ wird zusammen mit der Transformationsprozedur die entsprechende inverse Prozedur geliefert. T ist invertierbar, falls T-1 existiert, so dass ∀I, T-1(T(I)) = I und ∀O, T (T-1(O)) = O Kann nicht immer als Tracing-Prozedur verwendet werden. Immer bei Aggregatoren: I* = T-1(O*) Nur manchmal bei Dispatchern und Black Boxes Beispiel gleich. Aufwand: unbekannt 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Inverse Transformation – Beispiel T: List-Merging I = {(1,a),(1,c),(2,b),(2,g),(2,h)} O = {(1,“a,c“),(2,“b,g,h“)} Aggregator => T-1 ist als TP verwendbar T-1: List Splitting wie T1 in Beispiel T-1((2,“b,g,h“)) = {(2,b),(2,g),(2,h)} Dispatcher Aber: (T-1)-1 ist keine Tracing Prozedur für T-1. (T-1)-1((2,b)) = {(2,“b“)} Korrekte lineage wäre: (2,“b,g,h“) 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Transformationssequenzen Nach [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen Bisher: Lineage und Tracing für einzelne Transformationen Nun: Sequenzen von Transformationen Sei I2* = T2*(o,I2) Sei I* = T1*(I2*,I) Dann gilt I* = (T1∘T2)*(o,I) Beispiel: (T1∘T2)*(3,I) = {1,3} 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen Naive Tracing Prozedur für Sequenzen T1∘...∘ Tn: Speicherung aller Zwischenergebnisse Ik Tracing Prozedur rückwärts für jeden Transformationsschritt. Nicht effizient: Hoher Speicherbedarf Viele Transformationsschritte Besser: Explizite Kombination von Transformationen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen Gegeben eine Transformationssequenz Normalisiere Sequenz durch geeignete Kombinationen Bestimme für Tracing benötigte Zwischenergebnisse Bei Transformation, speichere diese Zwischenergebnisse Iteratives Tracing durch normalisierte Sequenz 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen – Normalisierung Prinzipiell können jede und alle Transformationen zu einer einzigen Transformation kombiniert werden. Aber: Erwünschte Eigenschaften gehen verloren. Transformationseigenschaften Klasse (Dispatcher, Aggregator, Filter, BlackBox) Vollständigkeit Jeder Input erzeugt ein Output Tracing Prozedur / Inverse + weitere Kombination von Eigenschaften mit AND Bestimmung, welche Eigenschaften erwünscht sind, und wann Normalisierung sich lohnt, ist ein komplexes Problem. Kostenmodell nötig Hier nur: Greedy Algorithmus 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen – Normalisierung Index der geeignetsten Kombination Kombiniere Transformationspaar Alle Transformationen nach der ersten Black Box vereinen. 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Transformationssequenzen – Normalisierung BestCombo(T1∘...∘Tn) Prozedur Heuristiken Kombiniere nie Black Boxes mit anderen Transformationen. Kombiniere keine Transformationen, wenn Tracing-Cost wesentlich schlechter wird. Kombiniere keine Transformationen, wenn Tracing-Genauigkeit wesentlich schlechter wird. Gruppierung aller (11) Eigenschaften in 5 Klassen Zuordnung jeder Transformation und Kombination in eine Klasse (gemäß „bester“ Eigenschaft) Kombination ist schlecht, wenn neue Klasse erreicht würde. 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Rückblick T1: Bestellungen aufspalten T2: Kategorie selektieren T3: Join und Projektion T4: Aggregation und Pivotisierung T5: Durchschnittsberechnung T6: Selektion für Verkaufsprünge T7: Projektion Verkaufssprung Aggregator T7 Filter T6 Dispatcher Aggregator T5 Dispatcher T4 Dispatcher Aggregator T3 Filter T2 T1 Produkt Bestellung 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Rückblick Definition Beispiel Tracing Prozedur Tracing Aufwand 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Rückblick Transformationssequenzen Normalisierungsalgorithmus 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06

Felix Naumann, VL Informationsintegration, WS 05/06 Literatur [CW03] Yingwei Cui, Jennifer Widom: Lineage tracing for general data warehouse transformations. VLDB J. 12(1): 41-58 (2003) Ergänzend: [BKT01] Peter Buneman, Sanjeev Khanna, Wang Chiew Tan: Why and Where: A Characterization of Data Provenance. ICDT 2001: 316-330 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06