Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Abgleichen von Datensätzen mit AWS Lake Formation FindMatches
Anmerkung
Der Datensatzabgleich ist derzeit in den folgenden Regionen in der AWS Glue-Konsole nicht verfügbar: Naher Osten (VAE), Europa (Spanien) (eu-south-2
) und Europa (Zürich) (eu-central-2
).
AWS Lake Formation bietet Machine Learning-Funktionen zum Erstellen von benutzerdefinierten Transformationen zum Bereinigen Ihrer Daten. Derzeit ist eine Transformation mit dem Namen FindMatches verfügbar. Mithilfe der Transformation FindMatches können Sie doppelte oder übereinstimmende Datensätze in Ihrem Dataset identifizieren, auch wenn die Datensätze nicht über eine gemeinsame eindeutige Kennung verfügen und keine Felder exakt übereinstimmen. Hierfür müssen Sie weder Code schreiben noch wissen, wie Machine Learning funktioniert. FindMatches kann bei vielen verschiedenen Problemen nützlich sein, beispielsweise in folgenden Situationen:
Abgleichen von Kunden: Verknüpfen von Kundendatensätzen über verschiedene Kundendatenbanken hinweg, auch wenn viele Kundenfelder in den Datenbanken nicht exakt übereinstimmen (z. B. unterschiedliche Schreibweise der Namen, Adressunterschiede, fehlende oder ungenaue Daten usw.).
Abgleichen von Produkten: Abgleichen von Produkten in Ihrem Katalog mit anderen Produktquellen, beispielsweise des Produktkatalogs mit dem Katalog eines Wettbewerbers, wobei Einträge unterschiedlich strukturiert sind.
Verbesserung der Betrugserkennung: Identifizieren von doppelten Kundenkonten, um zu bestimmen, wann ein neu erstelltes Konto mit einem zuvor bekannten betrügerischen Benutzer übereinstimmt (oder übereinstimmen könnte).
Andere Übereinstimmungsprobleme: Übereinstimmung von Adressen, Filmen, Teilelisten usw. Allgemein gilt: Wenn ein Mensch Ihre Datenbankzeilen ansehen und feststellen könnte, dass sie übereinstimmen, ist die Chance groß, dass die FindMatches-Transformation Ihnen helfen kann.
Sie können diese Transformationen erstellen, wenn Sie einen Auftrag erstellen. Die von Ihnen erstellte Transformation basiert auf einem Quelldatenspeicherschema und Beispieldaten aus dem Quelldatensatz, denen Sie Labels zuweisen (wir bezeichnen diesen Prozess als „Trainieren” einer Transformation). Die von Ihnen mit einem Label versehenen Datensätze müssen im Quelldatensatz vorhanden sein. In diesem Prozess generieren wir eine Datei, die Sie labeln und dann wieder hochladen, woraus die Transformation in gewisser Weise lernen würde. Nachdem Sie Ihre Transformation gelehrt haben, können Sie sie von Ihrem Spark-basierten AWS Glue-Auftrag (PySpark oder Scala Spark) aufrufen und in anderen Skripten mit einem kompatiblen Quelldatenspeicher verwenden.
Erstellte Transformationen werden in AWS Glue gespeichert. In der AWS Glue Konsole können Sie die von Ihnen erstellten Transformationen verwalten. Im Navigationsbereich unter Datenintegration und ETL, Datenklassifizierungs-Tools > Datensatzabgleich, können Sie Ihre Machine-Learning-Transformation bearbeiten und weiter unterrichten. Weitere Informationen zum Verwalten von Transformationen in der Konsole finden Sie unter Die Arbeit mit Machine Learning-Transformationen.
Anmerkung
AWS Glue Version 2.0 FindMatchs-Aufträge verwenden den Amazon S3-Bucket aws-glue-temp-<
, um temporäre Dateien zu speichern, während die Transformation Daten verarbeitet. Sie können diese Daten, nachdem die Ausführung abgeschlossen wurde, entweder manuell oder durch Festlegen einer Amazon S3-Lebenszyklusregel löschen.accountID
>-<region
>
Arten von Machine Learning-Transformationen
Sie können Machine Learning-Transformationen erstellen, um Ihre Daten zu bereinigen. Sie können diese Transformationen aus Ihrem ETL-Skript heraus aufrufen. Ihre Daten werden in einer Datenstruktur namens DynamicFrame von Transformation zu Transformation übergeben (eine Erweiterung für ein Apache Spark SQL DataFrame
). Der DynamicFrame
enthält Ihre Daten und Sie verweisen auf das Schema, um Ihre Daten zu verarbeiten.
Die folgenden Arten von Machine Learning-Transformationen sind verfügbar:
- Suche nach Übereinstimmungen
-
Sucht doppelte Datensätze in den Quelldaten. Zum Trainieren dieser Machine Learning-Transformation kennzeichnen Sie durch entsprechendes Labeling von Beispieldatensätzen, welche Zeilen übereinstimmen. Die Machine Learning-Transformation lernt immer besser, welche Zeilen Übereinstimmungen darstellen sollten, je mehr Sie sie mit gelabelten Beispieldaten trainieren. Abhängig davon, wie Sie die Transformation konfigurieren, ist eine der folgenden Ausgaben möglich:
Eine Kopie der Eingabetabelle sowie eine
match_id
-Spalte mit Werten, die übereinstimmende Gruppen von Datensätzen angeben. Diematch_id
-Spalte ist ein beliebiger Bezeichner. Alle Datensätze mit derselbenmatch_id
wurden als übereinstimmend identifiziert. Datensätze mit anderermatch_id
stimmen nicht überein.Eine Kopie der Eingabetabelle, in der doppelte Zeilen entfernt wurden. Wenn mehrere Duplikate gefunden werden, wird der Datensatz mit dem niedrigsten Primärschlüssel beibehalten.
- Inkrementelle Übereinstimmungen finden
-
Die Transformation „Übereinstimmungen suchen“ kann auch konfiguriert werden, um Übereinstimmungen in den vorhandenen und inkrementellen Frames zu finden und als Ausgabe eine Spalte zurückzugeben, die eine eindeutige ID pro Übereinstimmungsgruppe enthält.
Weitere Informationen finden Sie unter: Inkrementelle Übereinstimmungen finden
Verwendung der FindMatches-Transformation
Sie können mit der FindMatches
-Transformation nach doppelten Datensätzen in den Quelldaten suchen. Zur Unterstützung beim Trainieren der Transformation wird eine Labeling-Datei generiert oder zur Verfügung gestellt.
Anmerkung
Derzeit werden FindMatches
-Transformationen, die einen benutzerdefinierten Verschlüsselungsschlüssel verwenden, in den folgenden Regionen nicht unterstützt:
-
Asien Pazifik (Osaka) –
ap-northeast-3
Um mit der FindMatches-Transformation zu beginnen, können Sie die folgenden Schritte ausführen. Ein ausführlicheres und detaillierteres Beispiel finden Sie im Big-Data-Blog von AWS: Harmonisieren von Daten mithilfe von AWS Glue- und AWS Lake Formation-FindMatches ML zur Erstellung einer 360-Grad-Kundenansicht
Erste Schritte mit der Transformation zur Suche nach Übereinstimmungen
Führen Sie als Einstieg in die FindMatches
-Transformation die folgenden Schritte aus:
Erstellen Sie im AWS Glue Data Catalog eine Tabelle für die Quelldaten, die bereinigt werden sollen. Weitere Informationen zum Erstellen eines Crawlers finden Sie unter Arbeiten mit Crawlern in der AWS Glue-Konsole.
Wenn es sich bei Ihren Quelldaten um eine textbasierte Datei handelt, wie z. B. eine CSV-Datei (durch Kommas voneinander getrennte Werte), berücksichtigen Sie Folgendes:
Bewahren Sie die CSV-Datei Ihres Eingabedatensatzes und die Labeling-Datei in separaten Ordnern auf. Andernfalls sieht der AWS Glue-Crawler sie möglicherweise als mehrere Teile derselben Tabelle an und legt die Tabellen in Data Catalog nicht richtig an.
Außer für CSV-Dateien, die ausschließlich ASCII-Zeichen enthalten, stellen Sie sicher, dass für die CSV-Dateien UTF-8 ohne BOM-Codierung (Byte Order Mark, Markierung der Bytereihenfolge) verwendet wird. Microsoft Excel fügt am Anfang der UTF-8-CSV-Dateien häufig eine BOM ein. Um diese zu entfernen, öffnen Sie die CSV-Datei in einem Texteditor und speichern Sie sie mit der Option UTF-8 without BOM (UTF-8 ohne BOM) neu.
Erstellen Sie in der AWS Glue-Konsole einen Auftrag und wählen Sie als Transformationstyp Find matches (Übereinstimmungen suchen) aus.
Wichtig
Die Datenquellentabelle, die Sie für den Auftrag auswählen, darf nicht mehr als 100 Spalten enthalten.
Weisen Sie AWS Glue an, eine Labeling-Datei zu generieren, indem Sie Generate labeling file (Labeling-Datei generieren) auswählen. AWS Glue verwendet den ersten Durchgang bei der Gruppierung ähnlicher Datensätze für jede
labeling_set_id
, sodass Sie diese Gruppierungen überprüfen können. Sie kennzeichnen Übereinstimmungen in der Spaltelabel
.Wenn Sie bereits über eine Labeling-Datei, also ein Beispiel von Datensätzen mit übereinstimmenden Zeilen, verfügen, laden Sie die Datei in Amazon Simple Storage Service (Amazon S3) hoch. Weitere Informationen über das Format der Labeling-Datei finden Sie unter Format der Labeling-Datei. Fahren Sie mit Schritt 4 fort.
Laden Sie die Labeling-Datei herunter und labeln Sie die Datei wie im Abschnitt Labeling beschrieben.
Laden Sie die korrigierte Labeling-Datei hoch. AWS Glue führt Aufgaben zum Trainieren der Transformation in Bezug auf die Suche nach Übereinstimmungen aus.
Wählen Sie auf der Seite mit der Liste Machine learning transforms (Maschine Learning-Transformationen) die Registerkarte History (Verlauf) aus. Diese Seite gibt an, wann AWS Glue die folgenden Aufgaben ausführt:
-
Import labels (Labels importieren)
-
Export labels (Labels exportieren)
-
Generate labels (Labels generieren)
-
Estimate quality (Qualität beurteilen)
-
Um eine bessere Transformation zu erstellen, können Sie die gelabelte Datei iterativ herunterladen, kennzeichnen und wieder hochladen. Bei den anfänglichen Ausführungen werden möglicherweise sehr viel mehr Datensätze falsch zugeordnet. Aber Sie können die Lernfähigkeit von AWS Glue durch fortgesetztes Überprüfen der Labeling-Datei trainieren.
Beurteilen und optimieren Sie Ihre Transformation, indem Sie die Leistung und Ergebnisse der Suche nach Übereinstimmungen beurteilen. Weitere Informationen finden Sie unter Optimieren von Machine Learning-Transformationen in AWS Glue.
Labeling
Wenn FindMatches
eine Labeling-Datei generiert, werden Datensätze aus Ihrer Quelltabelle ausgewählt. FindMatches
erkennt basierend auf vorherigem Training die wertvollsten Datensätze, von denen es lernen kann.
Unter Labeling ist das Bearbeiten einer Labeling-Datei (z. B. einer Tabellenkalkulation wie aus Microsoft Excel) und das Hinzufügen von Kennungen oder Labels zur Spalte label
zu verstehen, in der übereinstimmende und nicht übereinstimmende Datensätze identifiziert werden. Es ist wichtig, dass in Ihren Quelldaten klar und konsistent definiert ist, woran eine Übereinstimmung zu erkennen ist. FindMatches
lernt davon, welche Datensätze von Ihnen als Übereinstimmungen angesehen werden, sowie anhand Ihrer Entscheidungen, wie doppelte Datensätze zu finden sind.
Wenn eine Labeling-Datei von FindMatches
geniert wird, werden ca. 100 Datensätze angelegt. Diese 100 Datensätze sind in der Regel in 10 Labeling-Sätze unterteilt, wobei jeder Labeling-Satz durch eine eindeutige labeling_set_id
identifiziert wird, die von FindMatches
generiert wird. Jeder Labeling-Satz sollte unabhängig von den anderen Labeling-Sätzen als separate Labeling-Aufgabe betrachtet werden. Ihre Aufgabe besteht darin, übereinstimmende und nicht übereinstimmende Datensätze innerhalb jedes Labeling-Satzes zu identifizieren.
Tipps zum Bearbeiten von Labeling-Dateien in einer Tabellenkalkulation
Beim Bearbeiten der Labeling-Datei in einer Tabellenkalkulationsanwendung sollten Sie Folgendes berücksichtigen:
Die Datei wird möglicherweise nicht mit vollständig erweiterten Spaltenfeldern geöffnet. Sie müssen möglicherweise die Spalten
labeling_set_id
undlabel
erweitern, um den Inhalt in diesen Zellen sichtbar zu machen.Wenn die Primärschlüsselspalte eine Zahl ist, z. B. ein
long
-Datentyp, legt die Kalkulationstabelle sie möglicherweise als Zahl aus und ändert den Wert. Dieser Schlüssewertl muss als Text behandelt werden. Um dieses Problem zu beheben, formatieren Sie alle Zellen in der Primärschlüsselspalte als Text data (Textdaten).
Format der Labeling-Datei
Die Labeling-Datei, die von AWS Glue generiert wird, um Ihre FindMatches
-Transformation zu trainieren, verwendet das folgende Format. Wenn Sie Ihre eigene Datei für AWS Glue generieren, muss sie ebenfalls diesem Format folgen:
Sie ist eine CSV-Datei (durch Kommas voneinander getrennte Werte).
Sie muss in
UTF-8
codiert sein. Wenn Sie die Datei mit Microsoft Windows bearbeiten, wird sie möglicherweise mitcp1252
codiert.Sie muss sich an einem Amazon-S3-Speicherort befinden, damit sie an AWS Glue übergeben werden kann.
Sie sollten eine moderate Anzahl an Zeilen für jede Labeling-Aufgabe verwenden. Es werden 10–20 Zeilen pro Aufgabe empfohlen, obwohl 2–30 Zeilen pro Aufgabe zulässig sind. Aufgaben, die größer als 50 Zeilen sind, werden nicht empfohlen und können zu schlechten Ergebnissen oder Systemausfällen führen.
Wenn Sie bereits Daten mit Labeling haben, die aus Paaren von Datensätzen bestehen, die als „Übereinstimmung“ oder „Keine Übereinstimmung“ gekennzeichnet sind, ist dies in Ordnung. Diese Paare mit Labeling können als Labeling-Sätze der Größe 2 dargestellt werden. Bezeichnen Sie in diesem Fall beide Datensätze beispielsweise mit dem Buchstaben „A“, wenn sie übereinstimmen, aber bezeichnen Sie einen als „A“ und einen als „B“, wenn sie nicht übereinstimmen.
Anmerkung
Aufgrund ihrer zusätzlichen Spalten weist die Labeling-Datei ein anderes Schema als die Datei mit den Quelldaten auf. Platzieren Sie die Labeling-Datei in einem anderen Ordner als die CSV-Eingabedatei der Transformation, sodass der AWS Glue-Crawler sie beim Erstellen von Tabellen in Data Catalog nicht berücksichtigt. Andernfalls repräsentieren die vom AWS Glue-Crawler erstellten Tabellen Ihre Daten möglicherweise nicht richtig.
Die ersten beiden Spalten (
labeling_set_id
,label
) werden für AWS Glue benötigt. Die verbleibenden Spalten müssen mit dem Schema der zu verarbeitenden Daten übereinstimmen.Sie identifizieren für jede
labeling_set_id
alle übereinstimmenden Datensätze unter Verwendung desselben Labels. Ein Label ist eine eindeutige Zeichenfolge, die in die Spaltelabel
platziert wird. Wir raten zur Verwendung von Labels mit einfachen Zeichen, z. B. A, B, C usw. Labels unterscheiden zwischen Groß- und Kleinschreibung und werden in die Spaltelabel
eingegeben.Zeilen, die dieselbe
labeling_set_id
und dasselbe Label enthalten, werden als Übereinstimmung bezeichnet.Zeilen, die dieselbe
labeling_set_id
und ein anderes Label enthalten, werden als nicht übereinstimmend bezeichnet.Zeilen, die eine andere
labeling_set_id
enthalten, werden so gewertet, dass sie keine Informationen für oder gegen eine Übereinstimmung enthalten.Nachfolgend finden Sie ein Beispiel für das Kennzeichnen der Daten mit Labels:
labeling_set_id Bezeichnung first_name last_name Geburtstag ABC123 A John Doe 01.04.1980 ABC123 B Jane Smith 03.04.1980 ABC123 A Johnny Doe 01.04.1980 ABC123 A Jon Doe 01.04.1980 DEF345 A Richard Jones 11.12.1992 DEF345 A Rich Jones 12.11.1992 DEF345 B Sarah Jones 11.12.1992 DEF345 C Richie Jones Jr. 06.05.2017 DEF345 B Sarah Jones-Walker 11.12.1992 GHI678 A Robert Miller 03.01.1999 GHI678 A Bob Miller 03.01.1999 XYZABC A Wilhelm Robinson 05.02.2001 XYZABC B Andreas Robinson 05.02.1971 Im obigen Beispiel identifizieren wir John/Johnny/Jon Doe als Übereinstimmung und teilen dem System mit, dass diese Datensätze nicht mit Jane Smith übereinstimmen. Separat teilen wir dem System mit, dass Richard und Rich Jones die gleiche Person sind, aber dass diese Datensätze nicht mit Sarah Jones/Jones-Walker und Richie Jones Jr. übereinstimmen.
Wie Sie sehen, ist der Umfang der Labels auf die
labeling_set_id
beschränkt. Labels überschreiten daher keinelabeling_set_id
-Grenzen. Beispiel: Label „A“ fürlabeling_set_id
1 hat keinen Bezug zu Label „A“ fürlabeling_set_id
2.Wenn ein Datensatz keine Übereinstimmungen innerhalb eines Labeling-Satzes enthält, weisen Sie ihm ein eindeutiges Label zu. Beispielsweise stimmt Jane Smith mit keinem Datensatz im Labeling-Satz ABC123 überein, daher ist dies der einzige Datensatz in diesem Labeling-Satz mit dem Label B.
Der Labeling-Satz „GHI678" zeigt, dass ein Labeling-Satz aus nur zwei Datensätzen bestehen kann, die mit dem gleichen Label versehen sind, um zu zeigen, dass sie übereinstimmen. Ähnlich zeigt „XYZABC“ zwei Datensätze mit unterschiedlichen Labels, um zu zeigen, dass sie nicht übereinstimmen.
Beachten Sie, dass manchmal ein Labeling-Satz keine Übereinstimmungen enthalten kann (d. h. Sie geben jedem Datensatz im Labeling-Satz ein anderes Label), oder ein Labeling-Satz könnte „alle gleich“ sein (Sie haben allen das gleiche Label gegeben). Dies ist in Ordnung, solange Ihre Labeling-Sätze zusammen Beispiele für Datensätze enthalten, die nach Ihren Kriterien „identisch“ sind und nicht.
Wichtig
Vergewissern Sie sich, dass die IAM-Rolle, die Sie an AWS Glue übergeben, Zugriff auf den Amazon-S3-Bucket mit der Labeling-Datei hat. Laut Konvention erteilen AWS Glue-Richtlinien die Berechtigung für Amazon-S3-Buckets oder -Ordner, deren Namen das Präfix aws-glue- enthalten. Wenn sich die Labeling-Dateien an einem anderen Speicherort befinden, fügen Sie der IAM-Rolle die Berechtigung für diesen Speicherort hinzu.