온라인 분석 처리
OLAP이란
- 다양한 관점에서 비지니스 데이터를 분석하는데 사용하는 소프트웨어 시스템 또는 기술
- 분석 쿼리를 처리할 목적으로 구축된 DB
- 실시간 빠른 응답을 요구
- 주로, 다차원 큐브(multi-dimensional cubes)를 사용해 데이터를 효율적으로 분석하고 시각화
- 행 기반, 열 기반 DB에서 모두 실행될 수 있지만, 빠른 조회 성능이 요구되는 경우 열 기반 DB와 결합됨
<aside>
❗
일반적인 행기반 DB는 OLTP(Online Transactional Processing)이라고 함
ex. MySQL, MariaDB, Oracle 등
</aside>
필요성
- OLTP는 대개 제3정규형(3NF)인데, 이는 복잡한 JOIN을 통해 분석 쿼리를 요청할 경우, 컴퓨팅 자원을 많이 소모하게 됨
- 분석 질의는 읽기 작업이 많아 인덱스가 많은 것이 유리한 반면, OLTP는 쓰기 속도 최적화를 위해 인덱스가 상대적으로 적은 편
- 작은 단위 트랜잭션이 지속적으로 왕래하는 OLTP DB에서 큰 단위의 분석 쿼리를 수행하면, 트랜잭션간 경쟁이 야기되어 트랜잭션 속도 및 분석 질의 속도 모두 저하됨
참고자료