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.
hsb.horse