15

작년 VIP가 올해 일반이 됐는데요

Day 3: 작년 VIP가 올해 일반이 됐는데요 - SCD

학습 목표

Dimension 변경 시 발생하는 문제를 체감한다 SCD가 왜 필요한지 이해한다

경영진 리포트 요청

"작년 VIP 고객 매출이 얼마였지?"

에디터 로딩 중...

결과: 5억


1년 후, 같은 쿼리

"작년 VIP 고객 매출 얼마였는지 다시 확인해줘."

같은 쿼리를 실행했다.

결과: 3억

어? 왜 2억이나 줄었지?


원인 분석

알고 보니, 김철수 고객이 2024년에 등급이 바뀌었다.

에디터 로딩 중...

dim_customer 테이블:

에디터 로딩 중...

문제: 2023년 매출인데, 2024년 등급으로 조회됨.

김철수가 VIP일 때 산 2억이 일반 고객 매출로 집계된 것!


리포트 신뢰도 하락

경영진:

"작년 리포트랑 숫자가 다른데? 이거 믿어도 되는 거야?"

데이터 엔지니어의 악몽:

  • 매출 숫자가 자꾸 바뀜
  • 과거 리포트 재현 불가
  • 감사 대응 불가

해결책: SCD (Slowly Changing Dimension)

"고객 등급이 바뀌면 덮어쓰지 말고, 이력을 남겨야 해."

에디터 로딩 중...

2023년 매출 조회 시:

  • valid_from <= 2023-12-31 AND valid_to >= 2023-12-31
  • → customer_key = 1001 (VIP)

과거 시점의 상태로 정확히 조회 가능!

이번에 이 SCD를 제대로 배워보자.