15분
Star Schema 설계 실수 Top 3
Day 2: 분석팀이 매번 30분씩 기다려요 - 차원 모델링
Star Schema 설계 실수 Top 3
데이터 모델링 > Day 2: 분석팀이 매번 30분씩 기다려요 - 차원 모델링
학습 목표
Star Schema 설계 시 흔한 실수를 피한다 Snowflake와의 차이를 이해한다
실수 1: Dimension을 또 정규화
"카테고리 테이블을 또 분리해야지"
에디터 로딩 중...
이러면 JOIN이 늘어남. Star Schema의 장점 상실!
올바른 설계:
에디터 로딩 중...
DW에서는 의도적으로 중복 저장하는 거다.
실수 2: Fact에 텍스트 저장
에디터 로딩 중...
Fact에는 FK와 숫자만! 텍스트는 Dimension에.
왜?
- Fact는 수억 행. 텍스트 반복 저장 = 용량 폭발
- FK(정수)가 훨씬 빠름
실수 3: Grain을 명확히 안 정함
에디터 로딩 중...
Grain이 모호하면:
- 중복 행 발생
- 집계 결과 틀림
- 데이터 신뢰도 하락
반드시 정의:
에디터 로딩 중...
Star vs Snowflake
에디터 로딩 중...
| 비교 | Star | Snowflake |
|---|---|---|
| 구조 | 단순 | 복잡 |
| JOIN 수 | 적음 | 많음 |
| 성능 | 빠름 | 느림 |
| 저장 공간 | 큼 (중복) | 작음 |
| 유지보수 | 쉬움 | 어려움 |
실무에서는 Star Schema를 주로 사용. Snowflake는 저장 공간이 정말 부족할 때만.
설계 체크리스트
| 체크 | 항목 |
|---|---|
| [ ] | Grain이 명확히 정의되었나? |
| [ ] | Fact에 텍스트가 없나? (FK와 숫자만?) |
| [ ] | Dimension이 또 정규화되지 않았나? |
| [ ] | Surrogate Key를 사용했나? |
| [ ] | 분석에 필요한 속성이 Dimension에 있나? |