OLTP, OLAP 비교
- Development/Database
- 2021. 4. 26.
용어비교
OLTP와 OLAP는 종종 세트로 인용되곤 한다. 본 포스트에서는 이 두 단어의 각각의 개념과 차이점을 정리한다. 두 단어는 각각 아래와 같은 의미를 지닌다.
- OLTP: Online Transaction Processing
- OLAP: Online Analytical Processing
OLTP: Online Transaction Processing
운영계 데이터 및 데이터를 처리하는 방법을 뜻한다. 보통 OTLP는 원천 데이터를 뜻하기에, 예전에는 주로 RDBMS 기반의 시스템을 근간으로 했으나, 요새는 굳이 RDBMS여야 한다는 강제성을 넘어, 데이터를 어떻게 처리하느냐의 관점에 보다 주안점을 두기 때문에 NoSQL을 바탕으로 하더라도 데이터의 성격이 운영계의 성격을 지닌다면 OLTP로 분류할 수도 있다.
- 비교적 작은 규모의 트랜잭션들로 구성되어 있다.
- CRUD와 관련된 쿼리들이 주를 이룬다.
- 전통적인 DBMS들이 주로 사용된다.
- 가급적이면 데이터간의 구조를 잘 정리하려고 노력한다.
OLAP: Online Analytical Processing
분석계 데이터 및 데이터를 처리하는 방법을 뜻한다. 분석을 통해, BI(Business Intelligence)와 연계하여 어떤 지표를 뽑거나, 리포트를 생산하고, 의사결정을 하는데 도움을 줄 수 있다.
- 대용량 데이터를 다룬다.
- 통계/집계 등의 복잡한 쿼리들이 주를 이룬다.
- Datawarehose를 구축한다.
- 데이터가 어느정도 중복이 되더라도 별 상관없다. 일단 많은 데이터를 모은다.
맺음말
OLTP와 OLAP에 대해 다음과 같이 정리해 본다.
쉽게 외우기
헷갈리면 유츄하기 쉬운 단어를 기준으로 삼자. OL_P에서 A냐 T냐 인데, A = analysis(분석)이 좀더 쉽게 와 닿는다. 보통 운영계와 분석계는 분리한다. A가 들어가는 것이 분석계이고, 나머지는 운영을 위한 데이터이다.
상호보완적인 관계
운영 DBMS에 분석 쿼리를 돌린다고 생각해 보자. 분석을 위해 대용량 쿼리를 실행하느라 장애가 발생할 것이다. 운영 DBMS는 서비스 운영에 포커스를 두어야 한다. 반대로, 분석을 위한 데이터가 내 시스템에서 나온 데이터 만으로 커버 가능하리라는 보장은 할 수 없다. 결국, 분석계는 여러 시스템으로부터 더 많은 데이터가 모이는 곳이 되어야 하고, 보다 큰 규모의 데이터를 다뤄야 한다. 게다가 대규모 분석 작업을 수행하더라도, 두 시스템이 분리가 되어 있으면 장애가 발생하는 상황을 피할 수도 있다. OLTP가 원천 데이터의 제공처이며, ETL 작업을 통해 OLAP에 데이터를 제공해 준다. OLTP와 OLAP는 서로 추구하는 바는 다르지만, 상호 보완적이다.
'Development > Database' 카테고리의 다른 글
MySQL auto_increment 값 조정 /초기화 하려면? (0) | 2021.11.27 |
---|---|
MySQL, PostgreSQL - Y2K38(Year 2038) 버그 여부 확인 (0) | 2021.05.31 |
MySQL 타입비교 - datetime vs. timestamp (0) | 2021.05.24 |
MySQL Time Zone 변경 방법 (0) | 2021.05.17 |
PostgreSQL - 트랜잭션 격리 수준(transaction isolation level) 테스트 (0) | 2021.04.17 |
PostgreSQL에서 auto_increment는? (0) | 2021.04.15 |
PostgreSQL 트랜잭션 격리수준 확인/변경 (0) | 2021.04.10 |
MySQL - 트랜잭션 격리 수준 (transaction isolation level) 테스트 (0) | 2021.04.04 |