피드로 돌아가기
Dev.toDatabase
원문 읽기
Parquet 기반 Transaction Log 도입을 통한 Data Lake의 ACID 보장
Delta Lakes: ACID Transactions, Time Travel & Delta Tables
AI 요약
Context
기존 Data Lake의 단순 파일 저장 방식은 쓰기 작업 중 장애 발생 시 데이터 일부만 반영되는 원자성 결여 문제를 보유함. 특히 동시 쓰기 시 파일 손상 및 Schema 변경에 따른 하위 쿼리 파손 등 데이터 신뢰성 확보에 구조적 한계 존재.
Technical Solution
- _delta_log/ 폴더 내 JSON 형태의 Transaction Log를 통한 모든 데이터 변경 이력의 순차적 기록
- Log 기반의 State 관리로 전체 성공 또는 완전 롤백을 보장하는 Atomicity 구현
- Schema Enforcement 적용을 통한 유효하지 않은 데이터 쓰기 요청의 사전 차단 및 일관성 유지
- Log의 버전 관리를 이용해 특정 시점의 데이터를 조회하는 Time Travel 기능 제공
- OPTIMIZE 명령어를 통한 Small File 병합 및 ZORDER BY 기반의 데이터 물리적 근접 배치로 쿼리 성능 최적화
- VACUUM 프로세스를 통한 보존 주기 경과 파일의 물리적 삭제 및 저장 공간 효율화
실천 포인트
- 빈번한 Incremental Write로 인한 Small File 문제 해결을 위해 주기적인 OPTIMIZE 실행 검토 - 데이터 복구 및 감사(Audit)를 위해 VACUUM의 Retention Period를 비즈니스 요구사항에 맞게 설정 - 상위 파이프라인의 Schema 변경이 하위 시스템에 미치는 영향을 제어하기 위해 Schema Evolution 전략 수립