주요 컨텐츠로 이동

Iceberg v3: 생태계를 통합으로 이동시키다

Iceberg v3는 주요 새로운 기능들(삭제 벡터, 행 계보, 반정형 데이터, 지리공간 유형)을 포함하고 데이터 계층을 형식 간에 통합합니다

Apache Iceberg V3 features

Published: June 2, 2025

오픈 소스1분 이내 소요

Summary

  • Iceberg v3에는 새로운 기능과 개선 사항이 포함되어 있습니다: 삭제 벡터, 행 수준 계보, 반정형 데이터, 공간적 유형
  • 이러한 기능들을 통해 Iceberg v3는 Apache Iceberg™, Delta Lake, Apache Parquet, Apache Spark™ 간의 데이터 계층을 통합합니다
  • Databricks는 Iceberg v3를 Data Intelligence Platform에 통합하고 있으며, 산업이 Iceberg v3를 채택하는 것을 기대하고 있습니다

Apache Iceberg 커뮤니티에 의해 승인된 Iceberg v3는 고급 새로운 기능과 데이터 유형을 도입합니다. 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 정보는 물리화 뷰와 같은 증분 처리 객체와 결합할 때 특히 유용합니다. 이러한 객체는 마지막 처리 주기 이후의 새로운 데이터 또는 변경된 데이터만 계산하도록 최적화되어 있습니다.

반정형 데이터 및 공간적 유형

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는 전체 산업을 더 높은 성능, 능력, 상호 운용성 있는 세계로 전진시킵니다. 우리는 Iceberg v3를 Databricks Data Intelligence Platform에 통합하고 있으며, 다른 공급업체들이 Iceberg v3를 채택하는 것을 기대하고 있습니다. 오픈 소스는 Databricks의 핵심 가치이며, 우리는 삭제 벡터와 같은 기능을 Iceberg v3에 적극적으로 기여합니다. 우리는 번창하는 오픈 소스 커뮤니티를 육성하기 위해 Apache Iceberg에 대한 기여를 지원하고 장려합니다. 새로운 기여자들에게는 “좋은 첫 이슈”로 시작하는 것을 권장합니다.

우리가 어떻게 Iceberg v3 기능 을 우리의 관리 테이블 제공에 통합하려고 하는지, 그리고 오픈 테이블 형식의 미래에 대해 알아보려면, 2025년 6월 9-12일에 열리는 Data and AI Summit에 등록하세요.

 

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

게시물을 놓치지 마세요

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