logo hsb.horse
← Retour au blog

Blog

Supprimer une base de données non vide dans AWS Athena

Que faire lorsqu’une tentative de suppression d’une base non vide dans AWS Athena échoue. Une note rapide sur l’utilisation de DROP DATABASE CASCADE.

Publié:

Supprimer une base de données inutile dans AWS Athena peut échouer.

Voici un mémo rapide sur la cause et la solution.

Erreur rencontrée

L’erreur suivante s’affiche et la base de données ne peut pas être supprimée.

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.))

Des tables ou des vues existent encore dans la base, donc Athena refuse de la supprimer telle quelle.

Solution

Utilisez l’option CASCADE pour supprimer les tables et vues de la base en même temps que la base elle-même.

DROP SCHEMA IF EXISTS database_name CASCADE;

Il faut utiliser DROP SCHEMA au lieu de DROP DATABASE et ajouter CASCADE.

Cela supprime tous les objets contenus dans la base.

Attention

Avec CASCADE, toutes les tables et toutes les vues de la base sont supprimées.

Mieux vaut vérifier à l’avance que vous n’êtes pas en train d’effacer une base importante.

Référence

Résumé

Pour supprimer une base non vide dans Athena, utilisez DROP SCHEMA ... CASCADE.

La réponse est bien dans la documentation, mais le message d’erreur ne permet pas toujours de la trouver immédiatement, donc je garde cette note.