Tabellen mit Partitionen aktualisieren - Amazon Athena

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.

Tabellen mit Partitionen aktualisieren

In Athena müssen eine Tabelle und ihre Partitionen die gleichen Datenformate verwenden, ihre Schemata können aber unterschiedlich sein. Wenn Sie eine neue Partition erstellen, erbt die Partition in der Regel das Schema der Tabelle. Im Laufe der Zeit können sich die Schemas ggf. unterscheiden. Gründe sind u. a.:

  • Wenn sich das Schema der Tabelle ändert, werden die Schemas für Partitionen nicht aktualisiert, um weiterhin dem Schema der Tabelle zu entsprechen.

  • Der AWS Glue Crawler ermöglicht es Ihnen, Daten in Partitionen mit unterschiedlichen Schemas zu entdecken. Das heißt, wenn Sie eine Tabelle in Athena mit erstellen AWS Glue, nachdem der Crawler die Verarbeitung abgeschlossen hat, können die Schemas für die Tabelle und ihre Partitionen unterschiedlich sein.

  • Wenn Sie Partitionen direkt mit einem hinzufügen. AWS API

Athena verarbeitet Tabellen mit Partitionen erfolgreich, wenn sie die folgenden Beschränkungen erfüllen. Wenn diese Einschränkungen nicht erfüllt sind, gibt Athena einen HIVE_ _ PARTITION SCHEMA _ MISMATCH Fehler aus.

  • Das Schema jeder Partition ist kompatibel mit dem Tabellenschema.

  • Das Datenformat der Tabelle ermöglicht die Art der Aktualisierung, die Sie ausführen möchten: Spalten hinzufügen, löschen, ihre Reihenfolge ändern oder den Datentyp einer Spalte ändern.

    Beispielsweise können Sie für TSV Formate CSV und Spalten umbenennen, neue Spalten am Ende der Tabelle hinzufügen und den Datentyp einer Spalte ändern, wenn die Typen kompatibel sind, Sie können jedoch keine Spalten entfernen. Bei anderen Formaten können Sie Spalten hinzufügen oder entfernen oder den Datentyp in einen anderen ändern, wenn die Typen kompatibel sind. Weitere Informationen finden Sie unter Zusammenfassung: Updates und Datenformate in Athena.

Vermeiden Sie Schemakonflikte bei Tabellen mit Partitionen

Zu Beginn der Abfrageausführung überprüft Athena das Schema einer Tabelle, indem überprüft wird, dass der Datentyp jeder Spalte in der Tabelle und der Partition kompatibel ist.

  • Für Parquet- und ORC Datenspeichertypen stützt sich Athena auf die Spaltennamen und verwendet sie für die auf Spaltennamen basierende Schemaüberprüfung. Dadurch werden HIVE_PARTITION_SCHEMA_MISMATCH Fehler bei Tabellen mit Partitionen in Parquet und vermieden. ORC (Dies gilt, ORC wenn die SerDe Eigenschaft so eingestellt ist, dass sie namentlich auf den Index zugreift:orc.column.index.access=FALSE. Parquet liest den Index standardmäßig namentlich).

  • Für CSVJSON, und Avro verwendet Athena eine indexbasierte Schemaverifizierung. Das bedeutet: Wenn bei Ihnen ein Schemakonflikt-Fehler auftritt, sollten Sie die Partition löschen, die einen Schemakonflikt auslöst, und sie erneut erstellen. So kann Athena sie ohne Fehler abfragen.

Athena vergleicht das Schema der Tabelle mit den Partitionsschemata. Wenn Sie mit AWS Glue Crawler eine Tabelle in CSVJSON, und AVRO in Athena erstellen, können die Schemas für die Tabelle und ihre Partitionen nach Abschluss der Verarbeitung durch den Crawler unterschiedlich sein. Tritt ein Konflikt zwischen dem Tabellen- und dem Partitionsschema auf, scheitern Ihre Abfragen in Athena wegen eines Fehlers beim Überprüfen des Schemas, ähnlich dem Folgenden: „‚crawler_test.click_avro‘ ist als Typ ‚string‘ deklariert, in der Partition ‚partition_0=2017-01-17‘ ist die Spalte ‚col68‘ aber mit dem Typ ‚double‘ deklariert.“

Eine typische Behelfslösung für diesen Fehler besteht darin, dass die Partition entfernt wird, die den Fehler auslöst, und Sie sie dann erneut erstellen. Weitere Informationen erhalten Sie unter ALTER TABLE DROP PARTITION und ALTER TABLE ADD PARTITION.