Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Wie behebe ich Apache Iceberg-Tabellenfehler mit Athena?
Ich erhalte Fehlermeldungen, wenn ich eine Apache Iceberg-Tabelle mit Amazon Athena verwende.
Lösung
Befolge die Schritte zur Behebung des aufgetretenen Fehlers.
Nicht unterstützter Tabelleneigenschaftsschlüssel
Dieser Fehler tritt auf, wenn die TBLPROPERTIES-Klausel der Anweisung CREATE TABLE oder ALTER TABLE keine unterstützte Tabelleneigenschaft verwendet. Wenn du Iceberg-Tabellen erstellst oder änderst, erlaubt Athena nur eine vordefinierte Liste von Schlüsselwertpaaren in den Tabelleneigenschaften.
Um dieses Problem zu beheben, stelle sicher, dass deine Iceberg-Tabelle unterstützte Tabelleneigenschaften verwendet.
Athena kann die Anweisung „CREATE TABLE“ nicht generieren, da die Tabelle nicht unterstützte Eigenschaften hat
Du erhältst die Fehlermeldung „UNSUPPORTED“, wenn Athena die Tabellenstruktur nicht reproduzieren kann, weil du in deiner Abfrage die DDL-Anweisung SHOW CREATE TABLE verwendet hast. Verwende stattdessen die DDL-Anweisung DESCRIBE FORMATTED, um die Tabelleneigenschaften anzuzeigen.
Du erhältst den Fehler „TABLE_REDIRECTION_ERROR“
Dieser Fehler tritt bei Athena SELECT-Abfragen auf, die nicht unterstützte Iceberg-Tabellenmetadaten verwenden. Stelle sicher, dass deine Athena SELECT-Abfrage unterstützte Abfrage-Iceberg-Tabellenmetadaten enthält.
Du erhältst die Fehlermeldung „Unsupported Hive type“
Dieser Fehler tritt auf, wenn du einen nicht unterstützten Datentyp mit einer Iceberg-Tabelle verwendest. Beispielsweise erhältst du möglicherweise den Fehler „SHORT, use integer“, weil Iceberg-Tabellen die Athena-Datentypen tinyint oder smallint nicht unterstützen. Oder du erhältst möglicherweise den Fehler „CHAR, use string“, weil Iceberg-Tabellen keine char-Athena-Datentypen unterstützen.
Um dieses Problem zu beheben, stelle sicher, dass deine Athena-Abfrage einen unterstützten Datentyp für Iceberg-Tabellen verwendet.
Du erhältst den Fehler „ICEBERG_COMMIT_ERROR“
Dieser Fehler kann auftreten, wenn mehrere Anweisungen versuchen, denselben Satz von Dateien zu ändern, die für Iceberg-Tabellenaktualisierungen parallel ausgeführt werden. Zum Beispiel, wenn mehrere DELETE-Anweisungen parallel ausgeführt werden, um zu versuchen, dieselbe Gruppe von Datensätzen gleichzeitig zu löschen.
Gehe wie folgt vor, um dieses Problem zu vermeiden:
- Stelle sicher, dass Abfrageaktualisierungen sequentiell ausgeführt werden, um eine parallele Datenverarbeitung zu vermeiden.
- Implementiere einen Wiederholungsmechanismus mit exponentiellem Backoff, wenn du Iceberg-Tabellen aktualisierst.
Hinweis: Athena unterstützt nur die optimistische Sperre in AWS Glue. Wenn du eine Iceberg-Tabelle mit anderen Sperrmethoden änderst, kann dies zu Datenverlust führen und Transaktionen unterbrechen. Weitere Informationen findest du unter Optimistische Sperre auf der Apache Iceberg-Website.
Du erhältst den Fehler „NOT_SUPPORTED: Iceberg table updates require at least format version 2“
Dieser Fehler tritt auf, wenn du versuchst, den DELETE-Vorgang für eine Iceberg-Tabelle der Version 1 auszuführen. Athena erstellt und arbeitet nur mit Iceberg-Tabellen der Version 2. Stelle sicher, dass deine Iceberg-Tabelle die Athena-Engine-Version 2 verwendet. Wenn du einen anderen Engine-Typ verwendest, setze die Tabelleneigenschaft format-version auf 2, um Löschungen auf Zeilenebene zu ermöglichen. Verwende beispielsweise Version 2, wenn du eine Iceberg-Tabelle schreibst und sie im AWS-Glue-Datenkatalog registrierst. Weitere Informationen findest du unter Formate löschen auf der Apache Iceberg-Website.
Du erhältst den Fehler „GENERIC_INTERNAL_ERROR:“
Du erhältst die folgende Fehlermeldung:
"GENERIC_INTERNAL_ERROR: com.amazonaws.trino.exceptions.UnrecoverableS3OperationException: com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist“
Dieser Fehler tritt auf, wenn du eine Metadatendatei löschst, z. B. eine Manifestliste oder metadata.json. Die Athena-Abfrage schlägt dann fehl. Wenn du die Datei nicht erfolgreich wiederherstellen kannst, setze die Tabelle auf einen Snapshot oder Zeitstempel zurück.
Hinweis: Du musst ein Rollback der Tabelle in einer Apache Spark-Umgebung wie AWS Glue oder Amazon EMR durchführen, nicht im Athena-Abfrage-Editor.
Um die Tabelle auf eine bestimmte Snapshot-ID zurückzusetzen, führe den Apache Iceberg-Befehl roll_to_snapshot aus:
CALL catalog_name.system.rollback_to_snapshot('your-db.your-table', your-snapshot-id)
Hinweis: Ersetze your-db, your-table und your-snapshot-id durch deine Werte.
Um die Tabelle auf einen bestimmten Zeitstempel zurückzusetzen, führe den Apache Iceberg-Befehl rollback_to_timestamp aus:
CALL catalog_name.system.rollback_to_timestamp('your-db.your-table', TIMESTAMP 'yyyy-mm-dd hh:mm:ss')
**Hinweis:**Ersetze your-db, your-table und yyyy-mm-dd hh:mm:ss durch deine Werte.
Weitere Informationen findest du unter rollback_to_snapshot und rollback_to_timestamp auf der Apache Iceberg-Website.
Ähnliche Informationen
Wie kann ich Apache Iceberg mit einem kontoübergreifenden AWS-Glue-Datenkatalog in Spark verwenden?
- Themen
- Analytics
- Tags
- Amazon Athena
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren