기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Spark 비용 기반 옵티마이저 사용
Spark 버전 2.09 이상에서는 비용 기반 최적화 프로그램(CBO)을 사용할 수 있습니다. CBO는 다양한 테이블 통계를 기반으로 쿼리에 대해 가장 저렴한 실행 계획을 선택합니다. CBO는 CPU 사용률 및 I/O와 관련하여 쿼리 실행을 최적화하려고 시도하므로 최대한 빨리 반환됩니다. 그러나 대부분의 경우 데이터 통계는 일반적으로 존재하지 않습니다. 특히 통계 수집이 데이터 처리보다 훨씬 더 비싼 경우 더욱 그렇습니다. 통계를 사용할 수 있더라도 최신 상태가 아닐 수 있습니다. 다음은 CBO 사용에 대한 모범 사례입니다.
-
조인, 필터 및 그룹화 기준과 같은 작업에 사용되는 모든 열에 대한 통계를 수집합니다. 이렇게 하면 옵티마이저가 더 나은 결정을 내리는 데 도움이 됩니다. 를 사용하여 통계
ANALYZE TABLE
를 수집합니다. -
데이터가 빠르게 변경되는 경우 통계 수집 빈도를 늘립니다. 오래된 통계로 인해 계획이 최적화되지 않을 수 있습니다.
-
기본 CBO 파라미터로 시작하고 필요한 경우에만 조정합니다. 적극적인 최적화는 런타임을 증가시킬 수 있습니다.
-
최적화된 계획을 강제로 적용하고 성능을 비교하여 CBO가 최적의 계획을 선택하고 있는지 확인합니다. 최적화 프로그램 로깅을 활성화하여 계획을 비교합니다.
-
최적화를 개선하려면 CBO를 파티셔닝, 버킷팅 및 데이터 스큐 힌트와 함께 사용합니다. 파티셔닝은 CBO의 규모 조정에 도움이 될 수 있습니다.
-
계획 회귀를 조기에 감지하려면 CBO를 활성화한 후 쿼리 성능을 지속적으로 모니터링합니다.