Topic

Apache ORC(Optimized Row Columnar)

JackerLab 2026. 1. 28. 19:41
728x90
반응형

개요

Apache ORC는 하둡(Hadoop) 기반의 대규모 데이터 처리에 최적화된 컬럼 지향(Columar) 저장 포맷으로, 빠른 압축률과 고속 읽기 성능을 제공하는 것이 특징입니다. Hive, Spark, Trino 등의 빅데이터 처리 엔진에서 널리 활용되며, 데이터 분석 효율성과 저장 공간 최적화에 중점을 둡니다.


1. 개념 및 정의

항목 설명
정의 컬럼 단위로 데이터를 저장하고 압축하는 고성능 파일 포맷
목적 대규모 데이터 분석의 성능 최적화
필요성 텍스트 기반 포맷(CSV, JSON)의 비효율 해소 및 컬럼 기반 처리 개선

ORC는 대용량의 정형 데이터를 대상으로 한 효율적인 저장과 처리에 적합


2. 특징

특징 설명 비교
컬럼 지향 포맷 컬럼 단위로 데이터 저장 Row 기반보다 빠른 질의 성능
고압축률 Zlib, Snappy 등 다양한 압축 지원 Parquet보다 압축 효율 높음
인덱스 내장 데이터 파일 내에 인덱스 포함 스캔 범위 최소화 가능

ORC는 Hive에서 기본 저장 포맷으로 채택되어 있음


3. 구성 요소

구성 요소 설명 예시
Stripe 데이터 저장의 기본 단위 64MB 단위로 저장 가능
Footer 메타데이터 포함 영역 컬럼 통계, 압축 정보 등 포함
Row Index 각 컬럼의 블록 인덱스 빠른 필터링 및 seek 지원

Stripe 구조로 병렬 처리 및 블록 접근 최적화


4. 기술 요소

기술 설명 사용 예
Dictionary Encoding 반복되는 값을 사전 기반으로 압축 카테고리형 데이터 처리에 효과적
Predicate Pushdown 필터 조건을 파일 레벨에서 적용 불필요한 로딩 최소화
Lazy Decompression 필요한 컬럼만 압축 해제 IO 및 메모리 사용 최적화

ORC는 데이터 읽기 성능을 위해 다양한 최적화 기법을 통합함


5. 장점 및 이점

장점 설명 효과
뛰어난 성능 빠른 질의 응답 및 압축률 제공 대규모 분석 속도 개선
저장 효율성 파일 크기 감소 및 IO 최적화 스토리지 비용 절감
분석 친화적 구조 통계, 인덱스 기반 최적화 제공 데이터 레이크 분석에 적합

데이터 웨어하우스 및 데이터 레이크에서 핵심 포맷으로 활용 가능


6. 주요 활용 사례 및 고려사항

사례 설명 참고사항
Hive ORC는 Hive의 기본 테이블 포맷 Hive ACID 트랜잭션과 호환됨
Apache Spark 대규모 ETL 및 분석 작업에 사용 DataFrame.write.orc() 지원
Presto / Trino 대화형 쿼리 처리 최적화 ORC의 인덱스 활용 가능

압축 코덱 선택 및 stripe 크기 조절은 성능에 직접적 영향


7. 결론

Apache ORC는 고속 압축과 질의 성능을 바탕으로 대규모 데이터 처리 환경에서 강력한 저장 포맷으로 자리잡고 있습니다. 컬럼 지향 아키텍처와 통계 기반 최적화 기능은 데이터 웨어하우스와 데이터 레이크 아키텍처에 필수적인 요소로, 효율적이고 실용적인 분석 기반을 제공합니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Snappy  (0) 2026.01.29
LZ4  (0) 2026.01.28
FlatBuffers  (0) 2026.01.28
Protobuf(Protocol Buffers)  (0) 2026.01.28
Apache Avro  (0) 2026.01.28