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

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

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

    回到术语表