20분
Data Skew: 한 Task만 느린 문제
Spark 성능 튜닝: Shuffle과 Skew 정복
Data Skew: 한 Task만 느린 문제
Spark 심화: Streaming & Delta Lake > Spark 성능 튜닝: Shuffle과 Skew 정복
학습 목표
Data Skew를 감지하는 방법을 안다 Salting 기법을 이해한다 AQE(Adaptive Query Execution)를 활용할 수 있다
Data Skew: 무엇이 문제인가?
에디터 로딩 중...
groupBy("seller_id") 하면:
에디터 로딩 중...
Skew 감지 방법
방법 1: Spark UI
에디터 로딩 중...
방법 2: 데이터 분포 확인
에디터 로딩 중...
해결책 1: Salting (소금 뿌리기)
핫 키에 랜덤 접미사를 붙여서 분산:
에디터 로딩 중...
효과: 5억 건 → 500만 건 x 100 파티션
해결책 2: AQE (Adaptive Query Execution)
Spark 3.0+에서 자동으로 Skew 처리:
에디터 로딩 중...
AQE가 하는 일:
- 런타임에 파티션 크기 확인
- 큰 파티션을 자동으로 분할
- 작은 파티션은 병합
해결책 3: Broadcast Join (Skew 회피)
Join 대상이 작으면 Broadcast로 Skew 회피:
에디터 로딩 중...
제한: 작은 테이블이 메모리에 들어가야 함
에디터 로딩 중...
Skew 해결 체크리스트
에디터 로딩 중...