Hive-Iceberg 통합

Hive-Iceberg 통합 (Hive–Iceberg Integration)

Hive에서 Apache Iceberg 테이블을 생성·관리·조회하는 방법을 다루는 문서예요. Iceberg는 대용량 데이터에 강력한 스키마 진화, 시점 여행(time travel), ACID 보장을 제공합니다.

출처: 문서

본문

이 문서는 Hive에서 Apache Iceberg 테이블을 사용하는 방법을 설명합니다. Hive 3.x부터 Iceberg 테이블을 기본적으로 지원하여, 별도 인스톨 없이도 Iceberg 테이블을 만들고 쿼리할 수 있습니다.

Iceberg 테이블 만들기:

CREATE TABLE iceberg_table (id INT, name STRING)
STORED BY ICEBERG;

STORED BY ICEBERG 를 사용하면 Iceberg 포맷의 테이블이 생성됩니다.

데이터 입력:

INSERT INTO iceberg_table VALUES (1, 'Alice');

쿼리:

SELECT * FROM iceberg_table;

Iceberg의 주요 특징:

  • 스키마 진화 (Schema Evolution): 컬럼 추가·삭제·이름 변경을 안전하게 지원합니다.
  • 시점 여행 (Time Travel): 과거의 특정 시점 스냅샷으로 쿼리할 수 있습니다.
  • ACID 트랜잭션: 커밋 단위의 일관된 읽기/쓰기를 제공합니다.
  • 숨은 파티셔닝 (Hidden Partitioning): 파티션을 명시적으로 관리하지 않아도 쿼리 성능을 높여 줍니다.

파티셔닝된 Iceberg 테이블:

CREATE TABLE iceberg_part (id INT, dt DATE)
PARTITIONED BY (dt)
STORED BY ICEBERG;

관련 설정 예시:

Hive에서 Iceberg 관련 기능(스냅샷 관리, 시점 여행 등)은 설정으로 활성화할 수 있습니다.

참고 사항:

  • Iceberg 테이블을 만들려면 Hive 메타스토어가 Iceberg 카탈로그를 지원해야 합니다.
  • 기존 Hive 테이블과 달리 Iceberg 테이블은 자체적인 스냅샷 메타데이터를 관리합니다.

더 알아보기 (Learn more)