Apache Iceberg란 무엇인가요?

최종 업데이트: 2026년 5월 1일

Apache Iceberg는 데이터 레이크에 저장된 대규모 분석 데이터 세트를 위해 설계된 오픈소스 테이블 형식입니다. Iceberg 테이블은 데이터를 파일 모음으로 관리하여 최신 데이터 아키텍처에 향상된 안정성, 성능, 유연성을 제공합니다. Cloud Storage와 같은 데이터 레이크 스토리지 위에 위치한 지능형 레이어로 생각하면 됩니다. 방대한 데이터 세트에 데이터베이스와 유사한 기능을 제공합니다. Iceberg는 단순히 파일을 관리하는 것이 아니라 테이블을 데이터 파일의 컬렉션으로 관리하여 스키마 변경, 시간 이동, 보다 효율적인 쿼리 계획과 같은 기능을 지원합니다. 이를 통해 데이터 분석가, 데이터 과학자, 엔지니어는 데이터 레이크의 데이터를 더욱 쉽고 효율적으로 처리하고 분석 워크로드를 늘릴 수 있습니다.

트랜잭션 데이터 레이크란?

트랜잭션 데이터 레이크는 대규모로 데이터를 저장할 뿐만 아니라 트랜잭션 작업을 지원하여 데이터의 정확성과 일관성을 보장합니다. Iceberg 테이블은 ACID라고 하는 이러한 속성을 지원합니다.

  • 원자성: 각 트랜잭션이 단일 단위로 처리되어 중간 상태 없이 완전히 성공하거나 실패하도록 보장합니다.
  • 일관성: 기록된 모든 데이터가 데이터 레이크의 정의된 규칙에 따라 유효한지 확인합니다.
  • 격리: 여러 트랜잭션이 서로 방해하지 않고 동시에 발생할 수 있습니다.
  • 내구성: 트랜잭션이 제출된 후에는 시스템 장애가 발생하더라도 데이터가 손실되거나 손상되지 않도록 보장합니다.

Iceberg 테이블의 일반적인 사용 사례

Iceberg 테이블은 다음과 같은 다양한 최신 데이터 레이크 및 레이크하우스 사용 사례에 적합합니다.

  • 규정 준수 및 개인 정보 보호: 데이터 개인 정보 보호법을 적용하기 위해 자주 삭제해야 하는 데이터 레이크에 적합
  • 레코드 수준 업데이트: 전체 데이터 세트를 다시 게시하지 않고도 개별 레코드 업데이트 가능(예: 고객 반품으로 인해 변경되는 판매 데이터)
  • 예측할 수 없는 변경사항 관리: 연락처 정보가 알 수 없는 간격으로 변경될 수 있는 고객 레코드와 같은 지연 변경 측정기준(SCD) 테이블 지원
  • 시간 이동 및 감사: 사용자가 추세 분석을 위해 이전 버전을 쿼리하거나 문제를 롤백하고 수정할 수 있도록 테이블 스냅샷의 기록 유지
  • 머신러닝: 신뢰할 수 있는 모델 학습에 중요한 일관되고 버전이 관리되는 데이터 세트 제공

Iceberg 테이블은 누가 사용하나요?

다양한 기술 페르소나가 Iceberg 테이블을 활용하여 대규모 데이터 세트를 효율적으로 관리합니다.

  • 데이터 엔지니어 및 관리자: Iceberg 테이블을 사용하여 확장 가능하고 안정적인 스토리지 시스템 설계 및 빌드
  • 데이터 분석가 및 과학자: Iceberg 테이블을 사용하여 SQL에 익숙한 환경에서 재현 가능한 과거 스냅샷으로 대규모 데이터 세트 분석

Iceberg 테이블의 주요 이점

표준 SQL에 익숙한 사용자가 새로운 언어를 학습하지 않고도 복잡한 데이터 레이크 작업을 수행할 수 있습니다.

쿼리를 중단하지 않고 데이터 구조를 원활하게 변경할 수 있습니다(열 추가, 이름 바꾸기 또는 삭제).

변경 데이터 캡처(CDC)를 지원하므로 사용자가 마지막 실행 이후 변경된 데이터만 처리하여 효율성을 개선할 수 있습니다.

메타데이터를 사용하여 불필요한 파일을 가지치기하고 서술어 푸시다운과 같은 기법을 통해 쿼리 실행을 가속화합니다.

Spark, Flink, Hive, Presto와 같은 다양한 엔진과 호환됩니다.

Apache Iceberg 테이블은 어떻게 작동하나요?

Apache Iceberg는 데이터 레이크의 실제 데이터 파일 위에 있는 메타데이터 레이어를 도입합니다. 이 메타데이터는 기존의 파일 기반 시스템보다 더 체계적이고 강력한 방식으로 테이블의 구조와 콘텐츠를 추적합니다. 주요 메커니즘을 다음과 같이 세분화할 수 있습니다.

  • 메타데이터 관리: Iceberg는 테이블의 스키마, 파티션, 데이터 파일의 위치를 설명하는 메타데이터 파일을 유지관리합니다. 이러한 메타데이터 파일은 일반적으로 데이터와 함께 데이터 레이크에 저장됩니다.
  • 카탈로그: Iceberg는 카탈로그를 사용하여 각 테이블의 현재 메타데이터 위치를 추적합니다. 이 카탈로그는 Hive Metastore, 파일 시스템 기반 구현 또는 클라우드 기반 카탈로그 서비스와 같은 서비스일 수 있습니다.
  • 테이블 스냅샷: 테이블에 변경사항이 적용될 때마다(예: 데이터 추가, 데이터 삭제, 스키마 변경) Iceberg는 테이블의 메타데이터에 대한 새로운 스냅샷을 생성합니다. 이러한 스냅샷은 변경할 수 없으며 테이블 상태의 이전 기록을 제공합니다.
  • 매니페스트 목록 및 매니페스트 파일: 각 스냅샷은 매니페스트 목록을 가리키며, 이 매니페스트 목록은 하나 이상의 매니페스트 파일을 나열합니다. 매니페스트 파일에는 위치, 파티션 값, 통계(행 수 및 값 범위 등)를 포함한 개별 데이터 파일에 대한 메타데이터가 포함됩니다.

Apache Iceberg 아키텍처

Apache Iceberg의 아키텍처에는 함께 작동하는 여러 주요 구성요소가 포함됩니다.

  • 데이터 레이크 스토리지: 이는 Cloud Storage와 같은 기본 스토리지 레이어로, 실제 데이터 파일(Parquet, ORC 또는 Avro 형식)과 Iceberg의 메타데이터 파일이 저장됩니다.
  • Iceberg REST 카탈로그: Iceberg 테이블의 메타데이터 포인터를 관리하는 구성요소입니다. 각 테이블의 메타데이터 현재 버전을 추적하는 중앙 레지스트리 역할을 합니다. 일반적인 카탈로그 구현에는 다음이 포함됩니다.
  • Hive Metastore: 널리 사용되는 메타데이터 저장소로, Hadoop 기반 시스템과 함께 사용되는 경우가 많습니다.
  • 파일 시스템 카탈로그: 카탈로그 정보가 데이터 레이크 파일 시스템에 직접 저장되는 간단한 구현입니다.
  • 클라우드 기반 카탈로그 서비스: 메타데이터를 저장하고 관리하기 위해 클라우드 제공업체에서 제공하는 관리형 서비스입니다.
  • Iceberg 메타데이터: 테이블의 구조와 데이터를 추적하는 여러 레이어의 메타데이터 파일로 구성됩니다.
  • 테이블 메타데이터 파일: 이 파일은 현재 매니페스트 목록을 가리키며 스키마 및 파티셔닝 사양과 같은 테이블에 대한 개요 정보가 포함되어 있습니다.
  • 매니페스트 목록: 이 파일은 테이블의 특정 스냅샷에 있는 데이터 파일에 대한 메타데이터를 포함하는 매니페스트 파일을 나열합니다.
  • 매니페스트 파일: 이러한 파일에는 위치, 파티션 값, 통계 등 개별 데이터 파일에 대한 자세한 정보가 포함되어 있습니다.
  • 쿼리 엔진 및 처리 프레임워크: Iceberg 테이블과 상호작용하여 데이터를 읽고 쓰는 도구입니다. 이러한 엔진은 Iceberg의 메타데이터를 활용하여 쿼리 계획 및 실행을 최적화합니다.
  • 컴퓨팅 리소스: 쿼리 엔진과 처리 프레임워크를 실행하는 기본 인프라(예: 가상 머신 및 컨테이너)입니다.

Apache Iceberg 및 데이터 레이크

Apache Iceberg는 안정적이고 성능이 우수한 테이블 형식을 추가하여 데이터 레이크의 기능을 크게 향상합니다. Iceberg와 같은 테이블 형식이 없는 기존 데이터 레이크에서는 데이터가 단순히 파일 컬렉션인 경우가 많습니다. 이로 인해 다음과 같은 문제가 발생할 수 있습니다.

  • 스키마 변경 부족: 데이터 구조를 변경하는 작업이 복잡하고 오류가 발생하기 쉽습니다.
  • 읽기 불일치: 동시 쓰기 작업으로 인해 쿼리에서 이전 데이터와 새 데이터가 혼합되어 읽힐 수 있습니다.
  • 쿼리 성능 저하: 쿼리 엔진을 안내할 메타데이터가 없으면 쿼리 엔진이 데이터의 상당 부분을 스캔해야 하는 경우가 많습니다.
  • 데이터 관리의 어려움: 시간 이동 및 버전 관리와 같은 기능을 쉽게 사용할 수 없습니다.

Iceberg는 데이터 레이크 위에 구조화된 레이어를 제공하여 이러한 제한사항을 해결합니다. 데이터 레이크에 데이터베이스와 유사한 기능을 제공하여 더 강력하고 관리하기 쉬운 데이터 레이크하우스로 변환합니다. 풍부한 메타데이터가 포함된 파일의 컬렉션으로 테이블을 관리하는 Iceberg를 사용하면 다음과 같은 이점이 있습니다.

  • 신뢰할 수 있고 일관적인 데이터 액세스: ACID 속성으로 데이터 무결성 보장
  • 효율적인 쿼리 처리: 메타데이터 기반 데이터 건너뛰기 및 필터링으로 쿼리 가속화
  • 유연한 데이터 관리: 스키마 변경 및 시간 이동으로 데이터 유지보수 및 분석 간소화
  • 상호 운용성: Iceberg는 데이터 레이크에서 일반적으로 사용되는 다양한 쿼리 엔진 및 처리 프레임워크와 호환되도록 설계됨

Google Cloud로 비즈니스 문제 해결

신규 고객에게는 Google Cloud에서 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Google Cloud 영업 전문가와 고유한 문제에 대해 자세히 논의해 보세요.

Google Cloud 및 Apache Iceberg

Google Cloud는 Apache Iceberg를 활용하기 위한 강력한 환경을 제공합니다. 여러 Google Cloud 서비스가 Iceberg와 원활하게 통합되어 사용자가 강력하고 확장 가능한 데이터 레이크하우스 솔루션을 빌드할 수 있습니다.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud