내 잡다한 노트

Apache Iceberg란? 본문

데이터엔지니어

Apache Iceberg란?

peanutwalnut 2025. 2. 9. 22:18

Apache Iceberg는 대규모 분석 데이터셋을 보다 효율적이고 안정적으로 관리하기 위해 설계된 오픈 소스 테이블 포맷(Table Format) 입니다. 데이터 레이크 환경에서 수 페타바이트에 달하는 데이터의 스케일과 복잡성을 감당하면서도 ACID 트랜잭션, 스키마 진화, 효율적인 쿼리 성능 등을 제공하는 데 중점을 두고 있습니다. 

 

Delta Lake와 유사한 목적과 기능을 가졌다. 


1. 주요 특징

a. ACID 트랜잭션 지원

  • 데이터 일관성 보장:
    Iceberg는 데이터 삽입, 업데이트, 삭제 작업에 대해 ACID(Atomicity, Consistency, Isolation, Durability)를 지원합니다.
    이를 통해 데이터 레이크에서 여러 사용자나 애플리케이션이 동시에 작업할 때 발생할 수 있는 충돌과 일관성 문제를 효과적으로 해결합니다.

b. 스키마 및 파티션 진화

  • 스키마 변경의 용이성:
    기존 테이블의 스키마(열 추가, 삭제, 타입 변경 등)를 손쉽게 관리할 수 있도록 지원하여, 데이터 모델이 발전해도 기존 데이터를 안전하게 유지할 수 있습니다.
  • 유연한 파티셔닝:
    기존 파티션 구조를 변경하지 않고도 파티셔닝 전략을 개선할 수 있으며, 쿼리 성능 향상에 중요한 역할을 하는 파티션 스킴을 유연하게 적용할 수 있습니다.

c. 효율적인 데이터 파일 관리

  • 파일 포맷 독립성:
    Iceberg는 Parquet, ORC, Avro 등 여러 파일 포맷을 지원하며, 파일 수준에서 데이터 스캔과 필터링을 최적화합니다.
  • 스냅샷 및 타임 트래블:
    테이블의 특정 시점의 스냅샷을 생성하고 보관함으로써, 과거 데이터에 대한 쿼리나 롤백, 감사 기능을 제공할 수 있습니다.

d. 메타데이터 관리 최적화

  • 빠른 메타데이터 조회:
    Iceberg는 대규모 테이블에서도 효율적으로 메타데이터를 관리할 수 있도록 설계되었으며, 이를 통해 쿼리 엔진이 불필요한 파일 스캔을 줄이고 필요한 데이터만 빠르게 읽어올 수 있습니다.
  • 분산 환경에 최적화:
    메타데이터 변경 사항이 분산 환경에서 일관되게 관리되도록 하여, 데이터 레이크 내의 여러 작업자들이 동시에 데이터를 안전하게 읽고 쓸 수 있습니다.

2. 사용 사례 및 통합

  • 데이터 레이크 하우스:
    Apache Iceberg는 Spark, Flink, Presto, Hive 등 다양한 빅데이터 처리 엔진과 통합되어 데이터 레이크 하우스 아키텍처의 핵심 구성요소로 활용되고 있습니다.
  • 클라우드 기반 데이터 플랫폼:
    Amazon S3, Google Cloud Storage, Azure Blob Storage 등 객체 스토리지를 기반으로 한 클라우드 데이터 레이크에서 주로 사용됩니다.
  • 실시간 분석 및 배치 처리:
    ACID 트랜잭션과 스냅샷 기능 덕분에, 실시간 스트리밍 데이터와 배치 데이터를 모두 안정적으로 처리할 수 있습니다.

'데이터엔지니어' 카테고리의 다른 글

대규모 데이터를 다루기 위한 기초지식  (0) 2025.02.08
Ingestion  (0) 2025.02.04
Pandas 란?  (1) 2024.12.27
데이터 웨어하우스와 데이터 레이크 등의 용어들  (0) 2024.12.24
데이터 웨어하우스  (0) 2024.12.09