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)
- Iceberg REST Catalog API — Iceberg REST API 엔드포인트.
- Apache Iceberg — Iceberg 공식 문서.