logo hsb.horse
← 블로그 목록으로 돌아가기

블로그

AWS Athena에서 비어 있지 않은 데이터베이스를 삭제하는 방법

AWS Athena에서 비어 있지 않은 데이터베이스를 삭제하려고 할 때 발생하는 오류의 해결 방법. DROP DATABASE CASCADE 사용법을 정리했다.

게시일:

AWS Athena에서 불필요한 데이터베이스를 지우려다가 오류가 나는 경우가 있다.

원인과 해결 방법을 간단히 정리한다.

발생한 오류

아래 오류가 발생하면서 데이터베이스를 삭제할 수 없다.

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

데이터베이스 안에 테이블이나 뷰가 남아 있어서 그대로는 삭제할 수 없다.

해결 방법

CASCADE 옵션을 사용하면 데이터베이스 내부의 테이블과 뷰까지 함께 삭제할 수 있다.

DROP SCHEMA IF EXISTS database_name CASCADE;

DROP DATABASE 대신 DROP SCHEMA를 쓰고 CASCADE를 붙인다.

이렇게 하면 데이터베이스 안의 모든 객체가 삭제된다.

주의점

CASCADE를 쓰면 데이터베이스 내부의 모든 테이블과 뷰가 삭제된다.

중요한 데이터베이스를 실수로 지우지 않도록 미리 확인하는 편이 좋다.

참고

정리

Athena에서 비어 있지 않은 데이터베이스를 삭제하려면 DROP SCHEMA ... CASCADE를 사용한다.

문서에는 평범하게 적혀 있지만, 오류 메시지만 보고 바로 답을 찾기 어려울 때가 있어서 메모로 남긴다.