Direkt zum Inhalt

Warum fügt AWS Glue während eines inkrementellen Crawls keine Partitionen zu einer Tabelle hinzu?

Lesedauer: 2 Minute
0

Ich möchte Fehler bei Partitionen beheben, die fehlen, nachdem ich einen inkrementellen AWS Glue-Crawl ausgeführt habe.

Kurzbeschreibung

Wenn ein AWS Glue-Crawler einen inkrementellen Crawl ausführt, identifiziert er nur Partitionen, die der Crawler nach dem vorherigen Crawl hinzugefügt hat. Um die Partition hinzuzufügen, müssen mehr als 70 % der Dateien in einer Partition dasselbe Schema wie die Tabelle für den Crawler haben.

Wichtig: Ein AWS Glue-Crawler kann keine Partition hinzufügen, die zuvor als Schemakonflikt gekennzeichnet wurde. Es gehört zu den Best Practices, sicherzustellen, dass alle Eigenschaften deiner neuen Partition mit den Eigenschaften der ursprünglichen Tabelle übereinstimmen, bevor dein Crawler ausgeführt wird.

Lösung

Öffne das Amazon CloudWatch-Protokoll, das dem letzten Crawl deines Crawlers entspricht, und suche dann nach dem Amazon Simple Storage Service (Amazon S3)-Präfix der neuen Partition. Wenn das Schema der neuen Partition und das Schema der ursprünglichen Tabelle nicht übereinstimmen, wird die Meldung „Partition does not match table schema or has mismatch keys“ angezeigt.

Wenn du diese Fehlermeldung erhältst, überprüfe, ob die folgenden Eigenschaften in der neuen Partition und der ursprünglichen Tabelle übereinstimmen:

  • Kompressionsformat
  • Dateityp
  • Dateischema

Stelle sicher, dass die S3-Struktur der neuen Partition mit der S3-Struktur der ursprünglichen Tabelle übereinstimmt. Wenn beispielsweise die S3-Struktur der ursprünglichen Tabelle das Datumsformat yyyy-mm-dd verwendet, muss die S3-Struktur der neuen Partition auch das Datumsformat yyyy-mm-dd verwenden. Wenn die Eigenschaften nicht übereinstimmen, ändere die Dateien in der neuen Partition so, dass sie mit der Originaltabelle übereinstimmen.

Verwende dann Athena, um die neue Partition zur Tabelle hinzuzufügen. Führe für Partitionen im Hive-Stil den Befehl MSCK REPAIR TABLE aus. Führe für Partitionen im Nicht-Hive-Stil den Befehl ALTER TABLE ADD PARTITION aus.

AWS OFFICIALAktualisiert vor 9 Monaten