Beheben von Tabellen-Fehlern - Amazon Athena

Beheben von Tabellen-Fehlern

Verwenden Sie die Informationen in diesem Abschnitt, um Fehler in der Athena für Spark-Tabelle zu beheben.

Beim Erstellen einer Tabelle kann kein Pfadfehler erstellt werden

Fehlermeldung: IllegalArgumentException: Kann keinen Pfad aus einer leeren Zeichenfolge erstellen.

Ursache: Dieser Fehler kann auftreten, wenn Sie Apache Spark in Athena zum Erstellen einer Tabelle in einer AWS Glue-Datenbank verwenden und die Datenbank eine leere LOCATION-Eigenschaft hat.

Lösungsvorschlag: Weitere Informationen und Lösungen finden Sie unter Unzulässige Argumentausnahme beim Erstellen einer Tabelle.

AccessDeniedException beim Abfragen von AWS Glue-Tabellen

Fehlermeldung: pyspark.sql.utils.AnalysisException: Das Vorhandensein der Standarddatenbank kann nicht überprüft werden: com.amazonaws.services.glue.model.accessDeniedException: Benutzer: arn:aws:sts::aws-account-id:assumed-role/awsathenasParkExecutionRole-unique-identifier/athenaExecutor-unique-identifier ist nicht autorisiert, Folgendes auszuführen: glue:GetDatabase auf der Ressource: arn:aws:glue:aws-region:aws-account-id:catalog, weil keine identitätsbasierte Richtlinie die Aktion glue:getDatabase zulässt (Service: AWSGlue; Statuscode: 400; Fehlercode: AccessDeniedException; Anforderungs-ID: request-id; Proxy: null)

Ursache: Der Ausführungsrolle für Ihre Spark-fähige Arbeitsgruppe fehlen die Berechtigungen für den Zugriff auf AWS Glue-Ressourcen.

Lösungsvorschlag: Um dieses Problem zu beheben, gewähren Sie Ihrer Ausführungsrolle Zugriff auf AWS Glue-Ressourcen und bearbeiten Sie dann Ihre Amazon-S3-Bucket-Richtlinie, um Ihrer Ausführungsrolle Zugriff zu gewähren.

Das folgende Verfahren beschreibt diese Schritte im Detail.

So gewähren Sie Ihrer Ausführungsrolle Zugriff auf AWS Glue-Ressourcen
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Wenn der Navigationsbereich in der Konsole nicht sichtbar ist, wählen Sie das Erweiterungsmenü auf der linken Seite.

    Wählen Sie das Erweiterungsmenü aus.
  3. Wählen Sie im Navigationsbereich der Athena-Konsole Workgroups (Arbeitsgruppen) aus.

  4. Wählen Sie auf der Seite der Workgroups (Arbeitsgruppen) den Link der Arbeitsgruppe aus, die Sie anzeigen möchten.

  5. Wählen Sie auf der Seite Overview Details (Übersichtsdetails) für die Arbeitsgruppe den Link Role ARN (Rollen-ARN) aus. Über den Link wird die Spark-Ausführungsrolle in der IAM-Konsole geöffnet.

  6. Wählen Sie im Abschnitt Permissions policies (Berechtigungsrichtlinien) den Namen der verknüpften Rollenrichtlinie.

  7. Wählen Sie Edit policy (Richtlinie bearbeiten) und anschließend JSON.

  8. Fügen Sie der Rolle AWS Glue-Zugriff hinzu. In der Regel fügen Sie Berechtigungen für die Aktionen glue:GetDatabase und glue:GetTable hinzu. Weitere Informationen zum Konfigurieren von IAM-Rollen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.

  9. Wählen Sie Review policy (Richtlinie überprüfen) aus und klicken Sie anschließend auf Save changes (Änderungen speichern).

  10. Bearbeiten Sie Ihre Amazon-S3-Bucket-Richtlinie, um Zugriff auf die Ausführungsrolle zu gewähren. Beachten Sie, dass Sie der Rolle sowohl Zugriff auf den Bucket als auch auf die Objekte im Bucket gewähren müssen. Weitere Schritte finden Sie unter Hinzufügen einer Bucket-Richtlinie mit der Amazon-S3-Konsole im Benutzerhandbuch zu Amazon Simple Storage Service.