LumoMate
LumoMate/용어집/SedimentData

OLAP

OLAP(Online Analytical Processing)은 대량의 데이터를 다각도로 잘라 보고 집계하는 분석용 처리 방식입니다. 거래를 빠르게 기록하는 OLTP와 짝을 이룹니다.
OLAP의 개념을 표현한 편집형 일러스트.

쉬운 설명

회사 시스템에는 두 종류의 작업이 섞여 있습니다. ① 결제·주문·로그인처럼 짧고 자주 발생하는 트랜잭션 작업(OLTP), ② '지난달 지역별·상품별 매출 추이는?'처럼 큰 데이터를 훑어 집계하는 분석 작업. 둘은 성격이 너무 달라서 같은 DB에서 잘하기 어렵습니다.

OLAP은 분석 작업에 맞춰 데이터 구조와 저장 방식을 바꿉니다. 가장 큰 차이는 '컬럼 기반 저장'입니다. 한 행을 통째로 저장하는 OLTP와 달리, 같은 컬럼 값끼리 모아 저장해 'sum(매출)' 같은 집계가 수십~수백 배 빨라집니다. 또 데이터를 다차원 큐브(시간 × 지역 × 상품) 형태로 미리 정리해 두는 경우도 많습니다.

쿼리 패턴도 다릅니다. OLTP는 '한 사용자의 한 주문' 같은 좁고 빠른 쿼리. OLAP은 '수억 행을 훑어 집계' 같은 넓고 무거운 쿼리. 그래서 OLAP은 응답이 수초~수분이어도 받아들여지고, 동시에 같은 쿼리가 폭주하지는 않습니다. 대신 한 번에 처리하는 데이터 양이 큽니다.

현대 클라우드 OLAP의 대표 주자는 BigQuery·Snowflake·Redshift·Databricks·ClickHouse입니다. 모두 컬럼 기반 + 분산 처리를 기본으로 두고, 사용자는 익숙한 SQL로 쿼리를 적습니다. 가격은 보통 '훑은 데이터 양' 또는 '컴퓨팅 시간'에 따라 매겨집니다.

실무에선 보통 두 시스템을 분리합니다. OLTP는 운영 DB(MySQL·Postgres)에서, OLAP은 별도 분석 웨어하우스에서 처리하고, 둘 사이를 ETL/ELT가 잇습니다. 한 시스템에 두 일을 다 시키면 서로 방해가 되어 결국 둘 다 느려집니다.

OLAP의 개념을 본문 안에서 다른 각도로 비춰 보는 편집형 일러스트.
FIG. 1OLAP을 다른 각도에서 다시 봅니다.

비유로 보면

OLTP가 마트 계산대 — 손님의 한 번 결제를 빠르고 정확히 처리 — 라면, OLAP은 본사 매출 회의실 — 모든 매장의 한 달 매출을 다각도로 분석 — 에 가깝습니다. 같은 회사지만 일하는 방식과 도구가 다릅니다. 계산대를 회의실로 쓸 수 없고, 회의실에서 계산대를 돌릴 수도 없습니다.

어디에서 만나나

기업 BI 대시보드(Tableau·Looker·메타베이스·Superset), 머신러닝 학습용 데이터셋 준비, 마케팅 분석, 재무 보고서, A/B 테스트 결과 평가. 데이터가 모인 거의 모든 큰 회사가 OLAP 환경을 따로 갖추고 있습니다.

작은 예시

기업 대시보드에서 '국가 × 상품 카테고리 × 월별 매출' 같은 3차원 큐브를 즉시 돌려 보는 화면이 가능한 이유는, 뒤에 BigQuery 같은 OLAP 엔진이 깔려 있어 큰 데이터를 컬럼 기반으로 빠르게 집계해 주기 때문입니다.

자주 하는 오해

오해
흔한 오해 둘. ① 'OLAP = 빅데이터 도구' — OLAP은 분석 패턴이고, 그 위에 작은 데이터도 큰 데이터도 올라갈 수 있습니다. ② 'OLAP 도입하면 분석이 저절로 잘된다' — 좋은 데이터 모델·문서·교육 없이는 같은 질문에 다른 답이 나오는 혼란이 생깁니다.

한 줄 정리

OLAP의 비결은 '운영 시스템과 분석 시스템을 분리'하는 데서 시작합니다. 같이 두면 둘 다 망가지고, 분리하면 둘 다 살아납니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.