🏆45

도전과제: 실시간 이상 탐지 파이프라인

Structured Streaming: 배치처럼 쓰는 스트리밍

요구사항

Rate Source로 트랜잭션 스트림 생성

5% 이상 거래 시뮬레이션

단일 금액 기반 이상 탐지

시간 윈도우 기반 빈도 이상 탐지

평가 기준
  • 스트리밍 파이프라인 정상 동작
  • 이상 탐지 규칙 정확 구현
  • Watermark 및 Window 적절 설정
  • 코드 가독성 및 주석

시나리오

결제 트랜잭션 스트림에서 이상 거래를 실시간으로 탐지하는 파이프라인을 구축합니다.


요구사항

1. 데이터 생성 (Rate Source)

  • 초당 20개 트랜잭션 생성
  • user_id: 1-100 랜덤
  • amount: 정상(10-500), 이상(5000+)
  • 이상 거래 비율: ~5%

2. 이상 탐지 규칙

  • 규칙 1: 단일 거래 금액 > 3000
  • 규칙 2: 5분 내 동일 사용자 3회 이상 거래

3. 출력

  • 정상 거래: Console (또는 파일)
  • 이상 거래: 별도로 필터링하여 출력

힌트

  1. F.when().otherwise()로 5% 이상 금액 시뮬레이션
  2. 규칙 1: 단순 filter
  3. 규칙 2: groupBy + count + filter
  4. 두 스트림을 동시에 실행 가능
힌트 보기
F.when(condition, value).otherwise(other_value) 패턴 사용
빈도 탐지는 groupBy + count 후 filter
두 개의 writeStream을 동시에 start() 가능
Console 출력 시 outputMode 주의 (집계는 update/complete)