logo hsb.horse
← Zur Blog-Übersicht

Blog

So löscht man eine nicht leere Datenbank in AWS Athena

Was zu tun ist, wenn das Löschen einer nicht leeren Datenbank in AWS Athena fehlschlägt. Eine kurze Notiz zur Verwendung von DROP DATABASE CASCADE.

Veröffentlicht:

Wenn man eine nicht mehr benötigte Datenbank in AWS Athena löschen will, kann dabei ein Fehler auftreten.

Hier eine kurze Zusammenfassung von Ursache und Lösung.

Der aufgetretene Fehler

Folgender Fehler erscheint und die Datenbank lässt sich nicht löschen.

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

In der Datenbank sind noch Tabellen oder Views vorhanden. Deshalb kann sie nicht direkt gelöscht werden.

Lösung

Mit der Option CASCADE lassen sich auch die Tabellen und Views innerhalb der Datenbank zusammen mit der Datenbank löschen.

DROP SCHEMA IF EXISTS database_name CASCADE;

Verwenden Sie DROP SCHEMA statt DROP DATABASE und ergänzen Sie CASCADE.

Dadurch werden alle Objekte in der Datenbank entfernt.

Vorsicht

Wenn CASCADE verwendet wird, werden alle Tabellen und Views in der Datenbank gelöscht.

Vorher also prüfen, dass nicht versehentlich eine wichtige Datenbank entfernt wird.

Referenz

Zusammenfassung

Um eine nicht leere Datenbank in Athena zu löschen, verwendet man DROP SCHEMA ... CASCADE.

Die Lösung steht ganz normal in der Dokumentation, aber aus der Fehlermeldung allein ist sie nicht immer sofort ersichtlich. Deshalb diese Notiz.