Wenn ich MSCK REPAIR TABLE ausführe, gibt Amazon Athena eine Liste von Partitionen zurück, fügt die Partitionen dann jedoch nicht zur Tabelle im AWS Glue-Datenkatalog hinzu.
Kurzbeschreibung
Hier sind einige häufige Ursachen für dieses Verhalten:
- Der AWS Identity and Access Management (IAM)- Benutzer oder die -Rolle verfügt über keine Richtlinie, die die Aktion glue:BatchCreatePartition zulässt.
- Der Pfad zu Amazon Simple Storage Service (Amazon S3) wird in Binnenmajuskeln statt in Kleinbuchstaben geschrieben (z. B. userId statt userid).
Lösung
glue:BatchCreatePartition in der IAM-Richtlinie zulassen
Überprüfen Sie die IAM-Richtlinien, die dem Benutzer oder der Rolle zugeordnet sind, die Sie zum Ausführen von MSCK REPAIR TABLE verwenden. Wenn Sie den AWS-Glue-Datenkatalog mit Athena verwenden, muss die IAM-Richtlinie die Aktion glue:BatchCreatePartition zulassen. Wenn die Richtlinie diese Aktion nicht zulässt, kann Athena dem Metastore keine Partitionen hinzufügen. Ein Beispiel für eine IAM-Richtlinie, die die Aktion glue:BatchCreatePartition erlaubt, finden Sie in der verwalteten Richtlinie AmazonAthenaFullAccess.
Ändern Sie den Amazon S3-Pfad zu Kleinbuchstaben
Der Amazon S3-Pfadname muss klein geschrieben sein. Wenn der Pfad in Binnenmajuskeln angegeben ist, fügt MSCK REPAIR TABLE die Partitionen nicht zum AWS-Glue-Datenkatalog hinzu. Wenn der Amazon S3-Pfad beispielsweise userId ist, werden die folgenden Partitionen nicht zum AWS-Glue-Datenkatalog hinzugefügt:
- s3://awsdoc-example-bucket/path/userId=1/
- s3://awsdoc-example-bucket/path/userId=2/
- s3://awsdoc-example-bucket/path/userId=3/
Um dieses Problem zu lösen, verwenden Sie Kleinbuchstaben statt Binnenmajuskeln:
- s3://awsdoc-example-bucket/path/userid=1/
- s3://awsdoc-example-bucket/path/userid=2/
- s3://awsdoc-example-bucket/path/userid=3/
Ähnliche Informationen
Partitionierung von Daten in Athena
Aktionen, Ressourcen und Bedingungsschlüssel für Amazon Athena
Aktionen, Ressourcen und Bedingungsschlüssel für AWS Glue