OLTP와 OLAP(DW/BI) 비교하기

생각하는 마리오네트·2024년 4월 11일
0

DW/BI

목록 보기
1/5

OLTP 와 OLAP

OLTP(Online Transaction Processing)

OLTP란 말 그대로 온라인 트랜잭션 처리를 말합니다. 좀 더 자세히 말하면 네트워크상에 있는 온라인 사용자들의 Database에 대한 일괄 트랜잭션처리를 뜻합니다.

이때 트랜잭션(Transaction)이란 "단일한 논리적인 작업단위"라고도 하며, 논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든것입니다.

예를들어볼까요?

"마리오뱅크"에서 A와 B가 돈을 주고 받는 상황이 있다고 가정하겠습니다.
A와 B의 잔고에는 각각 100만원씩 존재하는 상황에서 A가 B에게 10만원을 이체하게 된다면 내부적으로 A의 잔고에서 기존 잔고에서 10만원을 마이너스 하고, B의 잔고에서 10만원을 더하게 되는 작용이 일어납니다. 이때 A의 잔액과 B의 잔액은 모두 변화가 있어야 정상적인 거래가 이루어졌다고 말할 수 있습니다.

위의 과정을 간단한 쿼리로 만들어보면 아래와 같습니다.

  1. A 계좌의 변화
UPDATE account SET balance = balance - 100000 WHERE id = 'A';
  1. B 계좌의 변화
UPDATE account SET balance = balance + 100000 WHERE id = 'B';

1번과 2번 모두가 이루어져야 정상적으로 거래가 되는것이며,
만약에 A는 마이너스가 되었지만 B계좌에서 돈이 들어온 쿼리가 작동하지않았다면 이는 큰 문제가 발생하게 된것입니다.

즉, 여러 SQL문들을 단일작업으로 묶어서 나눠질 수 없게 만든 이러한 작업 단위를 트랜젝션이라고합니다.
(transaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않는다.)

OLAP(Online Analytical Processing)

OLAP란 Database자체적으로 운용되는 시스템이라기 보다는 DW(데이터웨어하우스)등의 시스템과 연관되어 데이터를 분석하고 인사이트를 얻고, 복잡한 모델링을 가능하게하는 분석 방법론을 의미합니다.

기능에 중점을 둔 OLTP와는 다르게 사용하는 목적과 주제에 중점을 두었다는 점에서 차이가 있습니다.
이러한 특성 때문에 주로 대용량 데이터에 대해 처리하고 복잡한 Data Processing으로 의미를 추출하는데 중심이 됩니다.

그렇다면 여기서 OLTP와 OLAP에서 주로 쓰는 쿼리문의 차이를 유추해 볼 수 있습니다.
OLTP의 경우는 Transaction과정에서 INSERT/UPDATE를 통해 기능을 수행하는 쿼리 중점으로 사용되며 OLAP의 경우 SELECT를 통해 추출에 중점을 둡니다.

OLTP와 DW(데이터 웨어하우스)비교

항목OLTP 데이터베이스데이터 웨어하우스
트랜잭션 유형INSERT, SELECT, UPDATE, DELETESELECT
트랜잭션 형태사전에 정의된 형태 : 예측가능하며 변하지 않음Aa-Hoc : 예측이 불가능하며 수행시마다 변함
최적화데이터 갱신 효율성과 쓰기 일관성에 최적화됨쿼리 성능과 사용 편의성에 최적화됨
데이터 갱신 빈도실시간(즉시 갱신)ETL(일정에 따른 주기적 수행, 실시간 수행과 유사한 빈도로 수행되는 방향으로 변하는 추세)
이력데이터 사용 방식현재 및 최근 데이터 사용현재 및 과거 수년치 데이터 사용
트랜잭션당 조인 참여 테이블작음(1~3개)많음(10개이상)}
데이터 크기기가바이트 ~ 테라바이트테라바이트 ~ 페타바이트
사용 데이터 형태대부분 원본데이터 사용상세 데이터, 요약데이터, 파생 데이터 사용
디자인 기법객체 관계(Entity-Relationship, ER)모델링(정규화)디멘션(Dimension)모델링
데이터 모델 다이어그램ER다이어그램스타 스키마
profile
문제를해결하는도구로서의"데이터"

0개의 댓글