Quando executo o MSCK REPAIR TABLE, o Amazon Athena retorna uma lista de partições, mas depois falha em adicionar as partições à tabela no catálogo de dados do AWS Glue.
Breve descrição
Aqui estão algumas causas comuns desse comportamento:
- O usuário ou função do AWS Identity and Access Management (IAM) não tem uma política que permita a ação glue:BatchCreatePartition.
- O caminho do Amazon Simple Storage Service (Amazon S3) está em letras maiúsculas em vez de minúsculas (por exemplo, userId em vez de userid).
Resolução
Permitir glue:BatchCreatePartition na política do IAM
Analise as políticas do IAM anexadas ao usuário ou função que você está usando para executar o MSCK REPAIR TABLE. Quando você usa o catálogo de dados do AWS Glue com o Athena, a política do IAM deve permitir a ação glue:BatchCreatePartition. Se a política não permitir essa ação, o Athena não poderá adicionar partições ao metastore. Para ver um exemplo de uma política do IAM que permite a ação glue:BatchCreatePartition, consulte Política gerenciada do AmazonAthenaFullAccess.
Altere o caminho do Amazon S3 para letras minúsculas
O nome do caminho do Amazon S3 deve estar em letras minúsculas. Se o caminho estiver em camel case, o MSCK REPAIR TABLE não adicionará as partições ao Catálogo de Dados do AWS Glue. Por exemplo, se o caminho do Amazon S3 for userID, as seguintes partições não serão adicionadas ao Catálogo de Dados do AWS Glue:
- s3://awsdoc-example-bucket/path/userId=1/
- s3://awsdoc-example-bucket/path/userId=2/
- s3://awsdoc-example-bucket/path/userId=3/
Para resolver esse problema, use letras minúsculas em vez de letras maiúsculas:
- s3://awsdoc-example-bucket/path/userid=1/
- s3://awsdoc-example-bucket/path/userid=2/
- s3://awsdoc-example-bucket/path/userid=3/
Informações relacionadas
Particionamento de dados no Athena
Ações, recursos e chaves de condição para o Amazon Athena
Ações, recursos e chaves de condição para o AWS Glue