VACUUM - Amazon Athena

VACUUM

VACUUM 문은 더 이상 필요하지 않은 데이터 파일을 제거하여 Apache Iceberg 테이블에서 테이블 유지 관리를 수행합니다.

참고

VACUUM은 트랜잭션이며 Athena 엔진 버전 3의 Apache Iceberg 테이블에 대해서만 지원됩니다.

더 이상 관련 없는 데이터 파일을 제거하고 메타데이터 크기와 스토리지 사용을 줄이려면 Iceberg 테이블에서VACUUM 문을 실행하는 것이 좋습니다. 단, VACUUM 문은 Amazon S3에 API를 직접적으로 호출하므로 Amazon S3에 대한 관련 요청에 요금이 부과됩니다.

주의

스냅샷 만료 작업을 실행하면 더 이상 만료된 스냅샷으로 이동할 수 없습니다.

시놉시스

Iceberg 테이블에 더 이상 필요하지 않은 데이터 파일을 제거하려면 다음 구문을 사용합니다.

VACUUM [database_name.]target_table

이름이 밑줄로 시작하는 테이블(예: _mytable)에서 VACUUM을 실행하려면 다음 예제와 같이 테이블 이름을 백틱으로 묶습니다. 테이블 이름 앞에 데이터베이스 이름을 붙이는 경우 데이터베이스 이름을 백틱으로 묶지 마세요. 큰따옴표는 백틱 대신 사용할 수 없다는 점에 유의하세요.

이 동작은 특히 VACUUM에 발생합니다. CREATEINSERT INTO 문에서는 밑줄로 시작하는 테이블 이름에 백틱을 사용하지 않아도 됩니다.

VACUUM `_mytable` VACUUM my_database.`_mytable`

또한 VACUUM은 Iceberg 데이터가 Amazon S3 버킷이 아닌 Amazon S3 폴더에 있을 것으로 예상합니다. 예를 들어 Iceberg 데이터가 s3://DOC-EXAMPLE-BUCKET/myicebergfolder/가 아닌 s3://DOC-EXAMPLE-BUCKET/에 있는 경우 VACUUM 문이 실패하고 GENERIC_INTERNAL_ERROR: Path missing in file system location: s3://DOC-EXAMPLE-BUCKET라는 오류 메시지가 표시됩니다.

작업 수행됨

VACUUM은 다음 작업을 수행합니다.

  • vacuum_max_snapshot_age_seconds 테이블 속성에 지정된 시간보다 오래된 스냅샷을 제거합니다. 기본적으로 이 속성은 432000초(5일)로 설정됩니다.

  • 보존 기간 내에 있지 않고 vacuum_min_snapshots_to_keep 테이블 속성에 지정된 수를 초과하는 스냅샷을 제거합니다. 기본 값은 1입니다.

    CREATE TABLE 문에서 이러한 테이블 속성을 지정할 수 있습니다. 테이블이 생성된 이후에 ALTER TABLE SET PROPERTIES 문을 사용하여 테이블을 업데이트할 수 있습니다.

  • 스냅샷 제거로 인해 연결할 수 없는 메타데이터 및 데이터 파일을 제거합니다. vacuum_max_metadata_files_to_keep 테이블 속성을 설정하여 보존할 이전 메타데이터 파일 수를 구성할 수 있습니다. 기본 값은 100입니다.

  • vacuum_max_snapshot_age_seconds 테이블 속성에 지정된 시간보다 오래된 분리된 파일을 제거합니다. 분리된 파일은 테이블의 데이터 디렉터리에서 테이블 상태에 포함되지 않는 파일입니다.

Athena의 Apache Iceberg 테이블 생성 및 관리에 대한 자세한 내용은 Iceberg 테이블 생성Iceberg 테이블 관리 단원을 참조하세요.