Datensatzabgleich mit AWS Lake Formation FindMatches - AWS Glue

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-<accountID>-<region>, 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.

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. Die match_id-Spalte ist ein beliebiger Bezeichner. Alle Datensätze mit derselben match_id wurden als übereinstimmend identifiziert. Datensätze mit anderer match_idstimmen 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 für Kunden zu erstellen.

Erste Schritte mit der Transformation zur Suche nach Übereinstimmungen

Führen Sie als Einstieg in die FindMatches-Transformation die folgenden Schritte aus:

  1. 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.

  2. 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.

  3. 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 Spalte label.

    • 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.

  4. Laden Sie die Labeling-Datei herunter und labeln Sie die Datei wie im Abschnitt Labeling beschrieben.

  5. 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)

  6. 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.

  7. 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 und label 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 mit cp1252 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 Spalte label 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 Spalte label 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 keine labeling_set_id-Grenzen. Beispiel: Label „A“ für labeling_set_id 1 hat keinen Bezug zu Label „A“ für labeling_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.