Quando executo minha consulta do Amazon Athena em uma tabela particionada, a consulta falha com o erro "HIVE_PARTITION_SCHEMA_MISMATCH".
Breve descrição
Quando você executa uma consulta em uma tabela particionada do Athena, o Athena valida o esquema da tabela e o esquema de suas partições no Catálogo de Dados do AWS Glue. A validação compara os tipos de dados da coluna em ordem e garante que os tipos de dados da coluna correspondam às colunas que estão sobrepostas. Uma nova partição costuma herdar o esquema da tabela associada. No entanto, certos cenários podem fazer com que os esquemas sejam diferentes ao longo do tempo. Quando o tipo de dados de uma coluna no esquema de partição não corresponde ao tipo de dados da coluna correspondente no esquema da tabela, sua consulta falha com o erro "HIVE_PARTITION_SCHEMA_MISMATCH".
Você pode resolver esse erro com uma das seguintes abordagens:
- Se você usou um rastreador do AWS Glue para criar a tabela, configure o rastreador do AWS Glue para atualizar o esquema da partição.
- Se você criou a tabela manualmente, use uma instrução da linguagem de definição de dados (DDL) do Athena para eliminar a partição afetada e recriá-la.
Resolução
Configurar o crawler do AWS Glue para atualizar o esquema de partição
- Abra o console do AWS Glue.
- No painel de navegação, escolha Crawlers.
- Selecione o crawler que você deseja configurar.
- Escolha Ações e depois Editar crawler.
- Escolha Avançar até navegar até a página Escolher a saída do crawler.
- Expanda Opções de configuração.
- Selecione Atualizar todas as partições novas e existentes com metadados da tabela.
- Escolha Avançar e depois Concluir para salvar a configuração do crawler.
- Na página Crawlers, selecione o crawler que você editou.
- Escolha Executar crawler. Quando você executa o crawler, as partições herdam o esquema da tabela.
Use uma instrução DDL do Athena para eliminar a partição afetada e recriar a partição descartada
- Abra o console do Amazon Athena.
- Na guia Editor de consultas, execute o comando ALTER TABLE DROP PARTITION para eliminar a partição afetada.
- Execute comando ALTER TABLE ADD PARTITION para recriar a partição descartada.
Observação: se sua tabela usa partições compatíveis com o Hive, você poderá executar o comando MSCK REPAIR TABLE para recriar a partição descartada.
Informações relacionadas
Sincronizar o esquema de partição para evitar "HIVE_PARTITION_SCHEMA_MISMATCH"
Definir opções de configuração do crawler no console do AWS Glue