Ir para o conteúdo principal

Catalyst Optimizer

Experimente o Databricks gratuitamente

No centro do Spark SQL está o Catalyst Optimizer, que usa recursos avançados de linguagem de programação (por exemplo, correspondência de padrões do Scala e quasi quotes) em uma nova maneira de construir um otimizador de queries extensível. O Catalyst é baseado em construções de programação funcional em Scala e projetado com estes dois propósitos principais:

  • Adicionar facilmente novas técnicas e recursos de otimização ao Spark SQL
  • Permitir que desenvolvedores externos ampliem o otimizador (por exemplo, adicionando regras específicas de fonte de dados, suporte para novos tipos de dados etc.)

Diagrama do Catalyst Optimizer O Catalyst contém uma biblioteca geral para representar árvores e aplicar regras para manipulá-las. Além dessa estrutura, ele tem bibliotecas específicas para processamento de query relacional (por exemplo, expressões, planos de query lógico) e vários conjuntos de regras que lidam com diferentes fases de execução de queries: análise, otimização lógica, planejamento físico e geração de código para compilar partes de queries ao bytecode Java. Para este último, ele utiliza outro recurso do Scala, quasiquotes, que facilita a geração de código no tempo de execução a partir de expressões compostas. O Catalyst também oferece vários pontos de extensão públicos, incluindo fontes de dados externas e tipos definidos pelo usuário. Além disso, o Catalyst oferece suporte à otimização baseada em regras e em custos.

    Voltar ao glossário