15

분석팀이 매번 30분씩 기다려요

Day 2: 분석팀이 매번 30분씩 기다려요 - 차원 모델링

학습 목표

OLTP와 OLAP의 차이를 체감한다 차원 모델링이 왜 필요한지 이해한다

분석팀의 요청

"이번 달 카테고리별 매출 좀 뽑아줘."

쉽다고 생각했다.

에디터 로딩 중...

실행...

에디터 로딩 중...

30분 걸렸다.


더 복잡한 요청

다음 날, 또 요청이 왔다.

"그거에 고객 등급별로도 나눠서 보여줘."

에디터 로딩 중...

실행...

에디터 로딩 중...

45분.

분석팀이 한숨을 쉬었다.

"매번 이렇게 기다려야 해요? 실시간 대시보드는 꿈도 못 꾸겠네."


왜 이렇게 느린가?

문제설명
JOIN 폭발5개 테이블 JOIN = 조합 폭발
정규화의 저주분석에는 비정규화가 더 빠름
인덱스 무력화집계 함수는 인덱스 활용 어려움
Full Table Scan결국 전체 데이터 스캔

정규화된 OLTP 테이블은 분석용이 아니다. 트랜잭션(주문, 결제) 처리에 최적화된 구조.


해결책: 분석용 테이블 따로 만들기

선임이 알려줬다.

"운영 DB는 건드리지 말고, 분석용 데이터 웨어하우스를 따로 만들어. Star Schema로 설계하면 JOIN 없이 바로 집계할 수 있어."

에디터 로딩 중...

실행 시간: 3초.

30분 → 3초. 600배 빨라졌다.

이번에 그 비밀을 배워보자.