294. OLTP vs OLAP

핵심 인사이트 (3줄 요약)

  1. 본질: OLTP(On-Line Transaction Processing)는 일상적业务 트랜잭션을 실시간 처리하는 시스템이고, OLAP(On-Line Analytical Processing)는 대규모 데이터를 분석하여 의사결정을 지원하는 시스템이다. 둘은 목적, 설계, 성능 지표가根本적으로 다르다.
  2. 가치: OLTP는业务 운영의 지속性을, OLAP는 데이터 기반洞見의 확보를 담당하며, 기업 데이터 인프라에서 상호 보완적 역할을 수행한다.
  3. 융합: DW, RDBMS, NoSQL, 스타 스키마, ETL, 파티셔닝, 인덱싱, 컬럼형 저장소와 밀접하게 연관된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

개념 정의

OLTP(On-Line Transaction Processing)와 OLAP(On-Line Analytical Processing)는 데이터베이스 및 데이터 처리 시스템에서 가장 fundamental한 구분이다. OLTP는 은행 ATM 거래, 온라인 쇼핑 주문, 재고 更新 등 일상적业务 트랜잭션(Transaction)을 실시간으로 처리하는 시스템이고, OLAP는 이러한 OLTP 시스템에서 축적된 데이터를 기반으로 "이번 분기 매출은?", "고객層別 구매 패턴은?" 같은 분석 질의를 수행하여 경영진을 지원하는 시스템이다. OLTP의 축적된 데이터가 OLAP의 분석原料가 되고, OLAP의洞見이 OLTP业务改善에 활용되는 상호 보완적 관계이다.

필요성

OLTP 시스템은日常業務 운영에 필수적이며, 수천~수만 명의 직원이 동시에 접속하여短い 응답 시간(수 밀리초~수 초) 내에 트랜잭션을 완료해야 한다. 반면, OLAP 시스템은月말 보고서, 분기별业绩 분석, 연간趋势 파악 등 strategic한 의사결정을支援하며, 복잡한 집계 查询이 数분~수 십 분 소요되더라도 감수할 수 있다. 이 두 가지 workloads는根本적으로 다른 특성(Workload characteristics)을 가지므로,同一 시스템에서 모두 처리하면 성능과 비용 효율성 모두에서 손해를본다. 따라서 OLTP와 OLAP는 분리된 환경에서 각각 최적화된 형태로 구축되는 것이 industry standard이다.

배경

1990년대 이전에는 OLTP 시스템의 데이터를 그대로 분석에 활용하는 경우가 많았으나, 분석 查询이 OLTP 성능에 심각한 영향을 미치는 问题로 대두됐다. 이에 따라 데이터 웨어하우스(DW)와 OLAP의 개념이 등장하여, OLTP 시스템의 데이터를 별도 분석 시스템으로抽取하여分析용으로 최적화된 구조로 변환하는 것이 표준이 되었다. 이후 OLTP 특화 데이터베이스(RDBMS), OLAP 특화 데이터베이스(_COLUMNAR Store, DWアプライアンス), Hybrid HTAP(OLTP+OLAP) 등 시스템도 등장하여,工作負荷에 맞는 선택지가 다양해졌다.

비유

OLTP와 OLAP의 관계는大型병원에서의 응급실(OLTP)과 건강검진센터(OLAP)의 관계와 같다. 응급실(OLTP)은 언제든 환자가 오면即時 진료하고, 순간적인 판단과 빠른 대응이 생명이다. 건강검진센터(OLAP)는 여러 해에 걸친 환자 데이터를 종합적으로 분석하여"당뇨 발병 위험률이 상승추세"같은洞見을 제공하고, 이를 토대로 향후 병원 운영 전략을 세우는 데 활용된다. 두 부서는 같은 병원 소속이지만 업무 내용과 측정 지표가 다르듯, OLTP와 OLAP도 같은 데이터이지만 목적과 최적화가 다르다.

📢 섹션 요약: OLTP는 실시간 트랜잭션 처리, OLAP는 데이터 분석 및 의사결정 지원이 목적이며, 둘은工作負荷 특성, 시스템 설계, 성능 지표가根本적으로 다르므로 분리 운영하는 것이 표준이다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

OLTP vs OLAP 핵심 비교

┌─────────────────────────────────────────────────────────────────────────────┐
│                    OLTP vs OLAP 핵심 비교                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌──────────────────┬────────────────────────┬────────────────────────┐     │
│  │      특성         │         OLTP           │         OLAP           │     │
│  │                  │ (On-Line Transaction    │ (On-Line Analytical    │     │
│  │                  │       Processing)      │      Processing)      │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 목적             │日常業務 트랜잭션 처리    │ 데이터 분석/의사결정 지원 │     │
│  │                  │ (Operation)            │ (Analysis)              │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 처리 유형        │ 짧은 트랜잭션           │ 복잡한 집계 查询         │     │
│  │                  │ (Insert/Update/Delete) │ (Select, Aggregate)    │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 작업 단위        │ 단일 트랜잭션            │ 수십 GB~TB 단위 查询     │     │
│  │                  │ (수십~수백 행)          │                        │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 응답 시간        │ 수 밀리초~수 초         │ 수 초~수 십 분          │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 동시 사용자      │ 수천~수만 명            │ 수백 명 (분석가/경영진)  │     │
│  ├────────────────__┼────────────────────────┼────────────────────────┤     │
│  │ 데이터량         │ 수백 GB ~ 수 TB         │ 수 TB ~ 수 PB           │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 데이터 모델       │ 정규화 (3NF)           │ 차원 모델링              │     │
│  │                  │ (제2/3정규형)          │ (스타/스노우플레이크)    │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 인덱스           │ B-Tree (단일/결합)      │ 분석 특화 (BitMap,       │     │
│  │                  │                        │  Columnar)              │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 저장 방식        │ 로우 기반 (Row Store)   │ 컬럼 기반 (Columnar)    │     │
│  │                  │                        │ 또는 하이브리드           │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 스키마 접근      │ 쓰기 시 스키마          │ 읽기 시 스키마           │     │
│  │                  │ (Schema-on-write)      │ (Schema-on-read)       │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 트랜잭션        │ 완전한 ACID            │ 분석용 약화 일관성        │     │
│  │                  │ (Strict ACID)         │ (Eventual/Bounded)     │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 쿼리 패턴        │简单高频 (Point query)   │ 복잡低频 (Full scan,     │     │
│  │                  │                        │  JOIN, Aggregate)       │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │バックアップ        │ 자주 (实时/일별)        │ 불규칙 (주분별)          │     │
│  ├──────────────────┼────────────────────────┼────────────────────────┤     │
│  │ 성능 지표        │ TPS (Transaction/sec) │ 쿼리 응답 시간           │     │
│  │                  │                        │ 대시보드 로딩 시간        │     │
│  └──────────────────┴────────────────────────┴────────────────────────┘     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

OLTP와 OLAP의 데이터 흐름

┌─────────────────────────────────────────────────────────────────────────────┐
│                    OLTP → ETL → OLAP 데이터 흐름                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│       ┌──────────────────────────────────────────────────────────────┐    │
│       │                         OLTP 영역                               │    │
│       │  ───────────────────────────────────────────────────────────  │    │
│       │                                                                │    │
│       │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │    │
│       │  │   ERP    │  │   CRM    │  │   SCM    │  │   POS    │   │    │
│       │  │          │  │          │  │          │  │          │   │    │
│       │  │ OLTP DB  │  │ OLTP DB  │  │ OLTP DB  │  │ OLTP DB  │   │    │
│       │  └──────────┘  └──────────┘  └──────────┘  └──────────┘   │    │
│       │                                                                │    │
│       │  특성: 정규화, B-Tree 인덱스, 로우 스토어, 짧은 트랜잭션          │    │
│       └───────────────────────────┬────────────────────────────────────┘    │
│                                   │                                         │
│                                   │ 실시간/배치 추출                         │
│                                   │ (CDC, 로그 기반)                         │
│                                   ▼                                         │
│       ┌──────────────────────────────────────────────────────────────┐    │
│       │                         ETL / ELT                             │    │
│       │  ───────────────────────────────────────────────────────────  │    │
│       │                                                                │    │
│       │  Extract ──── Transform ──── Load                          │    │
│       │  • 데이터 정제 (Cleansing)                                  │    │
│       │  • 인코딩 통일 (Encoding)                                    │    │
│       │  • 차원 모델 변환 (스타 스키마)                              │    │
│       │  • SCD 처리 (이력 관리)                                     │    │
│       │                                                                │    │
│       └───────────────────────────┬────────────────────────────────────┘    │
│                                   │                                         │
│                                   │ 배치/준실시간 적재                        │
│                                   ▼                                         │
│       ┌──────────────────────────────────────────────────────────────┐    │
│       │                         OLAP 영역                               │    │
│       │  ───────────────────────────────────────────────────────────  │    │
│       │                                                                │    │
│       │  ┌──────────────────────────────────────────────────────┐   │    │
│       │  │               Data Warehouse (DW)                      │   │    │
│       │  │  ────────────────────────────────────────────────────│   │    │
│       │  │                                                              │   │    │
│       │  │   ┌─────────┐         ┌─────────┐         ┌─────────┐   │   │    │
│       │  │   │ Product │         │ Customer │         │  Time   │   │   │    │
│       │  │   │ Dimension│         │ Dimension │         │Dimension│   │   │    │
│       │  │   └─────────┘         └─────────┘         └─────────┘   │   │    │
│       │  │          │                                           │   │    │
│       │  │          │              ┌─────────────┐              │   │    │
│       │  │          └─────────────▶│    Sales   │              │   │    │
│       │  │                           │   Fact    │              │   │    │
│       │  │                           └─────────────┘              │   │    │
│       │  │                                                      │   │    │
│       │  └──────────────────────────────────────────────────────┘   │    │
│       │                                                                │    │
│       │  특성: 차원 모델, 컬럼 스토어, BitMap 인덱스, 장기 데이터      │    │
│       └───────────────────────────┬────────────────────────────────────┘    │
│                                   │                                         │
│                                   │ OLAP 查询                               │
│                                   ▼                                         │
│       ┌──────────────────────────────────────────────────────────────┐    │
│       │                    BI / Analytics 도구                         │    │
│       │  ───────────────────────────────────────────────────────────  │    │
│       │                                                                │    │
│       │  대시보드 | 보고서 | 데이터 마이닝 | 예측 분석                  │    │
│       │                                                                │    │
│       └──────────────────────────────────────────────────────────────┘    │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

HTAP: OLTP + OLAP 통합

┌─────────────────────────────────────────────────────────────────────────────┐
│                    HTAP (Hybrid Transaction/Analytical Processing)              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  [개념]                                                                     │
│  ─────                                                                     │
│  • OLTP와 OLAP를 단일 시스템에서 통합 처리하는 hybrid 아키텍처               │
│  • Real-time 분석 요구사항 증가에 따라 부상                                  │
│  • 예: 금융 사기 탐지, 추천 시스템, IoT 실시간 모니터링                      │
│                                                                             │
│  ┌────────────────┬──────────────┬──────────────┬──────────────┐         │
│  │     특성        │    OLTP     │    OLAP     │    HTAP      │         │
│  ├────────────────┼──────────────┼──────────────┼──────────────┤         │
│  │ 목적           │ 트랜잭션 처리  │ 분석 처리    │ 트랜잭션+분석 │         │
│  │ 지연 시간       │ 극低 (<10ms) │ 수 초~수십분 │ 低~중간       │         │
│  │ 일관성         │ Strict ACID  │ 결과적 일관성 │ 유연한 ACID   │         │
│  │ 데이터 fresh   │ 실시간       │ 배치/준실시간 │ 실시간       │         │
│  │ 확장성         │ 수평 확장    │ 수직 확장    │ 수평+수직 확장 │         │
│  └────────────────┴──────────────┴──────────────┴──────────────┘         │
│                                                                             │
│  [HTAP 제품 예시]                                                          │
│  ─────────────────                                                          │
│  • TiDB (PingCAP) - MySQL 호환 + 분석 확장 (HTAP)                         │
│  • SAP HANA - In-memory 기반 OLTP + OLAP 통합                             │
│  • Microsoft SQL Server (Hybrid) - 올인원                                 │
│  • Amazon Aurora (Zero-ETL) - Aurora → Redshift 자동 복제                 │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] OLTP와 OLAP는根本적으로 다른 workloads를 처리하므로, 전통적으로는 분리된 환경에서 각각 최적화된 형태로 구축된다. OLTP는 정규화된 로우 스토어, B-Tree 인덱스, 짧은 트랜잭션에 최적화되고, OLAP는 차원 모델의 컬럼 스토어, BitMap 인덱스, 긴 분석 쿼리에 최적화된다. 둘 사이의 데이터 흐름은 ETL/ELT를 통해 연결되며, CDC(Change Data Capture)를活用하면 준실시간 데이터 동기화도 가능하다. HTAP은 두 workloads를 단일 시스템에서 통합 처리하려는 시도이나, 극단적인 경우를除いてはまだ分離運用が標準である。

📢 섹션 요약: OLTP와 OLAP는目的, 설계,性能指標가根本적으로 다르므로 분리 운영하는 것이 표준이며, HTAP은 실시간 분석 필요성에 따른 새로운 접근이다.


Ⅲ. 결론

OLTP와 OLAP는 데이터 처리의 양대 축으로, 각각日常業務 운영과 데이터 기반 의사결정을 담당한다. OLTP는 짧은 트랜잭션, 높은 동시성, 저지연을要求하고, OLAP는 복잡한 집계, 대량 데이터, 분석 최적화를要求한다. 이 두 workloads는同一 시스템에서 모두 처리하면非효율적이므로, 전통적으로는 분리 운영되며 ETL/ELT 파이프라인으로 연결된다. 다만 HTAP(Hybrid Transaction/Analytical Processing)의 등장으로 OLTP와 OLAP를 단일 시스템에서 통합 처리하려는 시도도 활발해지고 있다.

📢 섹션 요약: OLTP와 OLAP는目的과 최적화가根本적으로 다른 두 workloads로, 전통적으로는 ETL 파이프라인으로 연결된 분리 시스템에서 운영되며, HTAP은 통합 처리 시도이다.


핵심 인사이트 ASCII 다이어그램 (Concept Map)

┌─────────────────────────────────────────────────────────────────────────────┐
│                    OLTP vs OLAP Concept Map                                   │
│                                                                             │
│              ┌─────────────────────────────────────────┐                   │
│              │         OLTP vs OLAP                    │                   │
│              │   (Transaction vs Analysis)             │                   │
│              └───────────────────┬─────────────────────┘                   │
│                                    │                                         │
│              ┌───────────────────┴───────────────────┐                    │
│              ▼                                       ▼                      │
│  ┌───────────────────────────┐   ┌───────────────────────────┐            │
│  │         OLTP             │   │         OLAP              │            │
│  │ (On-Line Transaction    │   │ (On-Line Analytical      │            │
│  │      Processing)         │   │      Processing)         │            │
│  │ ─────────────────────── │   │ ────────────────────────  │            │
│  │ • Real-time 트랜잭션     │   │ • 데이터 분석/의사결정    │            │
│  │ • 짧은 응답 (<초)        │   │ • 긴 응답 (수초~수십분)  │            │
│  │ • 고동시성               │   │ • 저동시성 (분석가/경영진)│            │
│  │ • 정규화+로우 스토어     │   │ • 차원모델+컬럼스토어    │            │
│  │ • TPS 성능 지표          │   │ • 쿼리 응답시간 지표     │            │
│  └───────────────────────────┘   └───────────────────────────┘            │
│                  │                                       │                  │
│                  │          ETL / ELT 연결               │                  │
│                  └───────────────────┬───────────────────┘                  │
│                                      ▼                                      │
│                        ┌───────────────────────────┐                      │
│                        │      HTAP (Hybrid)        │                      │
│                        │  (OLTP + OLAP 통합)      │                      │
│                        └───────────────────────────┘                      │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

참고

  • OLTP는 일상적业务 트랜잭션, OLAP는 데이터 분석이 목적이다.
  • OLTP는 짧은 응답, 고동시성, 정규화 모델을要求한다.
  • OLAP는 긴 분석 쿼리, 대량 데이터, 차원 모델을使用한다.
  • ETL 파이프라인으로 OLTP → OLAP 데이터 흐름이 연결된다.
  • HTAP은 OLTP와 OLAP를 단일 시스템에서 통합 처리하려는 시도이다.
  • 실무에서는 여전히 분리 운영이 표준이다.