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

AWS Glue betrachtet einen Unterschied im Namen, der Reihenfolge oder der Anzahl der Partitionen im Amazon Simple Storage Service (Amazon S3)-Pfad als eine Änderung des Partitionsschemas oder der Partitionsstruktur. Crawler scannen die Quelldatendateien unter einer neuen Partition und vergleichen die folgenden Attribute der Quelldateien mit denen der vorhandenen Tabelle:

  • Format der Datei
  • Kompressionstyp
  • Schema
  • Struktur der Amazon S3-Partitionen

Wenn eines dieser Partitionsattribute von den Tabellenattributen abweicht, überspringt AWS Glue die Partition und aktualisiert die Metadaten nicht.

Lösung

Das Problem beheben

Gehe wie folgt vor, um das Problem in den Crawler-Protokollen zu identifizieren:

  1. Öffne die AWS Glue-Konsole.
  2. Wähle im Navigationsbereich Crawlers.
  3. Wähle den Crawler aus und wähle dann Protokolle, um die Protokolle auf der Amazon CloudWatch-Konsole anzuzeigen.
  4. Überprüfe 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. Dieser Unterschied 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 du ähnliche Protokolle siehst, vergleiche das Schema und die Partitionsstruktur des Speicherorts dieser Tabellen mit denen der ursprünglichen Tabelle.

Löse das Problem

Partitionsstruktur aktualisieren

Wenn das Problem durch eine inkonsistente Partitionsstruktur verursacht wird, benenne die Struktur manuell oder programmgesteuert um, damit sie konsistent ist.

Bestimmte Dateien ausschließen

AWS Glue überspringt möglicherweise eine Partition aus einem der folgenden Gründe:

  • Nicht übereinstimmende Dateiformate
  • Kompressionsformate
  • Probleme mit dem Schema

Wenn AWS Glue aus einem dieser Gründe eine Partition überspringt und die Daten in der Tabelle nicht benötigt werden, führe eine der folgenden Aktionen aus:

  • Verwende ein Ausschlussmuster, um unerwünschte Dateien zu überspringen. Weitere Informationen findest du unter Datenquellen und Klassifikatoren wählen.
  • Verschiebe die unerwünschte Datei an einen anderen Ort.

Kompatible Schemas kombinieren

Wenn die Daten ähnliche Schemas in verschiedenen Eingabedateien haben, kombiniere kompatible Schemas, wenn du den Crawler erstellst. Wähle auf der Seite Crawlerausgabe konfigurieren unter Gruppierungsverhalten für S3-Daten (optional) die Option Für jeden S3-Pfad ein einzelnes Schema erstellen aus. Wenn du diese Einstellung aktivierst und die Daten kompatibel sind, ignoriert der Crawler die Ähnlichkeit bestimmter Schemas für S3-Objekte im angegebenen Pfad. Weitere Informationen findest du unter Erstellen eines einzelnen Schemas für jeden Amazon S3-Include-Pfad.

Mehrere Tabellen vermeiden

Wenn der Crawler mehrere Tabellen erstellt, findest du weitere Informationen unter Wie verhindere ich die Erstellung mehrerer Tabellen während eines AWS Glue-Crawler-Laufs?

AWS OFFICIALAktualisiert vor einem Monat