20

OPTIMIZE & VACUUM: 성능 최적화와 정리

Delta Lake: ACID 트랜잭션과 Time Travel

학습 목표

Small File Problem을 이해한다 OPTIMIZE와 Z-ORDER의 역할을 안다 VACUUM의 역할과 주의사항을 파악한다

Small File Problem: 작은 파일이 많으면?

스트리밍이나 빈번한 쓰기로 작은 파일이 쌓인다:

에디터 로딩 중...

문제:

  • 파일 열기 오버헤드 (메타데이터 로딩)
  • 병렬 처리 비효율 (파티션 너무 작음)
  • S3/HDFS 리스트 연산 느림

OPTIMIZE: 파일 병합

작은 파일들을 큰 파일로 합친다.

에디터 로딩 중...
에디터 로딩 중...

Z-ORDER: 데이터 정렬

자주 필터링하는 컬럼 기준으로 물리적 정렬:

에디터 로딩 중...

효과: Data Skipping

에디터 로딩 중...

Z-ORDER 컬럼 선택 가이드

조건적합 컬럼
자주 필터링O
카디널리티 높음 (user_id)O
카디널리티 낮음 (성별)X
2-4개 이하O
5개 이상효과 감소

VACUUM: 오래된 파일 삭제

Time Travel에 사용된 오래된 파일을 정리:

에디터 로딩 중...

주의: VACUUM 후에는 Time Travel 제한!

에디터 로딩 중...

실무 유지보수 스크립트

에디터 로딩 중...

주의사항 정리

작업권장 주기주의사항
OPTIMIZE일 1회 ~ 주 1회리소스 사용량 증가
Z-ORDEROPTIMIZE와 함께컬럼 2-4개
VACUUM일 1회 ~ 주 1회Time Travel 제한