새소식

DataBase/Theory

쉽게 이해할 수 있는 OLTP와 OLAP성 쿼리의 차이

  • -

OLTP(On-Line Transaction Processing)

다수의 이용자가 실시간으로 데이터를 갱신하거나 조회하는 경우 트랜잭션 단위로 작업을 처리하는 방식을 말합니다.

 

간단한 예시로 은행의 업무를 예로

A라는 사람 통장의 돈 5000원을 B라는 사람에게 이체하는 방식을 살펴봅시다

 

1. A의 통장에서 5000원이 감소

2. B의 통장에 5000원이 증가

3. 명세표를 출력

 

이렇게 동작할때 1,2,3이 하나의 단위 프로세스로 처리가 되어야한다는 것을 의미합니다.

이러한 일련의 과정을 하나의 트랜잭션으로 묶고 

A의 통장에서 5000원이 감소하고 B의 통장에 5000원이 증가하기 전에 오류가 발생하게 되면

트랜잭션이 발생하기 전의 상황으로 돌아가게 되는 것입니다.

 

 

OLAP(On-Line Analytical Processing)

대용량 데이터를 빠르게 처리하며 다양한 관점에서 추출, 분석할 수 있도록 지원하는 방식입니다. 

 

가장 단순한 예로 기업의 실적데이터의 경우

제품의 생산요청->생산계획->생산실적->생산입고의 프로세스를 가정하면

생산요청의 관점에서 해당 제품이 생산계획/ 생산실적/ 생산입고 각각의 프로세스가 진행되었는지 확인을 할 수 있도록 전체 프로세스를 통합하여 기업의 전반적인 상황을 이해하고 의사 결정 할 수 있도록 돕습니다.

 

단순하게 생각하면 생산 요청/ 계획/ 실적/ 입고 등이 각각의 단위로 존재하기 때문에 생산 실적에서 오류가 발생할 경우 생산요청 전으로 돌아가는게 아니라 생산 실적 단에서 처리가 되는 것입니다.

 

 

OLTP와 OLAP의 차이점

 

OLTP

  • 효율적인 업무 처리 기반
  • 트랜잭션 단위로 처리하기 때문에 소규모의 정교하고 일관된 데이터 처리가 중점(입력, 조회, 수정, 삭제)
  • 제한된 Index가 생생되었을 때 최고의 성능을 발휘 (데이터가 변화할 때 Index가 같이 수정되기 때문에 트랜잭션 LOCK에 의해 성능이 저하)

OLAP

  • 사용하는 목적과 주제에 대한 분석 기반
  • 서로 복잡한 이해관계로 얽혀있는 대용량 데이터 처리 및 추출이 중점 (조회, 제한적 입력, 수정)
  • 가능한 많은 Index가 존재 할수록 최고의 성능을 발휘(인덱스 수정에 대해서는 고려하지 않음)
  • 제한된 Index가 생성되었을 때 최고의 성능을 발휘 (데이터가 변화할때 index가 같이 수정되기 때문에 트랜잭션 LOCK에 의해 성능이 저하)

질문에 대한 댓글은 언제나 환영입니다~^^

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.