Quero resolver um comando MSCK REPAIR TABLE que demora muito para ser executado ou atinge o tempo limite no Amazon Athena.
Resumo
Quando você executa o comando MSCK REPAIR TABLE, o Athena lista prefixos e objetos no Amazon Simple Storage Service (Amazon S3). Se você tiver muitos prefixos ou objetos do Amazon S3, o comando demorará muito para ser executado ou expirará com um erro.
Para resolver esse problema, use um dos seguintes métodos:
- Use a projeção de partição com o Athena.
- Use um AWS Glue Crawler para adicionar partições às suas tabelas do Athena.
- Usar uma instrução DDL do Athena para carregar partições
Resolução
Usar a projeção de partição com o Athena
Use a Projeção de partição com o Athena para gerar partições na memória. Não é necessário adicionar as partições ao Catálogo de Dados do AWS Glue ou recuperá-las do Catálogo de Dados. O Athena calcula o valor da tabela em vez de examinar uma grande lista de partições. Além disso, a projeção da partição calcula valores e locais a partir da configuração, em vez de um repositório como o Catálogo de Dados do AWS Glue.
Use um AWS Glue Crawler para adicionar partições às suas tabelas do Athena
Para usar um crawler do AWS Glue para adicionar partições às tabelas do Athena, execute as seguintes etapas:
- Abra o console do AWS Glue.
- No painel de navegação, escolha Crawlers e depois Criar crawler.
- Crie um nome para o crawler e escolha Próximo.
- Em Escolher fontes de dados e classificadores e Configuração da fonte de dados, selecione Sim para Seus dados já estão mapeados para tabelas do Glue?
- Em Tabela do Glue, selecione Adicionar tabelas e selecione o banco de dados e a tabela necessários. Escolha Avançar.
- Selecione ou Crie um perfil do IAM para o AWS Glue. Escolha Avançar.
- Em Definir saída e agendamento, expanda Opções avançadas e selecione o seguinte:
Ignore a alteração e não atualize a tabela no Catálogo de Dados.
Atualize todas as partições novas e existentes com metadados da tabela.
Ignore a alteração e não atualize a tabela no Catálogo de Dados.
- Escolha Próximo e depois Criar crawler para salvar a configuração do crawler.
- Escolha Executar crawler. Ao executar o crawler, as partições são carregadas na tabela.
Para obter mais informações, consulte How crawlers work e Incremental crawls for adding new partitions in AWS Glue.
Usar uma instrução DDL do Athena para carregar partições
Para usar uma instrução DDL do Athena para carregar partições, conclua as seguintes etapas:
- Abra o console do Amazon Athena.
- Na guia Editor de consultas, execute o comando ALTER TABLE ADD PARTITION para carregar as partições.
Informações relacionadas
Por que minhas consultas do Athena demoram muito para serem executadas?
Criação de tabelas, atualização do esquema e adição de novas partições no catálogo de dados a partir de tarefas de ETL do AWS Glue
Definição de preço do AWS Glue