Warum fügt mein AWS Glue-Crawler der Tabelle keine neuen Partitionen hinzu?

Lesedauer: 3 Minute
0

Mein AWS Glue-Crawler fügt der Tabelle keine neuen Partitionen hinzu.

Kurzbeschreibung

Wenn der Crawler die Quelldatendateien unter einer neuen Partition scannt, vergleicht der Crawler die folgenden Attribute der Quelldateien mit denen der vorhandenen Tabelle:

  • Format der Datei
  • Kompressionstyp
  • Schema
  • Struktur der Amazon Simple Storage Service (Amazon S3) -Partitionen

Wenn eines dieser Attribute der Partition von den Attributen der Tabelle abweicht, wird die Partition übersprungen und nicht zu den Metadaten hinzugefügt. Ein Unterschied im Namen, in der Reihenfolge oder Anzahl der Partitionen im Amazon S3-Pfad wird als Änderung des Partitionsschemas oder der Partitionsstruktur betrachtet.

Behebung

Beheben Sie das Problem

Überprüfen Sie die Crawler-Logs, um das Problem zu identifizieren:

  1. Öffnen Sie die AWS-Glue-Konsole.
  2. Wählen Sie im Navigationsbereich Metrics.
  3. Wählen Sie den Crawler und dann den **Link **Logs aus, um die Protokolle auf der CloudWatch-Konsole anzuzeigen.
  4. Überprüfen Sie die Protokolle, um zu überprüfen, ob der Crawler die neue Partition übersprungen hat.

Nehmen wir zum Beispiel an, dass das Protokoll Einträge enthält, die wie folgt aussehen:

Folder partition keys do not match table partition keys, skipped folder: doc-example-bucket/doc-example-path/doc-example-table/year=2021/month=01/sday=05/

Dieser Eintrag deutet darauf hin, dass die Partitionsstruktur für den Amazon S3-Standort nicht mit den für die Tabelle definierten Partitionsschlüsseln übereinstimmt. Dies kann passieren, wenn die Partitionsstruktur im Quellverzeichnis der Tabelle nicht konsistent ist.

Wenn der AWS Glue-Crawler mehrere Tabellen erstellt, sehen die Protokolleinträge wie folgt aus:

INFO : Created table doc-example-table in database doxtest_db

Wenn Sie ähnliche Protokolle sehen, vergleichen Sie das Schema und die Partitionsstruktur des Speicherorts dieser Tabellen mit denen der ursprünglichen Tabelle.

Löse das Problem

Ziehen Sie auf der Grundlage der Informationen aus den CloudWatch-Protokollen eine oder mehrere der folgenden Lösungsoptionen in Betracht:

  • Wenn das Problem durch eine inkonsistente Partitionsstruktur verursacht wird, machen Sie die Struktur konsistent, indem Sie den S3-Pfad manuell oder programmgesteuert umbenennen.
  • Wenn die Partition aufgrund einer Nichtübereinstimmung im Dateiformat, Komprimierungsformat oder Schema übersprungen wird und die Daten nicht in der vorgesehenen Tabelle enthalten sein müssen, sollten Sie Folgendes berücksichtigen:
  • Verwenden Sie ein Ausschlussmuster, um unerwünschte Dateien zu überspringen.
  • Verschieben Sie die unerwünschte Datei an einen anderen Ort.
  • Wenn Ihre Daten in einigen Eingabedateien unterschiedliche Schemas und in anderen Eingabedateien ähnliche Schemas haben, kombinieren Sie kompatible Schemas, wenn Sie den Crawler erstellen. Wählen Sie auf der Seite Crawlerausgabe konfigurieren unter **Gruppierungsverhalten für S3-Daten (optional) **die Option Für jeden S3-Pfad ein einzelnes Schema erstellen. Wenn diese Einstellung aktiviert ist und die Daten kompatibel sind, ignoriert der Crawler die Ähnlichkeit bestimmter Schemas bei der Auswertung von S3-Objekten im angegebenen Include-Pfad. Weitere Informationen finden Sie unter So erstellen Sie ein einzelnes Schema für jeden Amazon S3-Include-Pfad.
  • Wenn der Crawler mehrere Tabellen erstellt, finden Sie weitere Informationen unter Wie kann ich verhindern, dass der AWS Glue-Crawler mehrere Tabellen erstellt?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren