20

Data Skew: 한 Task만 느린 문제

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가 하는 일:

  1. 런타임에 파티션 크기 확인
  2. 큰 파티션을 자동으로 분할
  3. 작은 파티션은 병합

해결책 3: Broadcast Join (Skew 회피)

Join 대상이 작으면 Broadcast로 Skew 회피:

에디터 로딩 중...

제한: 작은 테이블이 메모리에 들어가야 함

에디터 로딩 중...

Skew 해결 체크리스트

에디터 로딩 중...