Teil IV Extraktion, Transformation, Laden

Werbung
Teil IV
Extraktion, Transformation, Laden
Extraktion, Transformation, Laden
Extraktion, Transformation und Laden
1
ETL-Prozess
2
Extraktion von Daten aus Quellen
3
Laden von Daten
4
Transformationsaufgaben
5
Schematische Heterogenität
6
Datenfehler
7
ELT
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–1
Extraktion, Transformation, Laden
ETL-Prozess
ETL: Überblick
Zwei Schritte
I
Von den Quellen zur Staging Area
F
F
F
I
Von der Staging Area zur Basisdatenbank
F
F
I
I
Extraktion von Daten aus den Quellen
Erstellen / Erkennen von differentiellen Updates
Erstellen von LOAD Files
Data Cleaning und Tagging
Erstellung integrierter Datenbestände
Kontinuierliche Datenversorgung des DWH
Sicherung der DWH Konsistenz bzgl. Datenquellen
Effiziente Methoden essentiell → Sperrzeiten minimieren
Rigorose Prüfungen essentiell → Datenqualität sichern
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–2
Extraktion, Transformation, Laden
ETL-Prozess
ETL-Prozess
Häufig aufwendigster Teil des Data Warehousing
I
I
I
I
Vielzahl von Quellen
Heterogenität
Datenvolumen
Komplexität der Transformation
F
F
I
Schema- und Instanzintegration
Datenbereinigung
Kaum durchgängige Methoden- und Systemunterstützung, jedoch
Vielzahl von Werkzeugen vorhanden
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–3
Extraktion, Transformation, Laden
ETL-Prozess
ETL-Prozess
Extraktion: Selektion eines Ausschnitts der Daten aus den
Quellen und Bereitstellung für Transformation
Transformation: Anpassung der Daten an vorgegebene Schemaund Qualitätsanforderungen
Laden: physisches Einbringen der Daten aus dem
Datenbeschaffungsbereich in das Data Warehouse (einschl.
eventuell notwendiger Aggregationen)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–4
Extraktion, Transformation, Laden
ETL-Prozess
Definitionsphase des ETL-Prozesses
Analysebedarf
OLTP
Legacy
Externe
Quellen
Quelldatenanalyse
Auswahl der
Objekte
Datenmodell und
Konventionen
Erstellen der
Transformation
Abbildung
Schlüsseltransf.
Normalisierung
Dokumentation,
operativer
Datenkatalog
Datenquellen
Regelwerk für
Datenqualität
MetadatenManagement
Transformationsregeln
Erstellen der
ETL-Routinen
ETL-Jobs
DWH
Erfolgskriterien
für Laderoutinen
Repository
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–5
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Extraktion
Aufgabe
I
I
Regelmäßige Extraktion von Änderungsdaten aus Quellen
Datenversorgung des DWH
Unterscheidung
I
I
Zeitpunkt der Extraktion
Art der extrahierten Daten
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–6
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Zeitpunkt
Synchrone Benachrichtigung
I
Quelle propagiert jede Änderung
Asynchrone Benachrichtigung
I
Periodisch
F
F
I
Ereignisgesteuert
F
F
I
Quellen erzeugen regelmäßig Extrakte
DWH fragt regelmäßig Datenbestand ab
DWH erfragt Änderungen vor jedem Jahresabschluss
Quelle informiert alle X Änderungen
Anfragegesteuert
F
DWH erfragt Änderungen vor jedem tatsächlichen Zugriff
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–7
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Art der Daten
Flow: alle Änderungen im DWH integrieren
I
I
Verkaufspositionen, Lieferungen
Änderungen mit aufnehmen
Stock: Zeitpunkt ist essentiell muss festgelegt werden
I
I
Mitarbeiteranzahl zum Monatsende einer Filiale
Lagerbestand zum Jahresende
Value per Unit: Abhängig von Unit und anderen Dimensionen
I
I
Währungskurs zu einem Zeitpunkt
Goldpreis an einem Börsenplatz
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–8
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Art der Daten
Snapshots: Quelle liefert immer kompletten Datenbestand
I
I
I
Neuer Lieferantenkatalog, neue Preisliste, etc.
Änderungen erkennen
Historie korrekt abbilden
Logs: Quelle liefert jede Änderung
I
I
Transaktionslogs, Anwendungsgesteuertes Logging
Änderungen effizient einspielen
Netto-Logs: Quelle liefert Netto-Änderungen
I
I
I
Katalogupdates, Snapshot-Deltas
Keine vollständige Historie möglich
Änderungen effizient einspielbar
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–9
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Zeitpunkt der Datenversorgung
Quelle . . .
Technik
Aktualität
DWH
Belastung
DWH
Belastung
Quellen
erstellt periodisch FiBatchläufe,
Je
nach
Niedrig
Niedrig
Viele
Systeme (Mainframe)
nicht online zugreifbar
les
Snapshots
Frequenz
propagiert jede ÄnTrigger, RepliMaximal
Hoch
Sehr hoch
Widerspricht
DWH-Idee: Mehrbelastung der Quellen
derung
kation
erstellt Exvor BeSehr schwierig
Maximal
Medium
Medium
trakte auf
nutzung
Anfrage
bisher nicht
Anwen- Technisch
AnwendungsJeeffizient
nachdurchführbar
Je
nach
Je
nach
dungsgegesteuert
Frequenz
Frequenz
Frequenz
steuert
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–10
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Extraktion aus Legacy-Systemen
Sehr anwendungsabhängig
Zugriff auf Host-Systeme ohne Online-Zugriff
I
Zugriff über BATCH, Reportwriter, Scheduling
Daten in Non-Standard-Datenbanken ohne APIs
I
Programmierung in PL-1, COBOL, Natural, IMS, . . .
Unklare Semantik, Doppelbelegung von Feldern, sprechende
Schlüssel, fehlende Dokumentation, Herrschaftswissen bei
wenigen
Aber: Kommerzielle Tools vorhanden
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–11
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Differential Snapshot Problem
Viele Quellen liefern immer den vollen Datenbestand
I
I
I
Molekularbiologische Datenbanken
Kundenlisten, Angestelltenlisten
Produktkataloge
Problem
I
I
Ständiges Einspielen aller Daten ineffizient
Duplikate müssen erkannt werden
Algorithmen um Delta-Files zu berechnen
Schwierig bei sehr großen Files
[Labio Garcia-Molina 1996]
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–12
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Szenario
Quellen liefern Snapshots als File F
I
Ungeordnete Menge von Records (K, A1 , . . . , An )
Gegeben: F1 , F2 , mit f1 = |F1 |, f2 = |F2 |
Berechne kleinste Menge O = {INS, DEL, UPD}∗ mit O(F1 ) = F2
O nicht eindeutig!
O1 = {(INS(X)), ∅, (DEL(X))} ≡ O2 = {∅, ∅, ∅}
Differential Snapshot Problem
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–13
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Szenario
F1 K4, t, r, ...
K102, p, q, ...
K104, k, k, ...
K202, a, a, ...
F2 K3, t, r, ...
Differential
Snapshot
Algorithmus
INS K3
DEL K4
INS K103
UPD K202: ...
K102, p, q, ...
K103, t, h, ...
K104, k, k, ...
K202, b, b, ...
DWH
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–14
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Annahmen
Berechnung einer konsekutiven Folge von DS
I
Files am 1.1.2010, 1.2.2010, 1.3.2010, . . .
Kostenmodell
I
I
I
Alle Operationen im Hauptspeicher sind umsonst
IO zählt mit Anzahl Records: sequenzielles Lesen
Keine Beachtung von Blockgrößen
Hauptspeichergröße: M (Records)
Filegrößen |Fx | = fx (Records)
Files i.d.R. größer als Hauptspeicher
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–15
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DSnaive – Nested Loop
Berechnung von O
I
I
Record R aus F1 lesen
F2 sequenziell lesen und mit R vergleichen
F
F
R nicht in F2 → O := O ∪ (DEL(R))
R in F2 → O := O ∪ (UPD(R)) / ignorieren
Problem: INS wird nicht gefunden
I
I
I
Hilfsstruktur notwendig
Array mit IDs aus F2 (on-the-fly generieren)
R jeweils markieren, abschließender Lauf für INS
Anzahl IO: f1 · f2 + δ
Verbesserungen?
I
I
Suche in F2 abbrechen, wenn R gefunden
jeweils Partition mit Größe M von F1 laden:
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
f1
M
· f2
Letzte Änderung: 15.12.2014
4–16
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DSsmall – kleine Files
Annahme: Hauptspeicher M > f1 (oder f2 )
Berechnung von O
I
I
F1 komplett lesen
F2 sequenziell lesen (S)
F
F
F
I
S ∈ F1 : O := O ∪ (UPD(S)) / ignorieren
S 6∈ F1 : O := O ∪ (INS(S))
S in F1 markieren (Bitarray)
Abschließend: Records R ∈ F1 ohne Markierung: O := O ∪ (DEL(R))
Anzahl IO: f1 + f2 + δ
Verbesserungen
I
F1 im Hauptspeicher sortieren
c Sattler / Saake / Köppen
schnellerer Lookup
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–17
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DSsort – Sort-Merge
Allgemeiner Fall: M f1 und M f2
Annahme: F1 ist sortiert
Sortieren auf Sekundärspeicher von F2
I
I
I
I
F2 in Partitionen Pi mit |Pi | = M lesen
Pi im Hauptspeicher sortieren und schreiben in F i („Runs“)
Alle F i mischen p
Annahme: M > |F2 | → IO: 4 · f2
Sortiertes F2 aufheben für nächstes DS (wird dort F1 )
I
Pro DS muss nur F2 sortiert werden
Berechnung von O
I
I
Sortierte F1 und F2 öffnen
Mischen (paralleles Lesen mit Skipping)
Anzahl IO: f1 + 5 · f2 + δ
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–18
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DSsort2 – Verschränkung
Sortiertes F1 vorhanden
Berechnung von O
I
I
I
F2 in Partitionen Pi mit |Pi | = M lesen
Pi im Hauptspeicher sortieren und schreiben in F2i
Alle F2i mischen und gleichzeitig mit F1 vergleichen
Anzahl IO: f1 + 4 · f2 + δ
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–19
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DShash – Partitioned Hash
Berechnung von O
I
I
F2 in Partitionen Pi mit |Pi | = M/2 hashen
Hashfunktion muss garantieren:
Pi ∩ Pj = ∅, ∀i 6= j
I
I
I
I
Partitionen sind „Äquivalenzklassen“ bzgl. der Hashfunktion
F1 liegt noch partitioniert vor
F1 und F2 wurden mit derselben Hashfunktion partitioniert
Jeweils P1,i und P2,i parallel lesen und mischen
Anzahl IO: f1 + 3 · f2 + δ
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–20
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Warum nicht einfach . . .
UNIX diff?
I
I
diff erwartet / beachtet Umgebung der Records
Hier: Records sind völlig ungeordnet
in der Datenbank mit SQL?
I
Dreimaliges Lesen jeder Relation notwendig
INSERT INTO delta
SELECT ’UPD’, ...FROM F1, F2
WHERE F1.K = F2.K AND F1.W <> F2.W
UNION
SELECT ’INS’, ...FROM F2
WHERE NOT EXISTS (...)
UNION
SELECT ’DEL’, ...FROM F1
WHERE NOT EXISTS (...)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–21
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Vergleich – Eigenschaften
DSnaiv
IO
f1 · f2
DSsmall
DSsort2
DShash
f1 + f2
f1 + 4 · f2
f1 + 3 · f2
Bemerkungen
außer Konkurrenz, extra Datenstruktur
notwendig
nur für kleine Dateien
überlappungsfreie Hashfunktion, Partitionsgröße schwierig zu schätzen, Verteilungsannahmen (Sampling)
Erweiterung von DShash für „schlechtere“ Hashfunktionen bekannt
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–22
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
Weitere DS Verfahren
Anzahl Partitionen / Runs größer als File-Handles des OS
I
Hierarchische externe Sortierverfahren
Kompression: Files komprimieren
I
I
I
Größere Partitionen / Runs
Größere Chance, Vergleich im Hauptspeicher durchzuführen
In Realität schneller (Annahmen des Kostenmodells)
„Windows“ Algorithmus
I
I
I
I
Annahme: Files haben eine „unscharfe“ Ordnung
Mischen mit Sliding Window über beide Files
Liefert u.U. redundante INS-DEL Paare
Anzahl IO: f1 + f2
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–23
Extraktion, Transformation, Laden
Extraktion von Daten aus Quellen
DS mit Zeitstempel
Annahme: Records sind (K, A1 , . . . , An , T)
T: Zeitstempel der letzten Änderung
Erstellen von O
I
I
I
I
Festhalten von Talt : Letztes Update (max{T} von F1 )
F2 sequenziell lesen
Entries mit T > Talt interessant
Aber: INS oder UPD?
Weiteres Problem: DEL wird nicht gefunden
Zeitstempel erspart nur Attributvergleich
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–24
Extraktion, Transformation, Laden
Laden von Daten
Laden
Aufgabe
I
Effizientes Einbringen von externen Daten in DWH
Kritischer Punkt
I
Ladevorgänge blockieren unter Umständen das komplette DWH
(Schreibsperre auf Faktentabelle)
Aspekte
I
I
I
I
Trigger
Integritätsbedingungen
Indexaktualisierung
Update oder Insert?
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–25
Extraktion, Transformation, Laden
Laden von Daten
Satzbasiert
Benutzung von Standard-Schnittstellen:
PRO*SQL, JDBC, ODBC, . . .
Arbeitet im normalen Transaktionskontext
Trigger, Indexe und Constraints bleiben aktiv
I
Manuelle Deaktivierung möglich
Keine großräumigen Sperren
Sperren können durch COMMIT verringert werden
I
Nicht bei Oracle: Leseoperationen werden nie gesperrt (MVCC)
Benutzung von Prepared Statements
Teilweise proprietäre Erweiterungen (Arrays) verfügbar
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–26
Extraktion, Transformation, Laden
Laden von Daten
BULK Load
DB-spezifische Erweiterungen zum Laden großer Datenmengen
Läuft (meist) in speziellem Kontext
I
I
I
I
I
I
I
Oracle: DIRECTPATH option im Loader
Komplette Tabellensperre
Keine Beachtung von Triggern oder Constraints
Indexe werden erst nach Abschluss aktualisiert
Kein transaktionaler Kontext
Kein Logging
Checkpoints zum Wiederaufsetzen
Praxis: BULK Uploads
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–27
Extraktion, Transformation, Laden
Laden von Daten
Beispiel: ORACLE sqlldr
LoaderKontrollDatei
Input
InputDatafiles
Dateien
LogDatei
Input
Schlechte
Datafiles
Dateien
SQL*Loader
Input
Abgelehnte
Datafiles
Dateien
Datenbank
Indexe
Tabellen
[Oracle 11g Dokumentation]
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–28
Extraktion, Transformation, Laden
Laden von Daten
Beispiel: ORACLE sqlldr (2)
Control-File
LOAD DATA
INFILE ’bier.dat’
REPLACE INTO TABLE getraenke (
bier_name POSITION(1) CHAR(35),
bier_preis POSITION(37) ZONED(4,2),
bier_bestellgroesse POSITION(42) INTEGER,
getraenk_id "getraenke_seq.nextval"
)
Datenfile: bier.dat
Ilmenauer Pils
Erfurter Bock
Magdeburger Weisse
Anhaltinisch Flüssig
c Sattler / Saake / Köppen
4490
6400
1290
8800
Data-Warehouse-Technologien
100
80
20
200
Letzte Änderung: 15.12.2014
4–29
Extraktion, Transformation, Laden
Laden von Daten
BULK Load Beispiel
Vielfältige Optionen
I
I
I
I
I
I
I
I
I
Behandlung von Ausnahmen (Badfile)
Datentransformationen
Checkpoints
Optionale Felder
Konditionales Laden in mehrere Tabellen
Konditionales Laden von Records
REPLACE oder APPEND
Paralleles Laden
...
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–30
Extraktion, Transformation, Laden
Laden von Daten
Direct Path Load
SQL*Loader
SQL*Loader
Schreibe
Datenbank-Block
Generiere SQLKommandos
Direkter
Pfad
Benutzerprozesse
Generiere SQLGeneriere SQLGeneriere SQLKommandos
Kommandos
Kommandos
Konventioneller
Pfad
Oracle Server
SQL-Kommando Verarbeitung
Speichermanagement
Hole neue Ausmaße
Finde partielle Blöcke
Passe Füllstand an
Befülle partielle Blöcke
Puffer Cache Management
- Manage Queues
- Löse Konflikte auf
Datenbank-Blöcke
lesen
Puffer-Cache
Datenbank-Blöcke
schreiben
Datenbank
[Oracle 11g Dokumentation]
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–31
Extraktion, Transformation, Laden
Laden von Daten
Multi-Table-Insert in Oracle
Einfügen in mehrere Tabellen bzw. mehrfach (z.B. für Pivoting)
INSERT ALL
INTO Quartal_Verkauf
VALUES (Produkt_Nr,
INTO Quartal_Verkauf
VALUES (Produkt_Nr,
INTO Quartal_Verkauf
VALUES (Produkt_Nr,
INTO Quartal_Verkauf
VALUES (Produkt_Nr,
SELECT ... FROM ...
c Sattler / Saake / Köppen
Jahr || ’/Q1’, Umsatz_Q1)
Jahr || ’/Q2’, Umsatz_Q2)
Jahr || ’/Q3’, Umsatz_Q3)
Jahr || ’/Q4’, Umsatz_Q4)
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–32
Extraktion, Transformation, Laden
Laden von Daten
Multi-Table-Insert in Oracle (2)
Bedingtes Einfügen
INSERT ALL
WHEN ProdNr IN
(SELECT ProdNr FROM Werbe_Aktionen)
INTO Aktions_Verkauf
VALUES (ProdNr, Quartal, Umsatz)
WHEN Umsatz > 1000
INTO Top_Produkte VALUES (ProdNr)
SELECT ... FROM ...
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–33
Extraktion, Transformation, Laden
Laden von Daten
Merge in Oracle
Merge: Versuch eines Inserts, bei Fehler (durch Verletzung einer
Schlüsselbedingung) → Update
MERGE INTO Kunden K USING Neukunden N
ON (N.Name = K.Name AND N.GebDatum = K.GebDatum)
WHEN MATCHED THEN
UPDATE SET K.Name = N.Name, K.Vorname=N.Vorname,
K.GebDatum=N.GebDatum
WHEN NOT MATCHED THEN
INSERT VALUES (MySeq.NextVal, N.Name,
N.Vorname, N.GebDatum)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–34
Extraktion, Transformation, Laden
Laden von Daten
Der ETL-Prozess: Transformationsaufgaben
Einsatz
-fähige
Quellen
DataWarehouse
Extraktion, Transformation, Laden
Extraktion
Integration
Aggregation
DataWarehouse
1
2
3
5
4
Zwischenspeicher
Instanzextraktion
und Transformation
Instanzabgleich
und Integration
Filterung,
Aggregation
Scheduling, Logging, Monitoring, Recovery, Backup
Legende:
1
3
Instanz-Charakteristika
(reale Meta-Daten)
4
Abbildungen von Quell- auf
Zielschemata
2
Translationsregeln
5
Filterungs- und Aggregationsregeln
Meta-Datenfluss
Datenfluss
[Rahm Do 2000]
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–35
Extraktion, Transformation, Laden
Laden von Daten
Technik: Quelle – Datenbereinigungsbereich –
BasisDB
Quelle 1:
RDBMS
Quelle 2:
IMS
Rel. Schema
Q1
Rel. Schema
Q2
Datenwürfel,
Integriertes
Schema
BULK Load meist nur für initiale Beladung
Folgende Beladungen
I
I
I
INSERT INTO ...SELECT ...
Logging ausschaltbar
Parallelisierbar
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–36
Extraktion, Transformation, Laden
Laden von Daten
Transformationsaufgaben
Bei der Extraktion
I
I
I
Einfache Konvertierungen (für LOAD - File)
Satzorientierung (Tupel)
Vorbereitung für BULK Loader –> meist Scripte oder 3GL
Im Datenbeschaffungsbereich
I
I
I
I
I
Mengenorientierte Berechnungen
Inter- und Intra-Relationenvergleich
Vergleich mit Basisdatenbank → Duplikate
Tagging der Datensätze
SQL
Laden in die BasisDB
I
I
Bulk-Load
satzorientierte Inserts mit ausgeschaltetem Logging
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–37
Extraktion, Transformation, Laden
Laden von Daten
Aufgabe: Quelle – Datenbereinigungsbereich –
BasisDB
Was macht man wo und wann?
I
Keine definierte Aufgabenteilung vorhanden
Art des Zugriffs
Verfügbare Datenbasen
Verfügbare Datensätze
Programmiersprache
c Sattler / Saake / Köppen
Extraktion
Laden
Quelle → Datenbereitstellungsbereich
Datenbereitstellungsbereich
→ Basis-DB
Satzorientiert
Eine Quelle (Updatefile)
Quellabhängig: Alle, alle Änderungen, Deltas
Skripte: Perl, AWK, . . . oder
3GL
Mengenorientiert
Viele Quellen
Zusätzlich Basis-DB verfügbar
Data-Warehouse-Technologien
SQL, PL/SQL
Letzte Änderung: 15.12.2014
4–38
Extraktion, Transformation, Laden
Transformationsaufgaben
Transformation
Problem
I
I
Daten im Datenbereinigungsbereich nicht im Format der
Basisdatenbank
Struktur der Daten unterschiedlich
F
F
F
Datenbereinigungsbereich: Quellnahes Schema
Basis-DB: Multidimensionales Schema
Strukturelle Heterogenität
Aspekte
I
I
Datentransformation
Schematransformation
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–39
Extraktion, Transformation, Laden
Transformationsaufgaben
Daten- und Schemaheterogenität
Hauptdatenquelle: OLTP-Systeme
Sekundärquellen:
I
I
Dokumente in firmeninternen Altarchiven
Dokumente im Internet via WWW, FTP
F
F
Unstrukturiert: Zugriff über Suchmaschinen, . . .
Semistrukturiert: Zugriff über Suchmaschinen, Mediatoren, Wrapper
als XML-Dokumente o.ä.
Grundproblem: Heterogenität der Quellen
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–40
Extraktion, Transformation, Laden
Transformationsaufgaben
Aspekte der Heterogenität
Verschiedene Datenmodelle
I
I
I
Bedingt durch autonome Entscheidung über Anschaffung von
Systemen in den Unternehmensbereichen
Verschiedene und verschieden mächtige Modellierungskonstrukte,
D.h. Anwendungssemantik in unterschiedlichem Ausmaß erfassbar
Abbildung zwischen Datenmodellen nicht eindeutig
Beispiel: Relationenmodell vs. objektorientierte Modellierung vs.
XML
Vorname
Name
PLZ
Kunde
c Sattler / Saake / Köppen
Kunde
Name
Vorname
PLZ
...
Data-Warehouse-Technologien
Kunde
Name
PLZ
Vorname
Letzte Änderung: 15.12.2014
4–41
Extraktion, Transformation, Laden
Transformationsaufgaben
Aspekte der Heterogenität (2)
Unterschiedliche Modellierungen für gleiche Sachverhalte der
Realwelt
I
I
Bedingt durch Entwurfautonomie
Selbst im gleichen Datenmodell verschiedene Modellierungen
möglich, z.B. durch unterschiedliche Modellierungsperspektiven der
DB-Designer
Kunde
Name
Vorname
...
Kunde
Name
Vorname
Geschlecht
...
Mann
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Frau
Letzte Änderung: 15.12.2014
4–42
Extraktion, Transformation, Laden
Transformationsaufgaben
Aspekte der Heterogenität (3)
Unterschiedliche Repräsentation der Daten
I
I
I
I
Unterschiedliche Datentypen möglich
Unterschiedliche Umfang der unterstützten Datentypen
Unterschiedliche interne Darstellung der Daten
Auch unterschiedliche „Werte“ eines Datentyps zur Repräsentation
derselben Information
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–43
Extraktion, Transformation, Laden
Transformationsaufgaben
Datenfehler-Klassifikation
Datenfehler
Einzelne Datenquellen
Integrierte Datenquellen
Schemaebene
Datenebene
Schemaebene
Datenebene
Fehlende
Integritätsbedingungen,
schlechtes Schema
Design
Fehler in
Datenträgern
Heterogene
Datenmodelle und
-schemata
Überlappende,
widersprüchliche und
inkonsistente Daten
- Unzulässiger Wert
- Attributabhängigkeit
verletzt
- Eindeutigkeit verletzt
- Referenzielle Integrität
verletzt
-
Fehlende Werte
Schreibfehler
Falsche Werte
Falsche Referenz
Kryptische Werte
Eingebettete Werte
Falsche Zuordnung
Widersprüchliche Werte
Transpositionen
Duplikate
Datenkonflikte
- Strukturelle
Heterogenität
- Semantische
Heterogenität
- Schematische
Heterogenität
- Widersprüchliche Werte
- Unterschiedliche
Repräsentationen
- Unterschiedliche
Genauigkeit
- Unterschiedliche
Aggregationsebenen
-Duplikate
[Rahm Do 2000, Leser Naumann 2007]
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–44
Extraktion, Transformation, Laden
Schematische Heterogenität
Schematische Heterogenität
Ursache: Entwurfsautonomie
I
I
I
I
I
unterschiedliche Modellierung
Unterschiedliche Normalisierung
Was ist Relation, was Attribut, was Wert?
Aufteilung von Daten in Tabellen
Redundanzen aus Quellsystemen
Schlüssel
In SQL nicht gut unterstützt
I
I
I
INSERT hat nur eine Zieltabelle
SQL greift auf Daten zu, nicht auf Schemaelemente
Erfordert meist Programmierung
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–45
Extraktion, Transformation, Laden
Schematische Heterogenität
Schema Mapping
Datentransformation zwischen heterogenen Schemata
I
I
I
Altes aber immer wiederkehrendes Problem
Üblicherweise schreiben Experten komplexe Anfragen oder
Programme
Zeitintensiv
F
F
Experte für die Domäne, für Schemata und für Anfrage
XML macht alles noch schwieriger: XML Schema, XQuery
Idee: Automatisierung
I
I
Gegeben: Zwei Schemata und ein high-level Mapping dazwischen
Gesucht: Anfrage zur Datentransformation
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–46
Extraktion, Transformation, Laden
Schematische Heterogenität
Warum ist Schema Mapping schwierig?
Generierung der „richtigen“ Anfrage unter Berücksichtigung
I
I
I
des Quell und Ziel-Schemas,
des Mappings
und der Nutzer-Intention: Semantik!
Garantie, dass die transformierten Daten dem Zielschema
entsprechen
I
I
Flach oder geschachtelt
Integritätsbedingungen
Effiziente Datentransformation
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–47
Extraktion, Transformation, Laden
Schematische Heterogenität
Schema Mapping: Normalisiert vs. Denormalisiert
1:1-Assoziationen werden unterschiedlich dargestellt
I
I
Durch Vorkommen im gleichen Tupel
Durch Fremdschlüsselbeziehung
Bier
bID
name
alkoholgehalt
Produkt
pID
name
hersteller
produktsorte
Produktsorte
pFK
bezeichnung
SELECT bID AS pID, name, NULL AS hersteller,
NULL AS produktsorte FROM Bier
UNION
SELECT NULL AS pID, NULL AS name, NULL AS hersteller,
bezeichnung AS produktsorte FROM Produktsorte
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–48
Extraktion, Transformation, Laden
Schematische Heterogenität
Schema Mapping: Normalisiert vs. Denormalisiert (2)
Bier
bID
name
alkoholgehalt
Produkt
pID
name
hersteller
produktsorte
Produktsorte
pFK
bezeichnung
SELECT bID AS pID, name, NULL AS hersteller,
bezeichnung AS produktsorte
FROM Bier, Produktsorte
WHERE bID = pFK
Nur eine von vier möglichen Interpretationen!
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–49
Extraktion, Transformation, Laden
Schematische Heterogenität
Schema Mapping: Normalisiert vs. Denormalisiert (3)
Produkt
name
hersteller
produktsorte
Bier
bID
name
alkoholgehalt
Produktsorte
pFK
bezeichnung
Erfordert Generierung von Schlüsseln: Skolemfunktion SK, die
einen bzgl. der Eingabe eindeutigen Wert liefert (z.B.
Konkatenation aller Werte)
Bier
:= SELECT SK(name) AS bID, name,
NULL AS alkoholgehalt FROM Produkt
Produktsorte := SELECT SK(name) AS pFK,
produktsorte AS bezeichnung FROM Produkt
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–50
Extraktion, Transformation, Laden
Schematische Heterogenität
Schema Mapping: Geschachtelt vs. Flach
1:1-Assoziationen werden unterschiedlich dargestellt
I
I
D.h. geschachtelte Elemente
Durch Fremdschlüsselbeziehung
Bier
bID
name
alkoholgehalt
Produkt
pID
name
produktsorte
Produkt
name
hersteller
produktsorte
Produktsorte
bezeichnung
c Sattler / Saake / Köppen
Bier
name
Produktsorte
bezeichnung
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–51
Extraktion, Transformation, Laden
Schematische Heterogenität
Schwierigkeiten
Beispiel: Quelle(ID, Name, Strasse, PLZ, Umsatz)
Zielschema #1
Kunde(ID, Name, Umsatz)
Adresse(ID, Strasse, PLZ)
I
Erfordert 2 Durchläufe der Quelltabelle
INSERT INTO Kunde ... SELECT ...
INSERT INTO Adresse ... SELECT ...
Zielschema #2
PremKunde(ID, Name, Umsatz)
NormKunde(ID, Name, Umsatz)
I
Erfordert 2 Durchläufe der Quelltabelle
INSERT INTO PremKunde ... SELECT ... WHERE Umsatz>=X
INSERT INTO NormKunde ... SELECT ... WHERE Umsatz<X
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–52
Extraktion, Transformation, Laden
Schematische Heterogenität
Schwierigkeiten (2)
Schema
P1(Id, Name, Geschlecht)
P2(Id, Name, M, W)
P31(Id, Name), P32(Id, Name)
P1 → P2
INSERT INTO P2 (id, name, ’T’, ’F’) ... SELECT ...
INSERT INTO P2 (id, name, ’F’, ’T’) ... SELECT ...
P3 → P1
INSERT INTO P1(id,
SELECT ... FROM
INSERT INTO P1(id,
SELECT ... FROM
name, ’weiblich’) ...
P31
name, ’männlich’) ...
P32
Anzahl Werte muss feststehen; Neues Geschlecht – Alle Anfragen
ändern
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–53
Extraktion, Transformation, Laden
Datenfehler
Datenfehler
Eindeutigkeit
verletzt
Person
Ort
Unterschiedliche
Repräsentation
Widersprüchliche
Werte
Referentielle
Integrität verletzt
unvollständig
KNr
Name
Geb.datum
Alter
Geschl.
Telefon
PLZ
Email
34
Meier, Tom
21.01.1980
35
M
999-999
39107
null
34
35
Tina Möller
Tom Meier
18.04.78
32.05.1969
29
27
W
F
763-222
222-231
36999
39107
null
[email protected]
PLZ
39107
36996
95555
Ort
Magdeburg
Spanien
Illmenau
Duplikate
Fehlende Werte
(z.B. Default-Werte)
Falsche oder
unzulässige Werte
Schreib- oder
Tippfehler
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–54
Extraktion, Transformation, Laden
Datenfehler
Vermeidung von Datenfehlern
Vermeidung von
falschen Datentypen
falschen Werte
fehlenden Werten
ungültigen Referenzen
Duplikaten
Inkonsistenzen
veralteten Daten
durch
Datentypdefinition,
domain-Constraints
check
not null
foreign key
unique, primary key
Transaktionen
Replikation, materialisierte Sichten
Dennoch in der Praxis:
I
I
I
I
Fehlen von Metadaten, Integritätsbedingungen, . . .
Eingabefehler, Unkenntnis, . . .
Heterogenität
...
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–55
Extraktion, Transformation, Laden
Datenfehler
Phasen der Datenaufbereitung
Dimensionsreduktion /
Sampling
Nutzung
Sammlung/
Auswahl
Aggregation /
FeatureExtraktion
Duplikaterkennung und
Merging
DQ-Probleme
identifizieren/
quantifizieren
Fehlerarten/
-ursachen
erkennen
Fehlerkorrektur
Data Profiling
Transformation
Diskretisierung
Standardisierung/
Normalisierung
Data Cleaning
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–56
Extraktion, Transformation, Laden
Datenfehler
Data Profiling
Analyse von Inhalt und Struktur einzelner Attribute
I
Datentyp, Wertebereich, Verteilung und Varianz, Vorkommen von
Nullwerten, Eindeutigkeit, Muster (z.B. dd/mm/yyyy)
Analyse von Abhängigkeiten zwischen Attributen einer Relation
I
I
I
„unscharfe“ Schlüssel
Funktionale Abhängigkeiten, potenzielle Primärschlüssel,
„unscharfe“ Abhängigkeiten
Notwendigkeit:
F
F
Keine expliziten Integritätsbedingungen spezifiziert
Jedoch in Daten in den meisten Fällen erfüllt
Analyse von Überlappungen zwischen Attributen verschiedener
Relationen
I
Redundanzen, Fremdschlüsselbeziehungen
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–57
Extraktion, Transformation, Laden
Datenfehler
Data Profiling (2)
Fehlende bzw. falsche Werte
I
I
Ermittelte vs. erwartete Kardinalität (z.B. Anzahl von Filialen,
Geschlecht von Kunden)
Anzahl der Nullwerte, Minimum / Maximum, Varianz
Daten- bzw. Eingabefehler
I
I
Sortierung und manuelle Prüfung
Ähnlichkeitstests
Duplikate
I
Tupelanzahl vs. Attributkardinalität
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–58
Extraktion, Transformation, Laden
Datenfehler
Data Profiling mit SQL
SQL-Anfragen für einfache Profiling-Aufgaben
I
I
Schema, Datentypen: Anfragen an Schemakatalog
Wertebereich
select min(A), max(A), count(distinct A)
from Tabelle
I
Datenfehler, Defaultwerte
select Ort, count(*) as Anz
from Kunden group by Ort order by Anz
F
F
Aufsteigend: Eingabefehler, z.B. Illmenau: 1, Ilmenau: 50
Absteigend: undokumentierte Default-Werte, z.B. AAA: 80
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–59
Extraktion, Transformation, Laden
Datenfehler
Data Cleaning
Erkennen & Beseitigen von Inkonsistenzen, Widersprüchen und
Fehlern in Daten mit dem Ziel der Qualitätsverbesserung
Auch Cleansing oder Scrubbing
Bis zu 80% des Aufwandes in DW-Projekten
Cleaning im DW: Teil des ETL-Prozesses
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–60
Extraktion, Transformation, Laden
Datenfehler
Re
ge
lba
sie
r
hu
ng
sa
na
l ys
e
zie
Be
sa
na
l ys
e
Schlüsseleindeutigkeit
Redundanzfreiheit
Eindeutigkeit der
Primär- bzw.
Kandidatenschlüssel
Normalisierungsgrad
(1.,2. und 3. NF),
Duplikatprüfung
ein
Datentyp-,
Feldlängen- und
Wertebereichskonsistenzen
Min, Max, Mittel,
Median, Standardabweichung, ...
it
ke
ltig
Gü
Ab
hä
ng
igk
eit
Konsistenz
Korrektheit
mittels statistischer Kontrolle
te
Integritätsverletzungen,
Waisen (Orphans),
Kardinalitäten
er
W
Referenzielle
Integrität
er
hr
Geschäfts- und
Datenregeln (Defekte)
me
ze
Einheitlichkeit
Formatanalyse (für
numerische Attribute,
Zeiteinheiten und
Zeichenketten)
Sp
alt
e
Vollständigkeit
Füllgradanalyse der
Entitäten und Attribute
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
te
Genauigkeit
Analyse der Stelligkeiten
(Gesamt- und Nachkommastellen für
numerische Attribute)
er
rW
Eindeutigkeit
Analyse der Metadaten
lne
na
na
l ys
e
Konsistenz
mittels regelbasierter Analyse
it
ke
ltig
Gü
te
An
al
ys
e
Datenqualität und Datenbereinigung
Letzte Änderung: 15.12.2014
4–61
Extraktion, Transformation, Laden
Datenfehler
Normalisierung und Standardisierung
Datentypkonvertierung: varchar → int
Kodierungen: 1: Adresse unbekannt, 2: alte Adresse, 3: gültige
Adresse, 4: Adresse bei Ehepartner, . . .
Normalisierung: Abbildung in einheitliches Format
I
I
I
Datum: 03/01/11 → 01. März 2011
Währung: $ → e
Zeichenketten in Großbuchstaben
Zerlegung in Token: “Saake, Gunter” → “Saake”, “Gunter”
Diskretisierung numerischer Werte
Domänenspezifische Transformationen
I
I
I
I
Codd, Edgar Frank → Edgar Frank Codd
Str. → Straße
Adressen über Adressdatenbanken
Branchenspezifische Produktbezeichnungen
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–62
Extraktion, Transformation, Laden
Datenfehler
Datentransformation
In SQL gut unterstützt
I
I
I
Vielfältige Funktionen im Sprachstandard
Stringfunktionen, Decodierung, Datumsumwandlung, Formeln,
Systemvariable, . . .
Funktionen in PL/SQL erstellen - in SQL verwenden
Daten
"Pause, Lilo"
"Prehn, Leo"
⇒
⇒
"Pause", "Lilo"
"Prehn", "Leo"
SQL
INSERT INTO kunden (nachname, vorname)
SELECT SubStr(name, 0, inStr(name,’,’)-1),
SubStr(name, inStr(name,’,’)+1)
FROM rawdata;
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–63
Extraktion, Transformation, Laden
Datenfehler
Duplikaterkennung
Identifikation von semantisch äquivalenten Datensätzen, d.h. die
das gleiche Realwelt-Objekt repräsentieren
Auch: Record Linkage, Object Identification, Duplicate Elimination,
Merge/Purge
I
I
Merge: Erkennen von Duplikaten
Purge: Auswahl /Berechnung des „besten“ Vertreters pro Klasse
KundenNr
3346
3346
5252
5268
⊥
⊥
c Sattler / Saake / Köppen
Name
Just Vorfan
Justin Forfun
Lilo Pause
Lisa Pause
Ann Joy
Anne Scheu
Adresse
Hafenstraße 12
Hafenstr. 12
Kuhweg 42
Kuhweg 42
Domplatz 2a
Domplatz 28
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–64
Extraktion, Transformation, Laden
Datenfehler
Duplikaterkennung: Vergleiche
Typische Vergleichsregeln
if ssn1 = ssn2 then match
else if name1=name2 then
if firstname1=firstname2 then
if adr1=adr2 then match
else unmatch
else if adr1=adr2 then match_household
else if adr1=adr2 then
...
Naiver Ansatz: „Jeder-gegen-jeden“
I
I
I
O(n2 ) Vergleiche
Maximale Genauigkeit (je nach Regeln)
Viel zu teuer
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–65
Extraktion, Transformation, Laden
Datenfehler
Duplikaterkennung: Prinzip
R
Matches (M)
Partitionierung
des
Suchraums
r1,s1
r2,s2
r1, r2, r3, ...
r3,s3
RxS
S
s1, s2, s3, ...
...
Vergleichsfunktion
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Non Matches
(U)
Letzte Änderung: 15.12.2014
4–66
Extraktion, Transformation, Laden
Datenfehler
Partitionierung
Blocking
I
I
Aufteilung des Suchraums in disjunkte Blöcke
Duplikate nur innerhalb eines Blockes
Sortierte Nachbarschaft
I
I
[Hernandez Stolfo 1998]
Sortierung der Daten anhand eines gewählten Schlüssels
Vergleiche in einem gleitenden Fenster
Multi-Pass-Technik
I
Transitive Hülle über verschiedene Sortierungen
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–67
Extraktion, Transformation, Laden
Datenfehler
Sortierte Nachbarschaft
1
Berechne einen Schlüssel pro
Datensatz
I
I
Bsp: SSN + „ersten 3 Zeichen von
Name“ + ...
Beachtung typischer Fehler: 0-O,
Soundex, Nachbartasten, ...
2
Sortiere nach Schlüssel
3
Laufe Liste sequenziell ab
Vergleiche innerhalb eines Fensters W,
|W| = w
4
I
w
w
Mit welchen Tupeln muss wirklich
verglichen werden?
Komplexität
I
I
Schlüsselerzeugung: O(n), Sortieren: O(n · log(n)); Vergleichen:
O((n/w) · (w2 )) = O(n · w);
Gesamt: O(n · log(n)) oder O(n · w)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–68
Extraktion, Transformation, Laden
Datenfehler
Sortierte Nachbarschaft: Probleme
Genauigkeit schlecht
I
I
I
Sortierkriterium bevorzugt immer Attribute
Sind erste Buchstaben wichtiger für Identität als letzte?
Ist Nachname wichtiger als Hausnummer ?
Window vergrößern?
I
I
Keine Hilfe
Dominanz eines Attributes bleibt gleich, aber Laufzeit
verschlechtert sich schnell
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–69
Extraktion, Transformation, Laden
Datenfehler
Multi-Pass-Technik
Sortieren nach mehreren Kriterien und Identifikation von
Duplikaten
Bildung der transitiven Hülle der Duplikate bis zu gegebener
Länge
B
A
C
1. Lauf: „A matches B“
2. Lauf: „B matches C“
B
A
Transitivität: „A matches
C“
C
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–70
Extraktion, Transformation, Laden
Datenfehler
Vergleichsfunktionen
Vergleichsfunktionen für Felder (String A und B), u.a.:
I
I
I
Editierdistanz: Anzahl der Editieroperationen (Einfügen, Löschen,
Ändern) für Änderung von A in B
q-Grams: Vergleich der Mengen aller Teilstrings von A und B der
Länge q
Jaro-Distanz und Jaro-Winkler-Distanz: Berücksichtigung von
gemeinsamen Zeichen (innerhalb der halben Stringlänge) und
transponierten Zeichen (an anderer Position)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–71
Extraktion, Transformation, Laden
Datenfehler
Edit-Distanz
Levensthein-Distanz:
I
I
Anzahl der Editieroperationen (Einfügen, Löschen, Ändern) für
Änderung von A in B
Beispiel:
edit_distance(“Qualität”, “Quantität”) = 2
⇒ update(3,’n’)
⇒ insert(4,’t’)
I
Anwendung:
select P1.Name, P2.Name
from Produkt P1, Produkt P2
where edit_distance(P1.Name, P2.Name) <= 2
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–72
Extraktion, Transformation, Laden
Datenfehler
q-Gramme
Menge aller Substrings der Länge q
Qualität3 := { __Q, _Qu, Qua, ual, ali, lit, itä, tät, ät_, t__ }
Beobachtung: Strings mit kleiner Edit-Distanz haben viele
gemeinsame q-Gramme, d.h. für Edit-Distanz = k mind.
max(|A|, |B|) − 1 − (k − 1) · q
gemeinsame q-Gramme
Positionale q-Gramme: Ergänzung um Position im String
Qualität := { (-1, __Q), (0, _Qu), (1, Qua), ... }
I
Filterung für effizienten Vergleich:
F
F
F
COUNT: Anzahl der gemeinsamen q-Gramme
POSITION: Positionsunterschied zwischen korrespondierenden
q-Grammen ≤ k
LENGTH: Differenz der Stringlängen ≤ k
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–73
Extraktion, Transformation, Laden
Datenfehler
Datenkonflikte
Datenkonflikt: Zwei Duplikate haben unterschiedliche
Attributwerte für semantisch gleiches Attribut
I
Im Gegensatz zu Konflikten mit Integritätsbedingungen
Datenkonflikte entstehen
I
I
Innerhalb eines Informationssystems (intra-source) und
Bei der Integration mehrerer Informationssysteme (inter-source)
Voraussetzung: Duplikat, d.h. Identität schon festgestellt
Erfordert: Konfliktauflösung (Purging, Reconciliation)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–74
Extraktion, Transformation, Laden
Datenfehler
Datenkonflikte: Entstehung
Mangels Integritätsbedingungen oder Konsistenz-Checks
Bei redundanten Schemata
Durch partielle Informationen
Bei Entstehung von Duplikaten
Nicht korrekte Einträge
I
I
Tippfehler, Übertragungsfehler
Falsche Rechenergebnisse
Obsolete Einträge
I
Unterschiedliche Aktualisierungszeitpunkte
F
F
I
Ausreichende Aktualität einer Quelle
Verzögerte Aktualisierung
Vergessene Aktualisierung
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–75
Extraktion, Transformation, Laden
Datenfehler
Datenkonflikte: Behebung
Referenztabellen für exakte Wertabbildung
I
Z.B. Städte, Länder, Produktnamen, Codes...
Ähnlichkeitsmaße
I
Bei Tippfehlern, Sprachvarianten (Meier, Mayer,...)
Standardisieren und Transformieren
Nutzung von Hintergrundwissen (Metadaten)
I
I
Z.B. Konventionen (landestypische Schreibweisen)
Ontologien, Thesauri, Wörterbücher zur Behandlung von
Homonymen, Synonymen, . . .
Bei der Integration
I
I
Präferenzordnung über Datenquellen nach Aktualität, Trust
(Vertrauen), Öffnungszeiten usw.
Konfliktlösungsfunktionen
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–76
Extraktion, Transformation, Laden
ELT
ETL vs. ELT
ELT = Extract-Load-Transform
I
I
I
Variante des ETL-Prozesses, bei dem die Daten erst nach dem
Laden transformiert werden
Ziel: Transformation mit SQL-Anweisungen in der Zieldatenbank
Verzicht auf spezielle ETL-Engines
E
LT
Quellen
Data Warehouse
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–77
Extraktion, Transformation, Laden
ELT
ELT
Extraktion
I
I
I
Für Quellsystteme optimierte Abfragen (z.B. SQL)
Extraktion ebenfalls mit Monitoren überwacht
Automatische Extraktion schwieriger (z.B. bei
Datenstrukturänderungen)
Laden
I
I
I
Parallele Verarbeitung der SQL-Statements
Bulk Load (Annahme: keine Schreibzugriffe im Zielsystem)
Keine satzbasierte Protokollierung
Transformation
I
I
I
Ausnutzung von Mengenoperationen der
DW-Transformationskomponente
Komplexe Transformationen mittels prozeduraler Sprachen (z.B.
PL/SQL)
Spezifische Statements (z.B. CTAS von Oracle)
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–78
Extraktion, Transformation, Laden
ELT
Zusammenfassung
ETL als Prozess der Überführung von Daten aus Quellsystemen
in das DWH
Themen von ETL und Datenqualität machen typischerweise 80%
des Aufwands von DWH-Projekten aus!
I
I
Langsame Anfragen sind ärgerlich
Falsche Ergebnisse machen das DWH nutzlos
Teil des Transformationsschrittes
I
I
Schemaebene: Schema Mapping bzw. Schematransformation
Instanzebene: Datenbereinigung
c Sattler / Saake / Köppen
Data-Warehouse-Technologien
Letzte Änderung: 15.12.2014
4–79
Herunterladen