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.
Datensatzabgleich mit AWS Lake Formation FindMatches
Anmerkung
Der Datensatzabgleich ist derzeit in den folgenden Regionen der AWS Glue Konsole nicht verfügbar: Naher Osten (VAE), Europa (Spanieneu-south-2
) () und Europa (Zürich) (eu-central-2
).
AWS Lake Formation bietet Funktionen für maschinelles Lernen, mit denen Sie benutzerdefinierte Transformationen zur Bereinigung Ihrer Daten erstellen können. Derzeit ist eine Transformation mit dem Namen verfügbar. FindMatches Die FindMatches Transformation ermöglicht es Ihnen, doppelte oder übereinstimmende Datensätze in Ihrem Datensatz zu identifizieren, selbst wenn die Datensätze keinen gemeinsamen eindeutigen Bezeichner haben und keine Felder exakt übereinstimmen. Dazu müssen Sie keinen Code schreiben oder wissen, wie maschinelles Lernen funktioniert. FindMatches kann bei vielen verschiedenen Problemen nützlich sein, wie zum Beispiel:
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. Wenn ein Mensch sich Ihre Datenbankzeilen ansehen und feststellen könnte, dass sie übereinstimmen, besteht im Allgemeinen eine sehr gute Chance, 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 Ihrer Spark-Plattform aus aufrufen AWS Glue Job (PySpark oder Scala Spark) und ihn in anderen Skripten mit einem kompatiblen Quelldatenspeicher verwenden.
Nachdem die Transformation erstellt wurde, wird sie gespeichert in AWS Glue. Auf der AWS Glue In der 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 maschinellem Lernen transformiert.
Anmerkung
AWS Glue FindMatches Jobs der Version 2.0 verwenden den Amazon S3 S3-Bucketaws-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 von Transformation zu Transformation in einer Datenstruktur namens a DynamicFrameweitergeleitet. Dabei handelt es sich um eine Erweiterung von Apache Spark SQLDataFrame
. 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
Verwenden 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 AWS Big Data-Blog: Harmonize data using AWS Glue und AWS Lake Formation FindMatches ML, um eine 360-Grad-Ansicht
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 eine Tabelle AWS Glue Data Catalog für die Quelldaten, die bereinigt werden sollen. Informationen zum Erstellen eines Crawlers finden Sie unter Arbeiten mit Crawlern auf 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 ist der AWS Glue Der Crawler betrachtet sie möglicherweise als mehrere Teile derselben Tabelle und erstellt Tabellen im Datenkatalog falsch.
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.
Auf dem AWS Glue Erstellen Sie in der Konsole einen Job und wählen Sie den Transformationstyp Find Matches aus.
Wichtig
Die Datenquellentabelle, die Sie für den Auftrag auswählen, darf nicht mehr als 100 Spalten enthalten.
Sag AWS Glue um eine Beschriftungsdatei zu generieren, indem Sie Beschriftungsdatei generieren wählen. AWS Glue führt den ersten Schritt beim Gruppieren ähnlicher Datensätze für jeden Datensatz durch,
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 beschriftete Datei hoch. AWS Glue führt Aufgaben aus, um der Transformation das Finden von Übereinstimmungen beizubringen.
Wählen Sie auf der Seite mit der Liste Machine learning transforms (Maschine Learning-Transformationen) die Registerkarte History (Verlauf) aus. Auf dieser Seite wird angegeben, wann AWS Glue führt die folgenden Aufgaben aus:
-
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 AWS Glue lernt, während Sie es weiter beibringen, indem Sie die Kennzeichnungsdatei überprüfen.
Beurteilen und optimieren Sie Ihre Transformation, indem Sie die Leistung und Ergebnisse der Suche nach Übereinstimmungen beurteilen. Weitere Informationen finden Sie unter Die Optimierung des maschinellen Lernens verwandelt sich 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 Beschriftungsdatei, die generiert wird von AWS Glue um Ihre FindMatches
Transformation beizubringen, wird das folgende Format verwendet. Wenn Sie Ihre eigene Datei für generieren AWS Glue, sie muss 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.Es muss sich an einem Amazon S3-Standort befinden, an den es übergeben werden kann AWS Glue.
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 Beschriftungsdatei in einem anderen Ordner als jede CSV-Eingabedatei für die Transformation, sodass AWS Glue Crawler berücksichtigt dies nicht, wenn er Tabellen im Datenkatalog erstellt. Andernfalls werden die Tabellen, die von der erstellt wurden AWS Glue Der Crawler stellt Ihre Daten möglicherweise nicht korrekt dar.
Die ersten beiden Spalten (
labeling_set_id
,label
) werden benötigt von AWS Glue. Die verbleibenden Spalten müssen dem Schema der Daten entsprechen, die verarbeitet werden sollen.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 label 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 as being a match and we teach the system that these records do not match Jane Smith. Separately, we teach the system that Richard and Rich Jones are the same person, but that these records are not a match to Sarah Jones/Jones -Walker und Richie Jones Jr.
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. Jane Smith entspricht beispielsweise keinem Datensatz im Beschriftungssatz ABC123, sodass es der einzige Datensatz in diesem Beschriftungssatz mit der Bezeichnung B ist.
Der Beschriftungssatz "GHI678" zeigt, dass ein Beschriftungssatz nur aus zwei Datensätzen bestehen kann, denen dieselbe Bezeichnung zugewiesen wurde, 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, an die Sie übergeben AWS Glue hat Zugriff auf den Amazon S3 S3-Bucket, der die Label-Datei enthält. Konventionell AWS Glue Richtlinien gewähren Zugriff auf Amazon S3 S3-Buckets oder -Ordner, deren Namen das Präfix aws-glue - haben. Wenn sich die Labeling-Dateien an einem anderen Speicherort befinden, fügen Sie der IAM-Rolle die Berechtigung für diesen Speicherort hinzu.