20

프로젝트 브리핑: 실시간 주문 분석 시스템

Weekly Project: 실시간 이커머스 파이프라인

학습 목표

프로젝트 요구사항을 이해한다 아키텍처를 파악한다 평가 기준을 확인한다

프로젝트 배경

"매출 데이터가 1시간 뒤에나 보여요. 실시간으로 볼 수 없나요?"

현재 상황:

  • 배치 잡이 1시간마다 실행
  • 경영진이 실시간 매출을 보고 싶어함
  • 이상 주문(사기) 탐지가 늦어 피해 발생

목표:

  • 실시간 주문 처리: 5초 이내 저장
  • 실시간 집계: 5분 윈도우 매출
  • 이상 탐지: 고액 주문 즉시 알림

아키텍처

에디터 로딩 중...

테이블 스키마

fact_orders (원본 주문)

컬럼타입설명
order_idBIGINT주문 ID
customer_idINT고객 ID (1-1000)
product_idINT상품 ID (1-50)
amountDECIMAL주문 금액
regionSTRING지역
order_timeTIMESTAMP주문 시각

agg_metrics (5분 윈도우 집계)

컬럼타입설명
window_startTIMESTAMP윈도우 시작
window_endTIMESTAMP윈도우 종료
total_salesDECIMAL총 매출
order_countBIGINT주문 수
avg_order_valueDECIMAL평균 주문액

alerts (이상 탐지)

컬럼타입설명
alert_timeTIMESTAMP알림 시각
alert_typeSTRING알림 유형
order_idBIGINT주문 ID
customer_idINT고객 ID
amountDECIMAL금액
reasonSTRING사유

요구사항

Phase 1: 기본 파이프라인 (필수)

  • Rate Source로 주문 생성 (초당 20건)
  • 주문 데이터 변환 (6개 컬럼)
  • fact_orders에 저장 (Delta Lake, Append)
  • Checkpoint 설정

Phase 2: 윈도우 집계 (필수)

  • 10분 Watermark 설정
  • 5분 윈도우 전체 집계
  • agg_metrics에 저장 (Update)

Phase 3: 이상 탐지 (필수)

  • 규칙 1: 단일 주문 금액 > 5000
  • alerts에 저장

Phase 4: 고급 기능 (선택)

  • 지역별 집계
  • Time Travel 분석
  • OPTIMIZE 실행

평가 기준

항목배점세부 기준
Phase 130%Rate Source, Transform, Delta 저장
Phase 225%Watermark, Window, Update Mode
Phase 325%이상 탐지 규칙 구현
Phase 410%고급 기능
코드 품질10%가독성, 주석, 구조화

산출물

코드 파일

에디터 로딩 중...

Delta Lake 테이블

에디터 로딩 중...

결과물

  • 실행 스크린샷
  • Spark UI 분석 (선택)