내 잡다한 노트

OLAP와 OLTP란? 본문

DB

OLAP와 OLTP란?

peanutwalnut 2025. 1. 20. 13:39

**OLTP(Online Transaction Processing)**와 **OLAP(Online Analytical Processing)**는 데이터베이스 활용 관점에서 서로 다른 목적과 특징을 가진 두 가지 대표적 워크로드(Workload) 유형입니다.
아래에서는 각각의 정의, 특징, 대표적인 사용 사례, 그리고 서로 다른 점을 자세히 정리해보겠습니다.


1. OLTP(Online Transaction Processing)

1) 개념

  • OLTP는 주로 온라인 서비스/업무에서 발생하는 실시간 트랜잭션을 처리하는 데 초점을 맞춘 시스템입니다.
  • 예: 전자상거래 주문 처리, 은행 계좌 이체, 항공권 예약, 증권 매매 등.

2) 주요 특징

  1. 트랜잭션 지향(ACID 보장)
    • 데이터를 다루는 과정에서 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability) 등의 트랜잭션 특성을 엄격하게 지킵니다.
    • 예) 결제 트랜잭션 중 하나라도 실패하면 모든 작업이 롤백(취소)되어야 함.
  2. 짧고 빈번한 쿼리
    • 대부분 INSERT/UPDATE/DELETE 같은 쓰기 연산과, 개별 행(또는 소수의 행)에 대한 빠른 조회가 많습니다.
    • 한 번의 쿼리가 처리하는 데이터 범위가 적고, 결과도 소량인 경우가 많습니다.
  3. 높은 동시성(Concurrency)
    • 다수의 사용자가 동시에 시스템에 접속해 읽기/쓰기를 수행하기 때문에, DB가 동시 트랜잭션 처리를 위해 잠금(lock)·트랜잭션 격리 수준 등을 잘 관리해야 합니다.
  4. 빠른 응답 시간(Response Time)
    • OLTP 시스템은 실시간성이 중요하므로, 한 쿼리에 대해 몇 초 이상 걸리는 것은 비즈니스적으로 문제가 될 수 있습니다.
    • 일반적으로 수 ms ~ 수십 ms 단위의 빠른 응답이 요구됩니다.
  5. 정규화(Normalization)된 스키마
    • 데이터 무결성 유지와 중복 최소화를 위해, 관계형 DB의 경우 테이블이 정규화(3정규화 등)되어 세분화된 구조를 갖는 경우가 많습니다.
    • 이렇게 함으로써 UPDATE 시 불일치가 발생하는 리스크를 줄입니다.

3) 대표적인 DB 및 사용 사례

  • RDBMS(관계형 DB)가 전통적으로 OLTP를 주도해왔습니다.
    • 예: Oracle, MySQL, PostgreSQL, MS SQL Server 등.
  • 은행의 실시간 계좌 관리, 온라인 게임 결제 처리, 전자상거래 주문/결제 기록, 병원 접수/예약 시스템 등이 대표적 OLTP 사례입니다.

2. OLAP(Online Analytical Processing)

1) 개념

  • OLAP는 많은 양의 데이터를 분석하거나 **집계(aggregation)**하기 위한 워크로드로,
  • 주로 비즈니스 인텔리전스(BI), 데이터 마트/웨어하우스(DW) 분야에서 사용됩니다.

2) 주요 특징

  1. 주요 목적: 분석/통계/집계
    • OLAP 시스템에서는 SELECT 쿼리가 대부분이며, 대규모 데이터를 대상으로 복잡한 조인, 집계, 통계, 그룹화 등을 수행합니다.
    • 결과는 리포트나 대시보드, 예측 모델 등에 활용됩니다.
  2. 대규모(대용량) 데이터 처리
    • OLAP은 보통 수십 GB ~ 수 TB/PB에 달하는 방대한 데이터를 한꺼번에 조회하고 요약합니다.
    • 쿼리 실행 시간이 수 초~수 분 이상 걸리는 경우도 흔합니다(물론 기술 발전으로 점점 빨라지긴 했습니다).
  3. 소비되는 자원(Resource) 많음
    • 복잡한 집계·분석 쿼리를 효율적으로 처리하기 위해, MPP(Massively Parallel Processing) 아키텍처, 분산 스토리지, 컬럼 지향 등의 기술을 활용합니다.
    • CPU·메모리·디스크 I/O를 많이 사용하며, 수평 확장(Scale-Out)을 고려해야 하는 경우가 많습니다.
  4. 스키마 설계: 차원 모델링(Dimensional Modeling)
    • OLTP처럼 정규화된 스키마보다는, 스타 스키마(Star Schema), 스노우플레이크 스키마(Snowflake Schema) 같은 차원 모델링을 주로 사용합니다.
    • 분석 효율과 이해도를 높이기 위해, 사실 테이블(Fact Table)과 차원 테이블(Dimension Table)을 구분하는 식입니다.
  5. 적재(ETL)와 배치 처리
    • OLAP 시스템은 OLTP 시스템에서 생성된 데이터를 정기적으로(배치) 옮겨와 적재(ETL/ELT)하고, 그 후 분석 쿼리를 수행하는 경우가 전형적이었습니다.
    • 최근엔 실시간 분석을 요구하는 사례도 늘어서 스트리밍 파이프라인이 도입되기도 합니다.

3) 대표적인 DB 및 사용 사례

  • 데이터 웨어하우스(DW) / BI 시스템:
    • 예: Amazon Redshift, Google BigQuery, Snowflake, ClickHouse, Apache Druid, Vertica 등.
  • 기업에서 매출·영업·고객 데이터를 종합 분석해 의사결정에 활용하거나, 로그 분석, 마케팅 캠페인 성과 분석, 머신러닝 전처리 등에 주로 사용됩니다.

3. OLTP vs. OLAP, 차이점 요약

구분OLTPOLAP

주된 목적 실시간 트랜잭션 처리 (입출금, 주문, 예약 등) 대규모 데이터 집계·분석 (비즈니스 인텔리전스/통계 등)
데이터 크기 상대적으로 소규모~중간 규모, 자주 업데이트 거대 규모(GBTBPB), 데이터 누적 후 분석
쿼리 특성 짧고 빈번한 SELECT/INSERT/UPDATE/DELETE, 작은 범위 대규모 조인/집계/통계 쿼리, 복잡한 분석 로직
응답 시간 ms~초 단위, 즉각적인 응답이 중요 수 초~수 분(또는 더 긴)까지 가능, 빠른 쿼리라도 대체로 수 초 이상
ACID 트랜잭션 필수 (엄격한 일관성, 격리성 보장) 선택적 (주로 읽기 위주, 대규모 병렬 처리가 우선)
스키마 설계 정규화 중심 (중복 최소화, 무결성 확보) 차원 모델(스타 스키마 등), 컬럼 지향 스토리지로 읽기 최적화
주요 DB 유형 전통적 RDBMS (Oracle, MySQL, PostgreSQL, etc.) DW, Columnar DB (Redshift, BigQuery, Snowflake 등)
활용 사례 전자상거래, 금융 트랜잭션, 항공 예약, 병원 접수 등 BI 리포팅, 매출·마케팅 데이터 분석, 로그/트래픽 분석 등

4. HTAP(Hybrid Transaction/Analytical Processing) 동향

  • 최근에는 OLTP와 OLAP 경계를 허무는 시도가 많아지고 있습니다.
  • SAP HANA, SingleStore(옛 MemSQL), TiDB 등은 트랜잭션 + 분석을 하나의 엔진에서 동시에 처리(HTAP)하려고 시도합니다.
  • 전통적인 DB(예: Oracle, SQL Server)도 In-Memory 옵션, Columnstore Index 등을 추가해 실시간 분석 기능을 강화하고 있습니다.

, 완전한 HTAP 시나리오는 여전히 구현·운영이 복잡하고, “둘 다 잘하는” 시스템은 특정 상황에서 트레이드오프(Trade-off)가 있기 때문에,

  • 여전히 많은 기업에서는 OLTP DB와 **데이터 웨어하우스(OLAP DB)**를 분리하여 운영하는 방식을 택하기도 합니다.

 

 

OLAP와 OLTP의 관계

 

은행의 창구 업무나 항공사의 예약 업무 등이 전형적인 OLTP의 예라 하며, OLAP는 OLTP에서 발생한 원시 데이터를 활용할 수 있도록 가공하고 분석하는 과정을 뜻한다.

 

'DB' 카테고리의 다른 글

LSM Tree 란?  (0) 2025.01.20
Column형 DB란?  (0) 2025.01.20
DB에서 Join 이란?  (0) 2024.12.09
데이터 정규화(Normalization)  (0) 2024.12.09
Cache의 갱신 방식  (0) 2024.12.09