Variant Type in Apache Parquet for Semi-Structured Data
Author: Aihua Xu, Andrew Lamb | Source: Apache Parquet Blog | Published: 2026-02-27
한 줄 요약
Apache Parquet의 새 Variant 논리 타입은 JSON 같은 반정형 데이터를 오프셋 기반 이진 포맷으로 저장하여 전체 역직렬화 없이 필드에 직접 접근하는 고성능 반정형 데이터 처리를 가능하게 한다.
핵심 주장/내용
- 기존 반정형 데이터 저장의 딜레마: JSON 문자열(파싱 비용) vs. 고정 스키마(유연성 부재) — Variant로 중간 지점 달성
- 오프셋 기반 필드 접근: 전체 문서 역직렬화 없이 특정 필드를 직접 탐색
- 물리적으로 metadata(타입 정보·공유 딕셔너리) + value(이진 데이터) 두 필드로 표현
- Shredding: 자주 접근하는 필드를 별도 타입 컬럼으로 추출, 나머지는 Variant로 유지
- DuckDB, Apache Spark 4.0, Snowflake 등 주요 쿼리 엔진이 Variant 지원 통합
주요 수치 / 사실
- 4가지 핵심 이점: 타입 보존, 효율적 인코딩(필드명 중복 제거), 빠른 쿼리(오프셋 접근), 스키마 유연성
- Spark 4.0에서 이벤트 스트림 분석, IoT 센서 데이터 저장에 활용 예시 제공
- Java, Rust, Go Parquet 라이브러리 모두 Variant 지원 포함
관련 위키
Source: 원문 보기