주요 컨텐츠로 이동

Apache Iceberg™ v3: 통합을 향한 생태계 이동

Apache Iceberg™ v3에는 주요 새로운 기능(deletion vectors, row lineage, semi-structured data, geospatial types)이 포함되어 있으며 여러 형식에서 데이터 레이어를 통합합니다.

Apache Iceberg V3 features

발행일: 2025년 6월 2일

오픈 소스Less than a minute

Summary

  • Apache Iceberg™ v3에는 새로운 기능 및 개선 사항(Deletion Vectors, Row Level Lineage, Semi-Structured Data, Geospatial Types)이 포함되어 있습니다.
  • 이러한 기능을 통해 Iceberg v3는 Apache Iceberg™, Delta Lake, Apache Parquet 및 Apache Spark™에서 데이터 레이어를 통합합니다.
  • Databricks는 Iceberg v3를 Data Intelligence Platform에 통합하고 있으며 업계에서 Iceberg v3를 채택하게 되어 기쁩니다.

Apache Iceberg™ v3는 Apache Iceberg 커뮤니티의 승인을 받았으며, 고급 신규 기능과 데이터 형식을 도입했습니다. Iceberg v3에는 삭제 벡터, 행 계보, 반정형 데이터 및 지리 공간 사용 사례를 위한 새로운 형식과 같은 주요 개선 사항이 포함되어 있습니다. 이러한 기능을 통해 고객은 데이터를 효율적으로 처리하고 쿼리할 수 있습니다. 또한 이러한 개선 사항은 Delta Lake, Apache Parquet 및 Apache Spark에서 일관성을 유지하므로 고객은 데이터를 다시 작성하거나 행 수준 삭제 파일을 다시 작성하지 않고도 Delta와 Apache Iceberg 간에 상호 운용할 수 있습니다.

이 블로그 게시물에서는 Iceberg v3의 최신 개발 사항을 다룹니다.

  • 삭제 벡터
  • 행 계보
  • 반정형 데이터 및 지리 공간 형식
  • Delta Lake, Apache Parquet 및 Apache Spark 간의 상호 운용성

삭제 벡터

Iceberg v3는 읽기 성능을 개선하기 위해 행 수준 삭제를 위한 새로운 형식인 삭제 벡터를 도입했습니다. 행 수준 삭제는 삭제된 행이 저장되고 추적되는 방식을 최적화하여 쓰기 증폭을 크게 줄여 ETL 및 수집 속도를 높입니다. Iceberg v2에서는 엔진이 쓰기 중에 삭제 파일을 함께 압축할 필요가 없었습니다. 이는 고객이 비동기 유지 관리를 사용하기 위한 것이었습니다. 그러나 많은 고객이 유지 관리 서비스를 예약하지 않아 테이블에 유지 관리되지 않은 삭제 파일이 너무 많았습니다. 이로 인해 엔진이 읽을 때 많은 행 수준 삭제 파일을 병합해야 할 때 읽기 성능이 저하되었습니다.

Iceberg v3는 새로운 삭제 벡터 형식과 삭제 파일에 대한 새로운 압축 요구 사항을 도입했습니다. 이 새로운 형식을 사용하면 Parquet 파일과 삭제를 적용하는 데 사용되는 메모리 내 표현 간의 변환을 피할 수 있습니다. 또한 엔진은 쓰기 시 파일당 단일 삭제 벡터를 유지 관리해야 합니다. 이 요구 사항은 데이터 파일의 성능과 통계를 개선합니다. 또한 이전 삭제와 현재 삭제를 쉽게 비교할 수 있으므로 테이블의 행 수준 변경 사항을 스트림으로 처리하는 것이 간단해집니다.

행 계보

또 다른 주요 Iceberg v3 기능은 증분 처리를 단순화하는 데 사용되는 행 계보입니다. 행 계보를 통해 엔진은 커밋 간에 행 버전을 일치시켜 행 수준 변경 사항을 찾습니다.

Iceberg v3는 행 수준 메타데이터(행 ID와 행이 마지막으로 수정되거나 추가된 시퀀스 번호)를 사용하여 행 계보를 도입했습니다. ID는 버전 간에 동일한 행을 식별합니다. 시퀀스 번호는 행이 파일 간에 재배치된 것뿐만 아니라 마지막으로 변경된 시기를 주석으로 표시합니다. 이를 통해 엔진은 변경 사항을 선택적으로 처리하여 더 빠르고 저렴한 워크플로로 다운스트림 업데이트를 간소화할 수 있습니다.

행 ID 정보는 구체화된 뷰와 같은 증분 처리 객체와 결합할 때 특히 유용합니다. 이러한 객체는 마지막 처리 주기 이후의 신규 또는 변경된 데이터만 계산하도록 최적화되어 있습니다.

기술 가이드 eBook

ETL 시작하기

반정형 데이터 및 지리 공간 형식

Iceberg v3는 반정형 데이터 및 지리 공간 데이터를 위한 새로운 데이터 형식도 추가합니다.

반정형 데이터는 구조화된 테이블 열에 맞지 않는 다양한 스키마를 가지고 있기 때문에 저장하기 어렵습니다. 한 가지 해결 방법은 이 데이터에서 개별 필드를 추출하여 구조화된 형식으로 만드는 것입니다. 그러나 이로 인해 일관성 없는 스키마로 인해 많은 열과 NULL 값을 가진 매우 넓은 테이블이 생성됩니다. 또 다른 대안은 문자열 열에 JSON을 저장하는 것입니다. 안타깝게도 이로 인해 엔진이 이러한 문자열에서 데이터를 구문 분석해야 하므로 읽기 성능이 저하됩니다. 반정형 데이터 형식이 없으면 엔진이 필터를 푸시 다운할 수 없으므로 모든 데이터 파일의 모든 행을 읽어야 합니다. Iceberg v3는 반정형 데이터를 효율적으로 나타내기 위해 VARIANT를 도입했습니다. VARIANT는 스키마 유연성을 유지하면서 성능을 향상시키기 위해 데이터 구조를 인코딩합니다.

마찬가지로 도로, 공원 또는 도시 경계와 같은 지구 표면의 위치와 관련된 정보인 지리 공간 데이터도 효율적으로 작업하고 쿼리하기 어렵습니다. 지리 공간 형식이 없으면 고객은 바이너리 열을 사용하여 지리 데이터 위치를 저장해야 했습니다. 그러나 이 표현은 지정된 영역 내에서 객체를 찾기 위해 바이너리 열을 필터링할 수 없으므로 지리적 검색을 지원하지 않았습니다. Iceberg v3는 새로운 지오메트리 및 지리학 데이터 형식을 도입하여 이 문제를 해결합니다. 지오메트리 형식은 평면 공간 데이터를 위한 것이고, 지리학 형식은 지구의 곡률을 고려한 글로벌 데이터를 위한 것입니다. 이러한 형식을 통해 고객은 지리적 영역을 나타내는 경계 상자를 사용하여 데이터를 쉽게 찾고 지리 공간 객체를 효율적으로 찾을 수 있습니다.

Delta Lake, Apache Parquet 및 Apache Spark와의 상호 운용성

Iceberg v3의 새로운 기능과 데이터 형식은 기능을 확장하고 성능을 향상시킵니다. 이러한 Apache Iceberg 기능은 레이크하우스 형식 간의 상호 운용성을 추진하기 때문에 중요합니다.

역사적으로 고객은 가장 인기 있는 레이크하우스 형식인 Delta Lake와 Apache Iceberg 중에서 선택해야 했습니다. 이는 대부분의 플랫폼이 하나의 형식만 지원하기 때문입니다. 데이터를 다시 작성하는 것은 비용이 많이 들고 규모에 따라 비현실적일 수 있으므로 이러한 선택은 장기적입니다. 두 형식은 매우 유사합니다. 둘 다 테이블 의미 체계를 제공하기 위해 Parquet 데이터 파일 위에 있는 메타데이터 계층입니다. 그러나 테이블 형식의 작은 차이로 인해 고객에게 문제가 발생합니다.

Iceberg v3는 형식 간에 데이터 계층을 통합합니다. 데이터 통합을 통해 고객은 데이터를 다시 작성하거나 파일을 삭제할 필요 없이 Delta와 Iceberg 간에 상호 운용할 수 있습니다. 이는 Iceberg v3의 기능이 Delta Lake, Apache Parquet 및 Apache Spark에서 호환되는 구현을 가지고 있기 때문입니다.

  • 삭제 벡터는 테이블 형식에서 동일한 바이너리 인코딩을 사용합니다.
  • Iceberg v3의 행 수준 계보는 Delta Lake의 행 추적과 호환됩니다.
  • VARIANT지리 데이터 형식은 업스트림 Apache Parquet 및 Apache Spark™ 커뮤니티에서 개발 중이며, 이는 Apache Iceberg 및 Delta Lake로 확장됩니다.

오픈 소스 프로젝트에서 호환되는 기능을 사용함으로써 Iceberg v3는 고객이 형식을 선택하도록 강요하는 것을 방지합니다. 대신 고객은 데이터 복사본 하나에서 형식 간에 자유롭게 상호 운용할 수 있습니다.

Iceberg v3에 대해 자세히 알아보기

Iceberg v3는 전체 산업을 더욱 성능이 뛰어나고, 유능하며, 상호 운용 가능한 세계로 발전시킵니다. Databricks Data Intelligence Platform에 Iceberg v3를 통합하고 있으며 다른 공급업체에서도 Iceberg v3를 채택하기를 기대합니다. 오픈 소스는 Databricks의 핵심 가치이며, 삭제 벡터와 같은 기능을 Iceberg v3에 적극적으로 기여하고 있습니다. 번성하는 오픈 소스 커뮤니티를 육성하기 위해 Apache Iceberg에 대한 지원과 기여를 장려합니다. 새로운 기여자에게는 “good first issue”로 시작하는 것이 좋습니다.

Iceberg v3 기능을 관리형 테이블 제품에 통합할 계획과 오픈 테이블 형식의 미래에 대해 자세히 알아보려면 2025년 6월 9~12일에 Data and AI Summit에 등록하세요.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요