토픽 158 / 201·NewSQL 및 특수 목적 DB
Columnar Storage (컬럼 저장소)
Columnar Storage (컬럼 저장소)
데이터를 행(Row) 단위가 아닌 열(Column) 단위로 연속 저장하는 데이터베이스 저장 방식으로, 분석 쿼리에서 필요한 컬럼만 읽어 I/O를 줄이고 동일 타입 데이터 연속 저장으로 높은 압축률을 달성하며 OLAP 워크로드에 최적화
목적: 분석 쿼리 최적화, I/O 감소, 높은 압축률, 집계 연산 가속, OLAP 성능 향상
특징: 컬럼 단위 저장, 높은 압축률, 벡터화 처리 용이, 선택적 컬럼 읽기, 대용량 스캔 최적화
저장 방식 비교
- •Row Store: 행 단위 연속 저장, OLTP 최적화, INSERT/UPDATE 빠름, 단일 행 조회 효율
- •Column Store: 열 단위 연속 저장, OLAP 최적화, 집계/스캔 빠름, 압축 효율
장점
- •I/O 감소: 필요 컬럼만 읽기(SELECT col1, col2 FROM 100컬럼 테이블 → 2% I/O)
- •높은 압축률: 동일 타입 연속 저장(10~20배 압축), Run-Length, Dictionary Encoding
- •벡터화 처리: CPU SIMD 명령어 활용, 배치 처리, 캐시 효율
- •집계 최적화: SUM, AVG, COUNT 등 컬럼 전체 스캔 빠름
단점
- •단일 행 조회 비효율(전체 컬럼 분산 저장)
- •INSERT/UPDATE 느림(컬럼별 분산 쓰기)
- •OLTP 부적합
압축 기법
- •Run-Length Encoding: 연속 동일 값 압축, 정렬된 데이터 효과적
- •Dictionary Encoding: 문자열을 정수 매핑, 카디널리티 낮은 컬럼
- •Bit-Packing: 작은 정수 비트 단위 압축
- •Delta Encoding: 연속 값 차이만 저장, 시계열
대표 제품: ClickHouse, Vertica, Amazon Redshift, Google BigQuery, Apache Parquet(파일 포맷)
적용사례: 데이터 웨어하우스, OLAP 분석, 대시보드, Ad-hoc 쿼리, 로그 분석
기술요소: Column Store, 압축(RLE, Dictionary), 벡터화, 파티셔닝, Zone Map
비교: Column Store(OLAP/압축/스캔) vs Row Store(OLTP/단일행/트랜잭션)
연관: OLAP, 데이터 웨어하우스, Parquet, ORC, 벡터화 실행, ClickHouse