LanguageManual ORC
LanguageManual ORC
Hive가 권장하는 파일 포맷인 ORC(Optimized Row Columnar) 파일을 다루는 문서예요. 높은 압축률, 스키마의 진화 지원, 벡터화 실행, 술어 푸시다운(predicate pushdown) 같은 강력한 기능을 제공합니다.
출처: 문서
본문
ORC 파일 포맷은 대량의 데이터를 효율적으로 저장하기 위해 설계된 행·컬럼 혼합형 포맷입니다.
주요 특징:
- 고압축률: 사전 인코딩, 롱(run-length) 인코딩, 지그재그(ZigZag) 인코딩, 압축 코덱(ZLIB, SNAPPY, LZ4, ZSTD)을 조합해 저장 용량을 크게 줄입니다.
- 컬럼 기반 저장: 컬럼 단위로 데이터를 저장해 특정 컬럼만 읽는 쿼리가 빠릅니다.
- 술어 푸시다운(Predicate Pushdown):
WHERE조건을 스트라이프(stripe)와 행 그룹(row group) 수준에서 미리 적용해 읽는 데이터 양을 줄입니다. - 스키마 진화(Schema Evolution): 컬럼 추가·삭제 같은 스키마 변경을 지원합니다.
- 벡터화(Vectorized) 실행과 호환: 한 번에 여러 행을 처리하는 벡터화 쿼리 실행을 지원합니다.
- ACID 트랜잭션 지원: Hive ACID 테이블에 ORC를 사용할 수 있습니다.
ORC 테이블 만들기:
CREATE TABLE t1 (a INT, b STRING)
STORED AS ORC;
ORC 테이블에 데이터 저장:
INSERT INTO t1 SELECT ...;
ORC 관련 설정 예시:
ORC는 스트라이프 크기, 압축 코덱 등을 테이블 또는 세션 설정으로 조정할 수 있습니다.
SET hive.exec.orc.compression.strategy=SPEED;
참고 사항:
- ORC는 Hive의 기본 권장 포맷이며, 특히 대용량 데이터와 분석 워크로드에서 성능이 뛰어납니다.
- 파일 포맷 설정은 테이블 생성 시
STORED AS절로 지정합니다.
더 알아보기 (Learn more)
- File Formats — 여러 파일 포맷 비교.
- RCFile — 이전 세대의 행·컬럼 포맷.
- LanguageManual — Hive 언어 매뉴얼.