OLTP와 OLAP는 자칫 같은 관점에서 대조되는 용어로 보일 수 있지만, 실제로 용어가 사용되는 관점은 약간 다르다. 하지만 OLTP 시스템과 OLAP 시스템은 데이터 처리의 기술적 발전에 연관지어 연상될 수 있기에, 소개에 앞서 이들을 간단하게 정리하고자 한다.
•
OLTP: 트랜잭션 작업 단위를 통한 데이터 처리
•
OLAP: 데이터 분석 처리
•
OLTP 시스템: 트랜잭션 관리를 통해 원활하게 데이터를 처리하기 위해 만들어진 DB 시스템
•
OLAP 시스템: 기존 OLTP DB 시스템의 한계를 극복함으로써 원활한 데이터 분석을 위해 만들어진 DB 시스템
OLTP
OLTP(OnLine Transaction Processing; 온라인 트랜잭션 처리)란, 네트워크 상의 여러 이용자가 데이터를 갱신, 조회, 삭제하는 단위작업인 Transaction을 통해 하나의 데이터베이스를 향해 데이터를 실시간으로 처리하는 방식을 뜻한다.
하나의 비즈니스 로직 또는 서비스는 여러 트랜잭션의 집합이다. 예컨데, 은행에서 제공하는 송금 서비스는 계좌정보 및 잔액 조회, 출금, 송금의 과정으로 이루어진다. 출금 이후의 송금 과정은 비가역적으로 이루어져야 하며, 사용중인 데이터에 대한 다른 사용자의 접근 또한 엄격하게 관리되어야하기 때문에 이를 보장하는 시스템이 필요하다.
많은 사용자들에 의해 무수히 발생되는 각 작업요청의 Transaction의 성질을 보전하며 처리하도록 보장하기 위해 사용하는 방식을 OLTP라 부른다.
OLTP 시스템의 구조
OLTP를 실제 데이터베이스에 적용하는 OLTP 시스템은 크게 3개의 계층구조를 띈다.
Presentation layer: Transaction이 사용자 혹은 서비스 시스템에 의해 생성되는 Front-end 계층
Business logic layer: Transaction을 검증, 관리하고 완료하기 위해 필요한 모든 데이터를 확인하는 계층
Data storage layer: Transaction 및 관련된 모든 데이터를 저장하는 계층
OLTP 시스템의 특징
매우 복잡한 트랜잭션을 관리하고 효율적으로 처리하기 위해 OLTP 시스템은 몇가지 요구사항을 기반으로 구성된다.
Transaction의 ACID 검증: 시스템에 의해 처리되는 모든 Transaction의 안정성을 위해 OLTP를 거치며 처리되는 모든 Transaction들이 ACID를 준수함을 보장해야 한다.
동시성: 동일한 데이터에 동시에 접근하는 다수의 사용자들을 수용할 수 있어야 한다. 자원의 lock 방법을 이용하여 동시성을 이끌어낼 수 있다.
확장성: 처리를 요청하는 Transaction의 볼륨에 따라 시스템은 즉시 축소, 확장하며 유동적으로 작업을 처리할 수 있어야 한다.
가용성: 언제나 작업을 수락하며 Transaction의 손실을 절대 방지해야 한다.
높은 처리량 및 짧은 응답시간: 높은 생산성을 유지하고 기대치를 만족시키기 위해 10ms 이하의 응답시간을 필요로 한다.
신뢰성: 무수히 많은 사용자들이 Transaction을 통해 동시에 자원에 접근하고 정보를 수정하기 때문에, 시간에 따른 데이터의 신뢰도를 보장해야 한다. 어떠한 방식을 채택하느냐에 따라 데이터베이스의 격리수준이 결정된다.
보안성: 민감한 고객의 정보를 데이터베이스로 관리하는 기업은 데이터의 침해에 대해 책임을 져야하기 때문에, 시스템은 데이터의 보안을 책임져야 한다.
복구성: 어떠한 하드웨어적, 소프트웨어적 손상이 발생하더라도 시스템을 복구할 수 있어야 한다.
시중의 RDBMS는 OLTP 시스템을 채택하여 비교적 효율적이고 정확한 데이터의 저장과 조회를 보장한다.
기술의 발전에 따라 데이터의 양과 속도는 기하급수적으로 증가하였고, XML, JSON, 이미지, 영상 등 데이터의 종류 또한 다양해졌다. 빅데이터 분석을 위해 기존의 OLTP 시스템을 이용해 데이터를 분석하기 시작하자, 느린 데이터의 읽기 속도가 빠른 분석과 의사결정을 방해하였다.
이렇게 시스템 사용자들은 Transaction을 통해 관리되는 테이블 형태의 데이터보다 빠르게 데이터를 분석할 수 있는 시스템을 요구하기 시작했다.
OLAP
OLAP(OnLine Analytical Processing; 온라인 분석 처리)란, 효과적으로 분석 질의를 처리하는 방식을 뜻한다.
수많은 데이터풀에서 특정 데이터를 읽어들이는 분석 워크로드는 과도한 읽기, 낮은 쓰기의 특징을 띈다.
OLAP 시스템의 구조
OLAP 시스템은 기존의 DB 구조부터 근본적으로 다른 모델을 사용한다. 의미 체계 모델