25

SCD Type 2: 이력을 남겨라

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

학습 목표

SCD Type 2의 원리를 이해한다 valid_from, valid_to 컬럼 사용법을 익힌다

SCD Type 2: 새 행 추가

Type 2 = 변경 시 새 행 추가 (이력 유지)

에디터 로딩 중...

핵심 포인트:

  • customer_id는 같음 (Natural Key)
  • customer_key는 다름 (Surrogate Key) → 새 행!
  • valid_from/valid_to로 유효 기간 표시
  • is_current로 현재 버전 표시

Type 2 컬럼 설명

컬럼설명
customer_keySurrogate Key (DW용, 매번 새로 생성)
customer_idNatural Key (OLTP 원본, 동일)
valid_from이 버전의 시작일
valid_to이 버전의 종료일 (현재는 9999-12-31)
is_current현재 유효 버전 여부 (Y/N 또는 TRUE/FALSE)

Type 2 등급 변경 시 처리

Before (2023-12-31):

에디터 로딩 중...

After (2024-01-01에 등급 변경):

에디터 로딩 중...

처리 순서:

  1. 기존 행의 valid_to를 어제 날짜로 변경
  2. 기존 행의 is_current를 N으로 변경
  3. 새 행 INSERT (새 customer_key)

과거 시점 조회

"2023년 6월 김철수의 등급은?"

에디터 로딩 중...

결과: VIP

"현재 김철수의 등급은?"

에디터 로딩 중...

결과: 일반


Fact와 연결

중요: Fact 테이블은 그 시점의 customer_key를 저장!

에디터 로딩 중...

2023년 VIP 매출 조회:

에디터 로딩 중...

→ 정확한 8만원 (1001 행만 조회)