Às vezes dá erro ao tentar excluir um banco de dados desnecessário no AWS Athena.
Aqui fica um resumo rápido da causa e da solução.
Erro encontrado
O erro abaixo aparece e o banco de dados não pode ser excluído.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
MetaException(message:Unable to drop database: InvalidOperationException(message:Database database_name is not empty.))A base ainda contém tabelas ou views, então não pode ser removida desse jeito.
Solução
Use a opção CASCADE para apagar também as tabelas e views dentro do banco junto com o próprio banco.
DROP SCHEMA IF EXISTS database_name CASCADE;Use DROP SCHEMA no lugar de DROP DATABASE e adicione CASCADE.
Assim, todos os objetos dentro do banco serão removidos.
Atenção
Ao usar CASCADE, todas as tabelas e views dentro do banco serão apagadas.
Vale conferir antes para não remover um banco importante por engano.
Referência
Resumo
Para excluir um banco de dados não vazio no Athena, use DROP SCHEMA ... CASCADE.
A resposta está escrita normalmente na documentação, mas nem sempre a mensagem de erro deixa isso claro de imediato, então deixo esta nota aqui.
hsb.horse