🏆45분
도전과제: 대용량 Join 최적화
Spark 성능 튜닝: Shuffle과 Skew 정복
도전과제: 대용량 Join 최적화
Spark 심화: Streaming & Delta Lake > Spark 성능 튜닝: Shuffle과 Skew 정복
요구사항
3개 테이블 Join 구현
Broadcast Join 적용
실행 계획 분석 (explain)
성능 측정 및 비교
평가 기준
- • Broadcast Join 정확 적용 (30%)
- • 실행 계획 분석 (25%)
- • 성능 개선 달성 (25%)
- • 코드 품질 및 설명 (20%)
시나리오
두 개의 대용량 테이블을 Join하는 쿼리를 최적화합니다.
요구사항
데이터
- orders: 100만 건 (order_id, user_id, product_id, amount)
- products: 1000건 (product_id, name, category)
- users: 10만 건 (user_id, name, region)
쿼리
에디터 로딩 중...
최적화 목표
- 기본 Join: 3개 테이블 단순 Join
- Broadcast 적용: products는 작으므로 Broadcast
- 필터 선적용: 필요한 컬럼만 select
- 파티셔닝: user_id로 사전 파티셔닝
제출물
- 최적화 전/후 실행 계획 비교 (explain)
- 성능 측정 결과
- 최적화 포인트 설명
힌트 보기
broadcast(products)로 작은 테이블 Broadcast select()로 필요한 컬럼만 가져오면 Shuffle 데이터 감소 explain(True)로 상세 실행 계획 확인 BroadcastHashJoin이 보이면 성공 Exchange가 줄어들면 Shuffle 감소