Iceberg 테이블 최적화 - Amazon Athena

Iceberg 테이블 최적화

Iceberg 테이블에 데이터가 누적되면 파일을 여는 데 필요한 처리 시간이 늘어나기 때문에 쿼리의 효율성이 점차 떨어집니다. 테이블에 파일 삭제(delete files)가 포함된 경우 추가 컴퓨팅 비용이 발생합니다. Iceberg에서 파일 삭제는 행 수준 삭제이며 엔진은 삭제된 행을 쿼리 결과에 적용해야 합니다.

Iceberg 테이블의 쿼리 성능을 최적화하기 위해 Athena는 테이블 유지 관리 명령으로 수동 압축을 지원합니다. 압축은 테이블 내용을 변경하지 않고 테이블의 구조 레이아웃을 최적화합니다.

OPTIMIZE

OPTIMIZE table REWRITE DATA 압축 작업은 관련 삭제 파일의 크기와 수에 따라 데이터 파일을 보다 최적화된 레이아웃으로 재작성합니다. 구문 및 테이블 속성에 대한 자세한 내용은 OPTIMIZE 단원을 참조하세요.

다음 예에서는 삭제 파일을 데이터 파일로 병합하고 category 값이 c1인 대상 파일 크기에 가까운 파일을 생성합니다.

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VACUUM

VACUUM에서는 스냅샷 만료분리된 파일 제거를 수행합니다. 이러한 작업은 메타데이터 크기를 줄이고 테이블에 지정된 보존 기간보다 오래된 현재 테이블 상태가 아닌 파일을 제거합니다. 구문에 대한 자세한 내용은 VACUUM 단원을 참조하세요.

다음 예에서는 테이블 속성을 사용하여 지난 3일간의 데이터를 유지하도록 iceberg_table 테이블을 구성한 다음 VACUUM을 사용하여 이전 스냅샷을 만료하고 테이블에서 분리된 파일을 제거합니다.

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table