🏆45분
도전과제: 실시간 이상 탐지 파이프라인
Structured Streaming: 배치처럼 쓰는 스트리밍
도전과제: 실시간 이상 탐지 파이프라인
Spark 심화: Streaming & Delta Lake > 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 (또는 파일)
- 이상 거래: 별도로 필터링하여 출력
힌트
F.when().otherwise()로 5% 이상 금액 시뮬레이션- 규칙 1: 단순 filter
- 규칙 2: groupBy + count + filter
- 두 스트림을 동시에 실행 가능
힌트 보기
F.when(condition, value).otherwise(other_value) 패턴 사용 빈도 탐지는 groupBy + count 후 filter 두 개의 writeStream을 동시에 start() 가능 Console 출력 시 outputMode 주의 (집계는 update/complete)