Open Table Format이란?

데이터 레이크는 데이터를 파일로, 흔히 Parquet 형식으로 오브젝트 스토리지에 저장합니다. 파일만으로는 어떤 파일이 한 테이블에 속하는지, 스키마가 어떻게 바뀌었는지, 지난주의 테이블이 어떤 모습이었는지 알 수 없습니다. 오픈 테이블 포맷은 이를 추적하는 메타데이터 계층을 더합니다. 대표적으로 Apache Iceberg, Delta Lake, Apache Hudi가 있습니다. 동시에 데이터를 써도 테이블이 깨지지 않는 ACID 트랜잭션, 전체 데이터를 다시 쓰지 않는 스키마 변경, 이전 시점의 테이블을 조회할 수 있는 스냅샷을 지원합니다.

사양이 공개되어 있어 Spark, Trino, 클라우드 데이터 웨어하우스 같은 여러 엔진이 복사 없이 같은 테이블을 읽고 쓸 수 있습니다. 스냅샷은 데이터 버전 관리에도 쓰입니다. 보고서나 모델에 들어간 테이블 상태를 그대로 다시 만들 수 있습니다. 스냅샷은 그 시점에 테이블에 무엇이 있었는지를 기록하므로, 모델이 어느 스냅샷으로 평가됐고 기준을 통과했는지는 팀이 따로 기록합니다.

자주 묻는 질문

오픈 테이블 포맷에는 어떤 것이 있습니까?

Apache Iceberg, Delta Lake, Apache Hudi가 가장 널리 쓰입니다. 각각 테이블 메타데이터, 트랜잭션, 스냅샷을 데이터 파일과 함께 저장하는 방식을 정의합니다.

Parquet도 오픈 테이블 포맷입니까?

아닙니다. Parquet는 데이터를 저장하는 컬럼형 파일 형식입니다. Iceberg 같은 오픈 테이블 포맷은 Parquet 같은 파일 묶음을 테이블로 관리합니다.

오픈 테이블 포맷의 타임 트래블은 무엇입니까?

이전 스냅샷이나 특정 시각의 테이블을 그대로 조회하는 기능입니다. 감사, 오류 원인 찾기, 지난 결과 재현에 쓰입니다.