주요 컨텐츠로 이동

Catalyst Optimizer

Databricks 무료로 시작하기

Spark SQL의 핵심은 Catalyst Optimizer입니다. 이것은 지능형 프로그래밍 언어 기능(예: Scala의 패턴 매칭과 quasi quote 등)을 참신한 방식으로 활용해 확장할 수 있는 쿼리 최적화 프로그램을 구축합니다. Catalyst는 Scala로 쓴 기능성 프로그래밍 구조를 기반으로 하며 다음과 같은 두 가지 용도를 염두에 두고 고안하였습니다.

  • Spark SQL에 새로운 최적화 기법과 특징을 손쉽게 추가
  • 최적화 프로그램 확장을 위해 외부 개발자 지원(예: 데이터 소스별 규칙 추가, 새로운 데이터 유형 지원 등)

Catalyst Optimizer 다이어그램Catalyst에는 일반 라이브러리가 포함되어 있어 트리를 나타내고, 규칙을 적용하여 이를 조작합니다. 이 프레임워크를 바탕으로 관계형 쿼리 처리별로 라이브러리가 있고(예: 표현식, 논리적 쿼리 계획) 쿼리 실행의 여러 단계를 처리하는 여러 개의 규칙 세트가 있습니다. 즉 분석, 논리적 최적화, 물리적 계획 수립과 코드 생성 등을 통해 쿼리의 여러 부분을 Java bytecode로 컴파일링하는 것입니다. 후자의 경우, 또 다른 Scala 기능인 quasiquote를 사용하여 구성할 수 있는 표현식으로부터 런타임에 코드를 간편하게 생성합니다. 또한 Catalyst는 외부 데이터 소스와 사용자 정의 유형을 비롯한 여러 가지 공개 확장 지점도 제공합니다. Catalyst는 규칙 기반 최적화와 비용 기반 최적화를 둘 다 지원하기도 합니다. [glossary-cta]

    용어집으로 돌아가기