데이터 엔지니어로써 OLAP와 OLTP의 차이를 이해하고 이를 실무에서 효과적으로 활용할 수 있는 능력은 굉장히 중요하다고 생각한다. 따라서 글로 정리하며 OLAP와 OLTP의 차이를 깊이있게 파악하고 실제 업무에 적용하면 효율적인 데이터 관리 및 분석을 할 수 있을 거 같다.
데이터 처리 방식
기업은 데이터를 효과적으로 의사 결정에 활용하기 위해 여러 노력을 한다. 이를 위해 많은 조직이 OLTP(Online Transaction Processing)와 OLAP(Online Analytical Processing)라는 두 가지 중요한 데이터 처리 방식을 적절히 도입한다. 이번 글에서는 OLTP와 OLAP의 공통점을 살펴보고 각각의 특징과 차이점에 대해 알아보자.
공통점
먼저, 공통점부터 살펴보면 OLAP(온라인 분석 처리)와 OLTP(온라인 트랜잭션 처리)는 모두 대용량 데이터를 저장하고 처리하기 위한 데이터베이스 관리 시스템이다. 이 시스템을 원활하게 운영하려면 효율적이고 안정적인 IT 인프라가 뒷받침되어야 한다. 둘 다 기존 데이터를 쿼리하거나 새 데이터를 저장하는 데 사용할 수 있고 조직의 데이터 기반 의사 결정하는데 도움을 준다.
따라서 대부분의 회사에서는 OLTP와 OLAP 시스템을 함께 사용한다.
차이점
OLAP의 기본적인 목적은 집계된 데이터를 분석하는 것이고, OLTP의 목적은 데이터베이스 트랜잭션을 처리하는 것이다.
OLAP 시스템은 보고서를 생성하고 복잡한 데이터 분석을 수행하며, 추세를 식별하는 데 사용된다. 반대로 OLTP 시스템은 주문을 처리하고 재고를 업데이트하며, 고객 계정을 관리하는 데 사용된다.
세세한 차이점을 살펴보기 전에 사용 예시를 보며 친숙해져 보자.
전자상거래 회사 A는 온라인으로 제품을 판매하는 회사이다. 고객이 웹사이트를 통해 주문을 하면 OLTP 시스템이 작동하여 주문을 즉시 처리한다. 이 과정에서 주문은 데이터베이스에 기록되고 재고는 실시간으로 갱신된다. 주문, 결제, 배송 등의 트랜잭션은 OLTP를 통해 신속하게 처리되어 고객이 원활한 쇼핑을 할 수 있다. 동시에 OLAP 시스템을 활용하여 판매 데이터를 분석하고 비즈니스 결정에 활용한다. 일정 기간 동안의 제품 판매 추이, 인기 제품, 지역별 판매 현황 등 다양한 차원으로 데이터를 구성한다. 이를 통해 A기업은 효과적인 마케팅 전략을 수립하거나 재고를 최적화 할 수 있다. 또한, 예측 분석을 통해 향후 수요를 예측하고 재고를 관리하는 데 도움이 된다.
느낌이 오는가? OLTP는 실제 비즈니스 활동을 지원하고 OLAP는 비즈니스 활동에 대한 평가 및 분석하는 데 쓰인다. 이 개념을 가지고 있다면 여러 기준에 따른 차이점을 이해하는 데 어렵지 않을 것이다.
기준 | OLTP | OLAP |
목적 | 실시간 트랜잭션을 관리하고 처리 | 대용량 데이터를 분석 |
주 트랜잭션 형태 | SELECT, INSERT, UPDATE, DELETE | SELECT |
데이터 구조 | 관계형 데이터베이스 | 다차원(큐브) 또는 관계형 데이터베이스 |
데이터 규모 | 기가바이트(GB) 정도 | 테라바이트(TB) 혹은 페타바이트(PB) |
응답 시간 | 일반적으로 밀리초 단위 | 초 또는 분 단위 |
데이터 표현 시간 | 실시간 | 과거 |
최적화 방법 | 트랜잭션 효율화, 무결성 극대화 | 조회 속도, 정보의 가치 |
예시 시스템 | Oracle, MySQL | snowflake, athena |
OLTP는 데이터 쓰기 작업에 우선 순위를 둔다. 쓰기 작업이 많은 워크로드에 최적화 되어 있으며 데이터 무결성을 손상시키지 않으면서 대용량 트랜잭션 데이터를 잦은 빈도로 업데이트 할 수 있다. 반면에 OLAP는 데이터 쓰기 보다는 데이터 읽기에 우선 순위를 둔다. 분석이 주 목적이기 때문에 가용성은 우선 순위가 낮다.
※ 가용성: 시스템이 사용자에게 지속적으로 서비스를 제공할 수 있는 정도. 시스템이 얼마나 신속하게 응답하고, 장애가 발생했을 때 얼마나 빠르게 회복되는지 측정하는 성능 지표 중 하나.
→ 이는 곧 응답시간과 직결된다. 목적과 같은 이유로 OLTP는 수초 이내로 응답하고 OLAP는 수초 이상 수분 이내 응답한다.
OLAP 시스템은 다차원 데이터 모델이 사용되므로 동일한 데이터를 다양한 각도에서 볼 수 있다. OLAP 데이터베이스는 데이터를 큐브 형식으로 저장한다. 큐브 형식에서 각 차원은 서로 다른 데이터 속성을 나타낸다. 큐브의 각 셀은 차원의 교차에 대한 값 또는 측정값을 나타낸다. 반면에 OLTP 시스템은 일차원적이며 한 가지 데이터 측면에 중점을 둔다. 관계형 데이터베이스를 사용하여 데이터 테이블로 구성한다. 테이블의 각 행은 엔터티 인스턴스를 나타내고 각 열은 엔터티 속성을 나타낸다.
※ 큐브는 여러 차원을 포함하는 데이터 구조로, 각 차원은 서로 다른 데이터 속성을 나타낸다. 예를 들어, 시간, 제품, 지역이라는 차원이 있다면 시간 차원은 월, 분기, 연도와 같은 시간 관련 속성을 갖고, 제품 차원은 제품 카테고리, 브랜드 등의 제품과 관련된 속성을 갖게 된다. 이렇게 여러 차원이 교차하여 다양한 관점에서 데이터를 표현할 수 있다.
기업에서는 OLTP와 OLAP 시스템을 적절히 선택하여 사용한다. 이 중 OLTP가 OLAP 보다 먼저 선행되기 때문에 OLTP 시스템에서의 가용성과 정확성, 무결성이 굉장히 중요하다. 이를 바탕으로 OLAP 시스템으로 데이터를 분석하기 때문에 OLAP 에서는 사용자가 원하는 정보를 잘 표현하는 것이 중요하다.
참고: https://aws.amazon.com/ko/compare/the-difference-between-olap-and-oltp/