Spark 비용 기반 옵티마이저 사용 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Spark 비용 기반 옵티마이저 사용

Spark 버전 2.09 이상에서는 비용 기반 최적화 프로그램(CBO)을 사용할 수 있습니다. CBO는 다양한 테이블 통계를 기반으로 쿼리에 대해 가장 저렴한 실행 계획을 선택합니다. CBO는 CPU 사용률 및 I/O와 관련하여 쿼리 실행을 최적화하려고 시도하므로 최대한 빨리 반환됩니다. 그러나 대부분의 경우 데이터 통계는 일반적으로 존재하지 않습니다. 특히 통계 수집이 데이터 처리보다 훨씬 더 비싼 경우 더욱 그렇습니다. 통계를 사용할 수 있더라도 최신 상태가 아닐 수 있습니다. 다음은 CBO 사용에 대한 모범 사례입니다.

  • 조인, 필터 및 그룹화 기준과 같은 작업에 사용되는 모든 열에 대한 통계를 수집합니다. 이렇게 하면 옵티마이저가 더 나은 결정을 내리는 데 도움이 됩니다. 를 사용하여 통계ANALYZE TABLE를 수집합니다.

  • 데이터가 빠르게 변경되는 경우 통계 수집 빈도를 늘립니다. 오래된 통계로 인해 계획이 최적화되지 않을 수 있습니다.

  • 기본 CBO 파라미터로 시작하고 필요한 경우에만 조정합니다. 적극적인 최적화는 런타임을 증가시킬 수 있습니다.

  • 최적화된 계획을 강제로 적용하고 성능을 비교하여 CBO가 최적의 계획을 선택하고 있는지 확인합니다. 최적화 프로그램 로깅을 활성화하여 계획을 비교합니다.

  • 최적화를 개선하려면 CBO를 파티셔닝, 버킷팅 및 데이터 스큐 힌트와 함께 사용합니다. 파티셔닝은 CBO의 규모 조정에 도움이 될 수 있습니다.

  • 계획 회귀를 조기에 감지하려면 CBO를 활성화한 후 쿼리 성능을 지속적으로 모니터링합니다.