Apache Iceberg

Apache Iceberg
원저자라이언 블루, 대니얼 윅스
발표일10 August 2017년(9년 전)(10 August 2017)
안정화 버전
1.10.0 / 2025년 9월 11일(11개월 전)(2025-09-11)
저장소
프로그래밍 언어자바, 스칼라, 파이썬
운영 체제크로스 플랫폼
종류데이터 웨어하우스, 데이터 레이크
라이선스아파치 라이선스 2.0
웹사이트

Apache Iceberg는 대규모 애널리틱스 테이블을 위한 고성능 오픈 소스 형식이다. Iceberg는 빅데이터에 SQL 테이블 사용을 가능하게 하며, 스파크, 트리노, 플링크, 프레스토, 하이브, 임팔라, StarRocks, Doris, 피그와 같은 엔진들이 동일한 테이블에서 동시에 안전하게 작업할 수 있도록 한다.[1] Iceberg는 아파치 라이선스 하에 배포된다.[2] Iceberg는 크고 까다로운 데이터 레이크 환경에서 아파치 하이브 테이블이 겪는 성능 및 사용성 문제를 해결한다. Iceberg는 2017년 넷플릭스에서 아파치 하이브 테이블의 확장성 및 일관성 제한을 극복하기 위해 처음 개발되었으며, 2018년 아파치 소프트웨어 재단에 기증되었다. 2020년 5월, 아파치 최상위 프로젝트로 승격되었다.[3][4] 현재 Apache Iceberg 테이블을 지원하는 벤더로는 Buster,[5] CelerData, 클라우데라, Crunchy Data,[6] Dremio, IBM watsonx.data, IOMETE, 오라클,[7] 스노우플레이크, Starburst, Tabular,[8] AWS,[9] 구글 클라우드,[10] 그리고 데이터브릭스가 있다.[11]

역사

Iceberg는 넷플릭스에서 라이언 블루와 댄 윅스에 의해 시작되었다. 아파치 하이브는 넷플릭스 인프라 내의 많은 다양한 서비스와 엔진에서 사용되었다. 하이브는 정확성을 보장할 수 없었고 안정적인 원자적 트랜잭션을 제공하지 못했다.[4] 넷플릭스의 많은 이들은 하이브 형식으로 인한 의도치 않은 결과를 피하기 위해 이러한 서비스를 사용하거나 데이터를 변경하는 것을 지양했다.[4] 라이언 블루는 Iceberg를 만들어 하이브 테이블이 직면했던 세 가지 문제를 해결하고자 했다.[4][12]

  1. 데이터의 정확성을 보장하고 ACID 트랜잭션을 지원한다.
  2. 최적의 쓰기를 위해 파일 단위로 세밀한 작업을 수행할 수 있도록 하여 성능을 향상한다.
  3. 테이블의 일반적인 운영 및 유지 관리를 단순화하고 추상화한다.

Iceberg 개발은 2017년에 시작되었다.[13] 이 프로젝트는 2018년 11월 오픈 소스로 전환되어 아파치 소프트웨어 재단에 기증되었다.[14] 2020년 5월, Iceberg 프로젝트는 아파치 최상위 프로젝트로 승격되었다.[14]

Iceberg는 에어비앤비,[15] 애플,[4] 익스피디아,[16] 링크드인,[17] 어도비,[18] 리프트를 포함한 다수의 기업에서 사용되고 있다.[19]

기술적 상세

Apache Iceberg는 기본 데이터 스토리지에서 테이블 메타데이터를 추상화하여 작동한다. 스냅샷, 스키마 정보, 파티션 레이아웃, 데이터 파일 위치를 추적하는 메타데이터 파일을 유지 관리하여 효율적이고 원자적인 테이블 작업을 가능하게 한다.[20]

상위 수준에서 Iceberg는 테이블 데이터를 스냅샷으로 구성한다. 각 스냅샷은 특정 시점의 테이블 상태를 나타내며, 이를 통해 Iceberg는 스냅샷 격리, 동시 쓰기, 롤백 기능을 포함한 ACID 준수 트랜잭션 기능을 제공한다. 스냅샷 메타데이터는 파일 시스템 내에 저장된 매니페스트 파일과 메타데이터 파일의 트리 구조로 관리된다.[21]

Iceberg는 분석 쿼리에 최적화된 효율적인 열 기반 저장 구조 덕분에 실제 데이터를 저장할 때 아파치 파케이 파일 형식을 사용한다. Iceberg의 파케이 파일은 테이블 행을 압축된 열 지향 형식으로 저장하여, 조건부 푸시다운(predicate pushdown) 및 열 가지치기(column pruning)와 같은 기술을 통해 스토리지 비용을 크게 절감하고 읽기 성능을 향상시킨다. Iceberg는 매니페스트 파일에서 파케이 파일을 참조하여 쿼리 실행 중에 관련 데이터를 빠르게 식별하고 액세스할 수 있게 한다.[22]

Apache Iceberg는 테이블 콘텐츠를 추적하기 위해 다중 수준 메타데이터 계층 구조를 채택한다.[23] 최상위에는 테이블 메타데이터 파일(종종 metadata.json)이 스키마, 파티션 사양, 스냅샷 목록, 현재 "루트" 스냅샷에 대한 포인터와 같은 테이블 수준 정보를 저장한다.[24] 각 스냅샷은 테이블의 일관된 뷰를 나타내며, 해당 스냅샷에 대한 모든 매니페스트 파일을 나열하는 매니페스트 목록(아파치 아브로 파일)과 연결된다. 매니페스트 파일은 각 파일에 대한 메타데이터(행 수, 파티션 값, 최소/최대값과 같은 열 통계 포함)와 함께 데이터 파일 세트(예: 파케이 파일)를 나열하는 인덱스이다. 이러한 매니페스트는 테이블의 메타데이터를 세분화하는 작은 메타데이터 파일(종종 아브로 형식)로, 파티션별로 쿼리할 때 모든 데이터 파일을 나열하는 거대한 단일 파일이 필요하지 않고 전체 매니페스트를 가지치기할 수 있는 분산 설계를 가능하게 한다. 또한, Iceberg의 메타데이터 트리는 테이블 변경 사항에 대한 이력 기록을 제공하여 만료될 때까지 이전 스냅샷과 매니페스트를 유지(타임 트래블 가능)하며, 모든 데이터 파일이나 디렉토리를 스캔하는 대신 관련 매니페스트 파일만 읽어 쿼리를 빠르게 계획할 수 있다. 이러한 접근 방식은 디렉토리 나열과 같은 비용이 많이 드는 작업을 피하며, 거대한 테이블에서도 메타데이터 액세스를 효율적으로 만든다.

같이 보기

각주

  1. “Apache Iceberg”. 《iceberg.apache.org》. 2022년 10월 5일에 확인함. 
  2. “apache/iceberg GitHub License”. The Apache Software Foundation. 2022년 10월 5일. 2022년 10월 5일에 확인함. 
  3. “What is Apache Iceberg?”. IBM. 2026년 5월 25일에 확인함. 
  4. Woodie, Alex (2021년 2월 8일). “Apache Iceberg: The Hub of an Emerging Data Service Ecosystem?”. 《Datanami》. 2024년 9월 4일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  5. “Buster”. 2024년 9월 9일에 원본 문서에서 보존된 문서. 2024년 9월 9일에 확인함. 
  6. Woodie, Alex (2024년 7월 24일). “Crunchy Data Goes All-in With Postgres” (영어). 《The Big Data Wire》. 2024년 9월 13일에 원본 문서에서 보존된 문서. 2024년 11월 9일에 확인함. 
  7. 오라클 (2025년 9월 5일). “Query Apache Iceberg Tables”. 《Oracle Cloud Infrastructure Documentation》. 2025년 9월 29일에 확인함. 
  8. “Vendors”. 《iceberg.apache.org》. 2023년 5월 5일에 확인함. 
  9. “Using Apache Iceberg tables – Amazon Athena”. Amazon Web Services, Inc. 2024년 9월 4일에 원본 문서에서 보존된 문서. 2023년 6월 16일에 확인함. 
  10. “Google Cloud BigQuery tables for Apache Iceberg”. Google Cloud, Inc. 2024년 11월 22일에 원본 문서에서 보존된 문서. 2024년 11월 21일에 확인함. 
  11. “What is Apache Iceberg in Databricks? | Databricks on AWS” (영어). 《docs.databricks.com》. 2025년 8월 20일. 2025년 8월 25일에 확인함. 
  12. “Iceberg at Netflix and Beyond with Ryan Blue, EPISODE 1654 Transcript”. 《Software Engineering Daily》. 2024년 3월 7일. 2024년 11월 10일에 원본 문서에서 보존된 문서. 2024년 11월 10일에 확인함. 
  13. “Initial public release in apache/iceberg” (영어). 《GitHub》. 2024년 9월 4일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  14. “Incubation Status Template - Apache Incubator”. 《incubator.apache.org》. 2022년 10월 5일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  15. Zhu, Ronnie (2022년 9월 26일). “Upgrading Data Warehouse Infrastructure at Airbnb” (영어). 《The Airbnb Tech Blog》. 
  16. Mathiesen, Christine (2021년 1월 26일). “A Short Introduction to Apache Iceberg” (영어). 《Expedia Group Technology》. 2022년 10월 5일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  17. “FastIngest: Low-latency Gobblin with Apache Iceberg and ORC format” (영어). 《engineering.linkedin.com》. 2024년 9월 4일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  18. Bremner, Jaemi (2020년 12월 3일). “Iceberg at Adobe” (영어). 《Medium》. 2024년 9월 4일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  19. Council, Data (2020년 7월 17일). “Open Source Highlight: Apache Iceberg” (영어). 《www.datacouncil.ai》. 2022년 10월 5일에 원본 문서에서 보존된 문서. 2022년 10월 5일에 확인함. 
  20. “Apache Iceberg Documentation”. 《iceberg.apache.org》. 2025년 3월 3일에 확인함. 
  21. “Apache Iceberg Specification”. 《iceberg.apache.org》. 2025년 3월 3일에 확인함. 
  22. “Apache Iceberg vs Parquet: File vs. Table Formats for Modern Data Lakes”. 《decube.io》. 2025년 3월 3일에 확인함. 
  23. “Apache Iceberg Specification”. 《Apache Iceberg》. 2025년 3월 17일에 확인함. 
  24. “A Hands-On Look at the Structure of an Apache Iceberg Table”. 《Dremio》. 2022년 8월 24일. 2025년 3월 17일에 확인함. 

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.