Declarative Data Cleaning

Werbung
Declarative Data Cleaning
Vortragsgrundlage:
Helena Galhardas, Daniela Florescu, Dennis Shasha, Eric
Simon, Cristian-Augustin Saita:
“Declarative Data Cleaning:
Language, Model, and Algorithms”,
in VLDB '01: Proceedings of the 27th International
Conference on Very Large Data Bases, 2001
Original Version:
http://www.vldb.org/conf/2001/P371.pdf
Extended Version: ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-4149.pdf
Declarative Data Cleaning:
Language, Model, and Algorithms
Seminar: Digital Information Curation
Sebastian Rexhausen
Inhalt
•Einführung Problemstellung
•Declarative Data Cleaning
–Konzept
–Specification Language
–User Interaction
Data Cleaning
Nur auf Grund von verlässlichen Daten können
verlässliche Entscheidungen getroffen werden.
Aufgabe Data Cleaning:
Auch „data cleansing”, “data scrubbing”oder “Datenbereinigung”
Erkennen von Inkonsistenzen und Fehlern in
Datenbeständen und anschließendes Entfernen
bzw. Korrigieren der Daten.
Data Cleaning
Nachfrage nach Data Cleaning:
•Anomalien in einer Datensammlung
•Überführung von
unstrukturierte/teilstrukturierten Daten in
strukturierte Daten
•Kombination von Daten aus mehreren Quellen
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
universelle ID
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
2.
universelle ID
Syntax & Formatierung
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
2.
universelle ID
Syntax & Formatierung
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
2.
3.
universelle ID
Syntax & Formatierung
Konsistenz der Daten
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
2.
3.
4.
universelle ID
Syntax & Formatierung
Konsistenz der Daten
Fehlerhaftigkeit der Daten
Probleme
Referenz aus Paper1:
[QGMW96] Dallan Quass, Ashish Gupta, Inderphal Singh Mumick, and Jennifer Widom.
Making Views Self-Maintainable for Data Warehousing. In Proceedings of
the Conference on Parallel and Distributed Information Systems. Miami
Beach, Florida, USA, 1996. Available via WWW at www-db.stanford.edu as
pub/papers/self-maint.ps.
Referenz aus Paper2:
[12]
D. Quass, A. Gupta, I. Mumick, and J. Widom: Making views selfmaintanable for data, PDIS'95
1.
2.
3.
4.
5.
universelle ID
Syntax & Formatierung
Konsistenz der Daten
Fehlerhaftigkeit der Daten
Unterschiedliche Informationen
Declarative Data Cleaning
Ergebnisse der existierenden Verfahren
unzureichend
Declarative Data Cleaning
•Hauptsächlich: klare Trennung von logischer
Spezifikation und physischer Implementierung
•Framework (Projekt AJAX)
•Einbeziehung des Nutzers während des ganzen
Analyseprozesses
Trennung logische/physische Ebene
Logische Ebene:
Datenflussdiagramm welches die zur Bereinigung der Daten
benötigten Transformationen spezifiziert
Physische Ebene:
Implementierung und Optimierung der Daten-Transformationen
Framework für bibliographische Daten
Logische Ebene
•erweitertes SQL
•eigene Datenquellen
Physische Ebene
Optimierungsmöglichkeiten:
•Optimierung der gewählten Funktion
•Wahl einer optimalen Funktion
(+ evtl. Implementierung)
Specification Language
Operatoren
•Mapping
•Matching
•Clustering
•Merging
•(View)
Mapping Operator
•arbeitet die Daten für die weitere Verarbeitung
auf
•falls kein Unique-Key vorhanden ist
hinzufügen, ansonsten übernehmen
CREATE MAPPING <operation-name>
FROM
<predicate-name> [<alias-variable>]
[LET
<let-clause>]
[WHERE <where-clause>]
<select-into-clause>
Mapping Operator
CREATE MAPPING AddKeytoDirtyData
FROM
DirtyData
LET
Key = generateKey(DirtyData.paper)
{SELECT Key.gernerateKey AS paperKey,
DirtyData.paper AS paper
INTO
KeyDirtyData}
Matching Operator
•sucht nach Einträgen, die wahrscheinlich das
gleiche Objekt beschreiben
•Übereinstimmungskriterium kann ein oder
mehrere Einträge sein
CREATE
FROM
[LET
[WHERE
INTO
MATCHING <operation-name>
(<predicate-name> [<alias-variable>])+
<let-clause>]
<where-clause>]
<predicate-name>
Matching Operator
CREATE
FROM
LET
WHERE
INTO
MATCHING MatchDirtyAuthors
DirtyAuthors a1, DirtyAuthors a2
distance = editDistanceAuthors(a1.name, a2.name)
distance < maxDist(a1.name, a2.name, 15)
MatchAuthors
Clustering Operator
•gruppiert Einträge, deren Ähnlichkeitswert
einen vorgegebenen Schwellenwert übersteigt
CREATE CLUSTERING <operation-name>
FROM
<predicate-name> [<alias-variable>]
BY METHOD <method-name>
WITH PARAMETERS <parameter-name> [{<parameter-name}]
INTO
<predicate-name>
Clustering Operator
CREATE CLUSTERING clusterAuthorsByTransitiveClosure
FROM
MatchAuthors
BY METHOD transitive closure
WITH PARAMETERS authorKey1, authorKey2
INTO
clusterAuthors
Merging Operator
•fügt die durch den Clusteralgorithmus
berechneten Gruppen zu jeweils einem
Eintrag zusammen
CREATE MERGING <operation-name>
USING <predicate-name> [<alias-variable>]
LET
<let-clause>
[WHERE <where-clause>]
<select-into-clause>
Merging Operator
CREATE MERGING MergeAuthors
USING clusterAuthors(cluster_id) ca
LET
name = getLongestAuthorName(DirtyAuthors(ca).name)
key = generateKey()
{SELECT key AS authorKey,
name AS name
INTO
Authors}
View Operator
•arbeitet die Inhalte aus verschiedenen
Relationen zu einer neuen Relation so auf,
dass sie einem gewünschten Ausgabeformat
entsprechen
CREATE VIEW <operation-name>
FROM (<predicate-name> [<alias-variable>])+
[WHERE <where-clause>]
{<select-into-clause>}
View Operator
CREATE VIEW viewPublications
FROM DirtyPubs p, Titles t
WHERE p.pubkey AS pubKey
{SELECT p.pubkey AS pubKey, t.title AS title,
t.eventKey AS eventKey, p.volume AS volume,
p.number AS number,
p.country AS country,
p.city AS city,
p.pages AS pages,
...
INTO
Publications
CONSTRAINT NOT NULL title}
User Interaction
Explizite Nutzer-Interaktion während des ganzen
Prozesses
•schrittweise Verfeinerung der Anfragen
•Zurückverfolgung der Anfragen
•Exceptions
Ende
Herunterladen