내 잡다한 노트
OLAP와 OLTP란? 본문
**OLTP(Online Transaction Processing)**와 **OLAP(Online Analytical Processing)**는 데이터베이스 활용 관점에서 서로 다른 목적과 특징을 가진 두 가지 대표적 워크로드(Workload) 유형입니다.
아래에서는 각각의 정의, 특징, 대표적인 사용 사례, 그리고 서로 다른 점을 자세히 정리해보겠습니다.
1. OLTP(Online Transaction Processing)
1) 개념
- OLTP는 주로 온라인 서비스/업무에서 발생하는 실시간 트랜잭션을 처리하는 데 초점을 맞춘 시스템입니다.
- 예: 전자상거래 주문 처리, 은행 계좌 이체, 항공권 예약, 증권 매매 등.
2) 주요 특징
- 트랜잭션 지향(ACID 보장)
- 데이터를 다루는 과정에서 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability) 등의 트랜잭션 특성을 엄격하게 지킵니다.
- 예) 결제 트랜잭션 중 하나라도 실패하면 모든 작업이 롤백(취소)되어야 함.
- 짧고 빈번한 쿼리
- 대부분 INSERT/UPDATE/DELETE 같은 쓰기 연산과, 개별 행(또는 소수의 행)에 대한 빠른 조회가 많습니다.
- 한 번의 쿼리가 처리하는 데이터 범위가 적고, 결과도 소량인 경우가 많습니다.
- 높은 동시성(Concurrency)
- 다수의 사용자가 동시에 시스템에 접속해 읽기/쓰기를 수행하기 때문에, DB가 동시 트랜잭션 처리를 위해 잠금(lock)·트랜잭션 격리 수준 등을 잘 관리해야 합니다.
- 빠른 응답 시간(Response Time)
- OLTP 시스템은 실시간성이 중요하므로, 한 쿼리에 대해 몇 초 이상 걸리는 것은 비즈니스적으로 문제가 될 수 있습니다.
- 일반적으로 수 ms ~ 수십 ms 단위의 빠른 응답이 요구됩니다.
- 정규화(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) 주요 특징
- 주요 목적: 분석/통계/집계
- OLAP 시스템에서는 SELECT 쿼리가 대부분이며, 대규모 데이터를 대상으로 복잡한 조인, 집계, 통계, 그룹화 등을 수행합니다.
- 결과는 리포트나 대시보드, 예측 모델 등에 활용됩니다.
- 대규모(대용량) 데이터 처리
- OLAP은 보통 수십 GB ~ 수 TB/PB에 달하는 방대한 데이터를 한꺼번에 조회하고 요약합니다.
- 쿼리 실행 시간이 수 초~수 분 이상 걸리는 경우도 흔합니다(물론 기술 발전으로 점점 빨라지긴 했습니다).
- 소비되는 자원(Resource) 많음
- 복잡한 집계·분석 쿼리를 효율적으로 처리하기 위해, MPP(Massively Parallel Processing) 아키텍처, 분산 스토리지, 컬럼 지향 등의 기술을 활용합니다.
- CPU·메모리·디스크 I/O를 많이 사용하며, 수평 확장(Scale-Out)을 고려해야 하는 경우가 많습니다.
- 스키마 설계: 차원 모델링(Dimensional Modeling)
- OLTP처럼 정규화된 스키마보다는, 스타 스키마(Star Schema), 스노우플레이크 스키마(Snowflake Schema) 같은 차원 모델링을 주로 사용합니다.
- 분석 효율과 이해도를 높이기 위해, 사실 테이블(Fact Table)과 차원 테이블(Dimension Table)을 구분하는 식입니다.
- 적재(ETL)와 배치 처리
- OLAP 시스템은 OLTP 시스템에서 생성된 데이터를 정기적으로(배치) 옮겨와 적재(ETL/ELT)하고, 그 후 분석 쿼리를 수행하는 경우가 전형적이었습니다.
- 최근엔 실시간 분석을 요구하는 사례도 늘어서 스트리밍 파이프라인이 도입되기도 합니다.
3) 대표적인 DB 및 사용 사례
- 데이터 웨어하우스(DW) / BI 시스템:
- 예: Amazon Redshift, Google BigQuery, Snowflake, ClickHouse, Apache Druid, Vertica 등.
- 기업에서 매출·영업·고객 데이터를 종합 분석해 의사결정에 활용하거나, 로그 분석, 마케팅 캠페인 성과 분석, 머신러닝 전처리 등에 주로 사용됩니다.
3. OLTP vs. OLAP, 차이점 요약
구분OLTPOLAP
주된 목적 | 실시간 트랜잭션 처리 (입출금, 주문, 예약 등) | 대규모 데이터 집계·분석 (비즈니스 인텔리전스/통계 등) |
데이터 크기 | 상대적으로 소규모~중간 규모, 자주 업데이트 | 거대 규모(GB |
쿼리 특성 | 짧고 빈번한 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 |