Informationsintegration ETL & Datenherkunft (Lineage) 2.2.2006 Felix Naumann Ü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 2 ETL Schritte Daten quellen Data scrubbing Data Extraction Lookup tables Data Transformation Data cleansing Data Loading Similarity Functions Data Warehouse Object Fusion ETL: Extract, Transform, Load 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 3 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 4 ETL – Überblick Zwei Schritte 1. 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 2. 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 5 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 6 Extraktion – Zeitpunkt Synchrone Benachrichtigung Asynchrone Benachrichtigung Periodisch Ereignisgesteuert Quellen erzeugen regelmäßig Extrakte DWH fragt regelmäßig Datenbestand ab 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 7 Extraktion – Art der Daten Snapshots: Quelle liefert immer kompletten Datenbestand Logs: Quelle liefert jede Änderung Neuer Lieferantenkatalog, neue Preisliste, etc. 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 8 Transformation Anpassung der Daten an vorgegebene Schemaund 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 9 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 10 Laden Satzbasiert Benutzung von StandardSchnittstellen: 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 11 Ü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 Nach [CW03] Foto von Jennifer Widom Felix Naumann, VL Informationsintegration, WS 05/06 12 Data Lineage – Motivation Data Lineage 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 2.2.2006 Hilfe durch Data Lineage Felix Naumann, VL Informationsintegration, WS 05/06 13 Data Lineage – Motivation Schwierigkeit des Data Lineage hängt von Transformationen ab SQL: Leichter aber unrealistisch Allgemeine Transformationen: Schwierig aber wichtig Data Lineage durch SQL Sichten Data Lineage durch Operatoren der relationalen Algebra 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 2.2.2006 Schema Mapping Schemaintegration Felix Naumann, VL Informationsintegration, WS 05/06 14 Data Lineage – Motivation A B a a -1 2 b 0 Transformation T A B a b 2 0 Herkunft des Tupels (a, 2)? 2.2.2006 T = B0 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) ... Felix Naumann, VL Informationsintegration, WS 05/06 15 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 16 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 17 Data Lineage – Beispiel Ziel: Tabelle „Verkaufssprung“ 1. 2. 3. 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 18 Data Lineage – Beispiel T1: Bestellungen (Produktlisten) aufspalten Neues Schema: (BID, Datum, PID, Menge, Name, Preis, Gültig) Verkaufsmenge pro Quartal und Produkt Neues Schema: (Name, Q1, Q2, Q3, Q4) T4 Neues Schema: (Name, Q1, Q2, Q3, AVG3, Q4) T6: Selektion für Verkaufsprünge T7: Projektion T6 T5 T5: Durchschnittsberechnung Filter für Computer Kategorie T4: Aggregation und Pivotisierung T7 T3: Join (und Projektion) über Bestellungen und Produkte Neues Schema: Bestellung(BID, KundenID, Datum, PID, Menge) T2: Kategorie selektieren Verkaufssprung Neues Schema: Verkaufssprung(Name, AVG3, Q4) Produkt(PID, Name, Kategorie, Preis, Gültig) 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Bestellung(BID, KundenID, Datum, Produkte) T3 T2 T1 Produkt Bestellung 19 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 20 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 21 Transformationen Datenmenge: Transformation: Menge aus beliebigen Daten: Tupel, Werte, Objekte Hier: i.d.R. Tupel 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 22 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 23 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 oO I* I ist die Menge der Inputwerte, die zum Output o beitragen. I* = T*(o,I) Sei O*O, dann T*(O*,I) = ⋃oO*T*(o,I) O* ist der „interessante“ Output 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 24 Data Lineage – Motivation A B a a -1 2 b 0 Transformation T A B a b 2 0 Herkunft des Tupels (a, 2)? 2.2.2006 T = B0 T*((a,2),I) = {(a,2)} T gruppiert nach A und aggregiert 2x SUM(B) T*((a,2),I) = {(a,-1); (a,2)} Felix Naumann, VL Informationsintegration, WS 05/06 25 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 26 Transformationen Klassifikation Dispatcher (wörtlich: „Abfertiger“) Aggregatoren Jeder Input produziert null oder mehr Outputs Gruppen von Inputs produzieren einen Output Black-Boxes Alles andere Quelle: [CW03] 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 27 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 28 Transformationen – Dispatcher Jeder Input produziert unabhängig null oder mehr Outputs. Formal: ∀I, T(I) = ⋃iI T({i}) Lineage: T*(o,I) = {iI | o T({i})} 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 29 Data Lineage – Beispiel Verkaufssprung T1: Bestellungen aufspalten T2: Kategorie selektieren T7 Dispatcher T3: Join und Projektion Dispatcher T6 T4: Aggregation und Pivotisierung T5 Dispatcher T5: Durchschnittsberechnung T4 Dispatcher T6: Selektion für T3 Verkaufsprünge Dispatcher T2 T1 T7: Projektion Produkt 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Bestellung 30 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 31 Transformationen – Dispatcher Dispatcher-Spezialfall: Filter Filter: Data Lineage: ∀iI, T({i}) = {i} oder T({i}) = T*(o) = {o} Bzw. T*(O) = O Tracing Prozedur trivial 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 32 Data Lineage – Beispiel Verkaufssprung T1: Bestellungen aufspalten T2: Kategorie selektieren T7 Dispatcher Filter T3: Join und Projektion Dispatcher T6 T4: Aggregation und Pivotisierung T5 Dispatcher T5: Durchschnittsberechnung T4 Dispatcher T6: Selektion für T3 Verkaufsprünge Dispatcher Filter T2 T1 T7: Projektion Produkt 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Bestellung 33 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 34 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 35 Vergleich: Dispatcher vs. Aggregator Dispatcher Aggregator Jeder Input produziert unabhängig null oder mehr Outputs. 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 36 Data Lineage – Beispiel T1: Bestellungen (Produktlisten) aufspalten Neues Schema: (BID, Datum, PID, Menge, Name, Preis, Gültig) Verkaufsmenge pro Quartal und Produkt Neues Schema: (Name, Q1, Q2, Q3, Q4) Aggregator T5: Durchschnittsberechnung Filter Filter für Computer Kategorie T4: Aggregation und Pivotisierung Aggregator T7 T3: Join (und Projektion) über Bestellungen und Produkte Neues Schema: Bestellung(BID, KundenID, Datum, PID, Menge) T2: Kategorie selektieren Verkaufssprung Neues Schema: (Name, Q1, Q2, Q3, AVG3, Q4) T6: Selektion für Verkaufsprünge T7: Projektion Aggregator Neues Schema: Verkaufssprung(Name, AVG3, Q4) T6 Dispatcher T5 Dispatcher T4 Dispatcher T3 T2 T1 Produkt Bestellung Filter 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 37 Transformationen – Aggregatoren Tracing Prozedur Potenzmenge Mindestens I* ist Lineage I* ist vollständiges Lineage Aufwand: 2|I| Aufrufe von T Zu viel! Deshalb zwei Unterklassen Kontextfreie Aggregatoren Schlüsselerhaltende Aggregatoren 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Eingrenzung: I* ist größer 38 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 39 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 Suche Partitionen, die O* erzeugen. 2.2.2006 |I²| Transformationen |I| Transformationen Felix Naumann, VL Informationsintegration, WS 05/06 40 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 41 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 42 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 43 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 2.2.2006 Jeweils anderer Input als Konstante Felix Naumann, VL Informationsintegration, WS 05/06 44 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 45 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 46 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 47 Inverse Transformation – Beispiel T: List-Merging T-1: List Splitting 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 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 48 Überblick ETL Extract Transform Load Data Lineage (Datenherkunft) Motivation und Beispiel Datentransformationen (jeweils Definition und Tracing Prozedur) Dispatcher Aggregatoren Black Boxes & MISOs Inverse Transformation Nach [CW03] Transformationssequenzen 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 49 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 50 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 51 Transformationssequenzen Gegeben eine Transformationssequenz 1. 2. 3. 4. 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 52 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 53 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 54 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 TracingGenauigkeit 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 55 Rückblick Verkaufssprung T1: Bestellungen aufspalten Aggregator T2: Kategorie selektieren T7 Filter T3: Join und Projektion Dispatcher T6 T4: Aggregation und Aggregator Pivotisierung T5 Dispatcher T5: Durchschnittsberechnung T4 Dispatcher Aggregator T6: Selektion für T3 Verkaufsprünge Filter T2 T1 T7: Projektion Produkt 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 Bestellung 56 Rückblick Definition 2.2.2006 Beispiel Tracing Prozedur Felix Naumann, VL Informationsintegration, WS 05/06 Tracing Aufwand 57 Rückblick Transformationssequenzen Normalisierungsalgorithmus 2.2.2006 Felix Naumann, VL Informationsintegration, WS 05/06 58 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 59