전통적 데이터레이크(Parquet + Hive 메타스토어)는 ACID 트랜잭션, 행 수준 업데이트, 시간 여행이 어렵습니다. 오픈 테이블 포맷(Apache Iceberg, Apache Hudi, Delta Lake)은 S3 위의 Parquet 파일에 트랜잭션 계층을 추가해 이를 해결합니다. 오늘은 세 포맷과 AWS 연동을 다룹니다.
Hive 스타일 테이블은 "디렉터리 = 테이블"로 보고 파일 목록을 기준으로 데이터를 읽습니다. 이 방식의 한계:
오픈 테이블 포맷은 **메타데이터(매니페스트/트랜잭션 로그)**로 어떤 파일이 현재 테이블 상태인지 추적해 ACID를 제공합니다.
💡 관련 이론: 오픈 테이블 포맷의 ACID는 메타데이터 스냅샷 기반입니다. 새 스냅샷을 원자적으로 커밋(commit)하면 읽기는 항상 일관된 스냅샷을 보며, 이것이 시간 여행(time travel)의 기반입니다.