OLAP와 OLTP 정리

OLAP / OLTP

지난 7월 무렵 ADsP(데이터 분석 준전문가)를 공부하면서 들어봤던 용어이기도 하고, 종종 교육을 수강하면서 강사님들도 언급하셨던 용어이기도 하다. 역시나 자격증으로 공부를 해서 그런지 기억이 그리 오래가지 못하고, 그 이후로는 직접 마주할 일이 별로 없어 금방 잊어버리곤 했던 것 같다.

OLTP와 OLAP는 모두 데이터 관리를 위한 시스템이기는 하나, 목적과 용도가 달라 그 성질도 다르다. 각각 특징에 대해 알아보면 다음과 같다.

OLAP (On-line Analytical Processing)

'올랩'이라고 많이들 부르는 용어로 이용자가 직접 DB를 검색, 분석해서 문제점이나 해결책을 찾는 분석 애플리케이션 개념이다. 대규모 데이터를 이용한 질의 검색 시 발생한 대량의 결과값을 단순히 사용하기는 어렵다. 대부분 이 같은 질의는 복수의 데이터 정보 테이블을 기반으로 처리되고, 요약된 정보를 얻기 위해 연산 처리가 수반되어 장시간이 소요되기 때문이다. OLAP Tool 또는 OLAP Server는 온라인 검색을 지원하는 DW 지원 도구인데, 이 같은 대규모 연산이 필요한 질의를 고속으로 지원한다.

사용자들에게 데이터의 흐름을 다차원적인 구조로 빠르게 보여주고, 몇몇은 미리 계산된 값들을 제공함으로써 데이터에 대한 정보를 쉽게 제공하는 것을 목적으로 한다. OLAP 데이터 모델에서 정보는 차원과 관측된 데이터로 구성되어 있는 데이터 큐브 형태로 표현되며, 주로 스타 스키마라는 RDB 설계 기법을 이용하여 표현된다. 여기서 말하는 스타 스키마란 각 요소를 나타내는 테이블인 차원 테이블과 실제 데이터 요소를 값으로 가지는 변수 차원의 항목인 사실 테이블로 구성된 설계 기법이다.

OLAP의 주된 목적은 의사 결정 지원, 계획 및 문제 해결을 돕는 것이다. 또한 전산 부서와 같이 정보 매개자를 거치지 않고 운하는 정보에 직접 접근하는 것이다. 따라서 OLAP DB는 정규화 되어있지 않고, 파일을 중복시켜 분석 성능 향상에 집중되어 있어 처리 속도가 느린 편이다. 대표적인 서비스로 GCP의 Big Query가 있다.

OLTP (On-line Transaction Processing)

주 컴퓨터와 통신 회선으로 접속되어 있는 복수의 사용자 단말에서 발생한 트랜잭션을 주 컴퓨터에서 처리하여 그 결과를 즉석에서 사용자 단말로 되돌려 보내주는 처리 형태이다. 여기서 말하는 트랜잭션이란 단말에서 주 컴퓨터로 보내는 처리 단위 1회의 메시지로, 보통 여러 개의 DB 조작을 포함하는 하나의 논리 단위이다. 예를 들어, 데이터베이스 내의 어떤 표의 수치를 번경하는 경우, 그 표와 관련된 다른 표의 수치도 변경하지 않으면 데이터 무결성을 유지할 수 없다. 이런 경우 2개의 처리를 1개의 논리 단위로 연속해서 행해야 하는데, 이 논리 단위가 트랜잭션이다.

트랜잭션은 다음과 같은 속성을 가진다.

  • 원자성

하나의 트랜잭션을 구성하는 단위 작업들은 모두 수행되거나 그렇지 않아야 함

  • 일관성

하나의 트랜잭션이 수행되었을 때, 그 트랜잭션은 DB 일관성을 보장해야 함

  • 고립성

DBMS가 여러 트랜잭션을 동시에 수행시키는 경우, 트랜잭션들은 상호 간섭을 받지 않아야 함

  • 지속성

트랜잭션이 정상적으로 완료되었다면 설사 해당 변경 내용이 디스크 상에 반영되기 전에 시스템 장애가 일어나더라도 트랜잭션의 완료 효과는 계속적으로 유지되어야 함

OLTP의 주된 목적은 짧은 온라인 트랜잭션과 사용자에 대한 빠른 실시간 응답이다. 따라서 OLTP DB의 데이터는 매우 구조화되고 체계화되어 있으므로 속도, 성능, 안정성, 데이터 무결성 및 보안 측면에서 강하다. 또한 OLAP와 다르게 고도로 정규화 되어있어 데이터 중복성이 거의 없다. 덕분에 매우 빠른 쿼리 처리와 다중 액세스 환경에서의 데이터 무결성 유지가 가능하다는 점이 두드러진다. 대표적인 활용사례로 은행의 온라인 처리나 ATM, 좌석예약 등이 있겠다.

OLAP vs. OLTP

위 내용들을 기반하여 OLAP과 OLTP가 간략하고 잘 비교된 표가 있어 공유한다.

참고

Last updated