Wie löse ich einen MSCK REPAIR TABLE-Befehl auf, dessen Ausführung zu lange dauert oder in Amazon Athena zu einem Timeout führt?

Lesedauer: 3 Minute
0

Ich möchte einen MSCK REPAIR TABLE-Befehl auflösen, dessen Ausführung zu lange dauert oder in Amazon Athena zu einem Timeout führt.

Kurzbeschreibung

Wenn Sie den Befehl MSCK REPAIR TABLE ausführen, listet Athena Präfixe und Objekte in Amazon Simple Storage Service (Amazon S3) auf. Wenn Sie zu viele Amazon S3-Präfixe oder -Objekte haben, dauert es lange, bis der Befehl ausgeführt wird, oder es kommt zu einem Timeout mit einem Fehler.

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu beheben:

  • Verwenden Sie die Partitionsprojektion mit Athena.
  • Verwenden Sie einen AWS Glue-Crawler, um Partitionen zu Ihren Athena-Tabellen hinzuzufügen.
  • Verwenden Sie eine Athena-DDL-Anweisung, um Partitionen zu laden

Lösung

Partitionsprojektion mit Athena verwenden

Verwenden Sie die Partitionsprojektion mit Athena, um Partitionen im Speicher zu generieren. Sie müssen die Partitionen nicht zum AWS-Glue-Datenkatalog hinzufügen oder sie aus dem Datenkatalog abrufen. Athena berechnet den Wert der Tabelle, anstatt eine große Liste von Partitionen zu durchsuchen. Außerdem berechnet die Partitionsprojektion Werte und Speicherorte aus der Konfiguration und nicht aus einem Repository wie dem AWS-Glue-Datenkatalog.

Verwendung eines AWS Glue-Crawler, um Partitionen zu Ihren Athena-Tabellen hinzuzufügen

Gehen Sie wie folgt vor, um mit einem AWS Glue-Crawler Partitionen zu Ihren Athena-Tabellen hinzuzufügen:

  1. Öffnen Sie die AWS Glue-Konsole.
  2. Wählen Sie im Navigationsbereich Crawler aus, und wählen Sie dann Crawler erstellen aus.
  3. Erstellen Sie einen Namen für den Crawler und wählen Sie dann ** Weiter**.
  4. Wählen Sie unter Datenquellen und Klassifizierer auswählen und unter Datenquellenkonfiguration die Option Ja für Sind Ihre Daten bereits Glue-Tabellen zugeordnet?
  5. Wählen Sie unter Glue-Tabellen die Option Tabellen hinzufügen aus, und wählen Sie dann die erforderliche Datenbank und Tabelle aus. Wählen Sie Weiter aus.
  6. Wählen oder Erstellen Sie eine IAM-Rolle für AWS Glue. Wählen Sie Weiter aus.
  7. Erweitern Sie unter Ausgabe und Planung festlegen die erweiterten Optionen, und wählen Sie dann Folgendes aus:
    Ignorieren Sie die Änderung und aktualisieren Sie die Tabelle im Datenkatalog nicht.
    Aktualisieren Sie alle neuen und vorhandenen Partitionen mit Metadaten aus der Tabelle.
    Ignorieren Sie die Änderung und aktualisieren Sie die Tabelle im Datenkatalog nicht.
  8. Wählen Sie Weiter und dann Crawler erstellen, um die Crawler-Konfiguration zu speichern.
  9. Wählen Sie Crawler ausführen. Wenn Sie den Crawler ausführen, werden die Partitionen in die Tabelle geladen.

Weitere Informationen finden Sie unter So funktionieren Crawler und Inkrementelle Crawls zum Hinzufügen neuer Partitionen in AWS Glue.

Verwenden Sie eine Athena-DDL-Anweisung, um Partitionen zu laden

Gehen Sie wie folgt vor, um eine Athena-DDL-Anweisung zum Laden von Partitionen zu verwenden:

  1. Öffnen Sie die Amazon-Athena-Konsole.
  2. Führen Sie im Reiter Abfrageeditor den Befehl ALTER TABLE ADD PARTITION aus, um die Partitionen zu laden.

Weitere Informationen

Warum dauert die Ausführung meiner Athena-Abfragen so lange?

Erstellen von Tabellen, Aktualisieren des Schemas und Hinzufügen neuer Partitionen im Datenkatalog aus AWS Glue-ETL-Jobs

Preise für AWS Glue

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr