OLTP & OLAP

Kay(Geun Woo)
4 min readNov 29, 2023

--

앞서 OLAP와 OLTP에 대해 알아보았습니다. 두 개를 같이 이야기 해보기 전에 혹시나 두 개에 대한 포스트를 보지 않으셨거나 기억이 가물가물하신 분들을 위해 가볍게 두 시스템에 대한 설명을 다시 해보겠습니다.

OLAP(Online Analytics Processing)은 집계된 데이터를 분석하여 추세를 식별하고 보고서를 생성하는 시스템이고, OLTP(Online Transaction Processing)는 주문 처리, 재고 업데이트, 고객 계정 관리 등의 데이터베이스 트랜잭션을 처리하는 시스템입니다.

두 시스템의 기본적인 정의는 알아보았으니 이제 둘의 중요한 차이점에 대해서 알아보도록 하겠습니다.

OLAP vs. OLTP

데이터 형식 지정(Data Formatting)

OLAP : OLAP는 다차원 데이터 모델(큐브)을 사용합니다. 그래서, 같은 데이터를 다른 관점에서 볼 수 있습니다.

OLTP : OLTP는 관계형 데이터베이스를 이용하여 각 테이블에 데이터를 정리합니다.

데이터 구조(Data Architecture)

OLAP : OLAP는 수정/생성 등의 기능을 칭하는 쓰기(write) 기능보다 읽기(read)라고 칭하는 조회 기능이 더 중요시됩니다. 데이터를 조회하고 그 데이터로 분석을 “제대로” 해내는 것이 OLAP의 최우선 과제이기 때문에 그에 적합한 데이터 구조를 가집니다.

OLTP : OLTP는 쓰기(write) 기능이 읽기(read) 기능보다 중요합니다. 그래서, 빠른 속도로 한번에 많은 쓰기 작업을 해낼 수 있도록 만드는 것에 도움이 되는 데이터 구조를 가집니다.

성능(Performance)

OLAP : OLAP는 데이터의 타입이나 데이터의 양에 따라 짧게는 몇 분, 길게는 몇 시간씩 분석 작업을 하고 있을 수도 있습니다. 또한 데이터베이스를 업데이트 할 때는 정기적(매일, 매주, 매월, 혹은 그 이상)으로 데이터를 큰 덩어리(batch)로 나눈 다음 덩어리들을 한번에 시스템에 업로드하는 방식인 배치 프로세싱(Batch processing)이 사용됩니다.

  • 배치 프로세싱(Batch Processing)이란 특정 시간대에 정해진 양의 데이터가 처리되는 방식입니다.

OLTP : OLTP는 빨라야 합니다. OLTP의 작업 수행 속도가 길어질 시, 실제 고객들이 사용하는 서비스가 지연될 가능성이 높으므로 고성능이 요구됩니다. OLTP의 데이터베이스 업데이트(항목 수정)는 고객이나 사용자에 의해 트리거됩니다. 스트림 프로세싱(Stream processing)이 사용됩니다.

  • 스트림 프로세싱(Stream Processing)이란 실시간으로 데이터가 처리되는 작업이 수행되는 방식을 칭합니다.

하드웨어 요구 조건(Requirements)

OLAP : OLAP는 여러 Data warehouse와 관계형 데이터 베이스, 그 외 기타 시스템에서 데이터를 가지고 와야하기 때문에 용량이 크고 성능이 좋은 저장소 공간을 요구합니다. 저장소 크기는 보통 테라바이트(Tb : 1024⁴ bytes)~페타바이트(Pb : 1024⁵ bytes) 사이의 크기로 고려합니다.

OLTP : OLTP는 작업 수행 속도와 양이 중요하기 때문에 성능이 중요하지만 상대적으로 저장소의 크기는 중요하지 않습니다. OLTP 데이터베이스의 데이터는 OLAP 데이터베이스와 같은 다른 저장소로 옮겨지면 삭제되어도 상관 없기 때문이죠. 그래서 저장소 크기는 보통 기가바이트(Gb : 1024³ bytes) 이하의 크기로 고려합니다. 성능은 OLAP와 마찬가지로 고성능을 요구합니다.

그래서 왜 OLAP이랑 OLTP를 같이 얘기하는데요?

OLAP와 OLTP는 확실히 다릅니다. 둘이 용도도 다르고 요구 조건도 다르고 특징도 다릅니다. 그런데 왜 넷상에서는 이 둘을 항상 묶어서 이야기할까요? 그건 바로 이 둘이 합쳐지면 기업 입장에서 강력한 전략 수립 툴을 만들 수 있기 때문입니다. 기업들은 보통 OLTP에서 모은 트랜잭션 데이터와 기타 유용한 데이터를 추출(Extract)해서 OLAP 데이터베이스로 옮긴 다음 변환(Transform)합니다. 그리고 하이퍼 큐브나 관계형 데이터베이스에 분석 결과들을 저장하죠. 그럼 전략 수립 인원이 해당 결과물을 불러들여(Load) 적절한 전략을 만들어냅니다. 익숙한 단어들이죠? OLAP 포스트에서 설명한 ETL tool들이 이렇게 사용되는 것입니다. 아래는 인터넷에서 찾을 수 있는 OLTP 와 OLAP을 접합시킨 예시 도면입니다.

출처: https://www.programsbuzz.com/article/otlp-vs-olap-difference-between-otlp-and-olap

--

--