Direkt zum Hauptinhalt

Catalyst Optimizer

DATABRICKS KOSTENLOS TESTEN

Das Herzstück von Spark SQL ist Catalyst Optimizer. Dieser Optimierer nutzt fortschrittliche Funktionen der Programmiersprache (z. B. das Pattern-Matching aus Scala oder Quasiquotes) auf innovative Weise, um einen erweiterbaren Abfrageoptimierer zu erstellen. Catalyst basiert auf funktionalen Programmierkonstrukten in Scala und wurde unter Berücksichtigung der folgenden beiden Hauptziele entwickelt:

  • Einfaches Hinzufügen neuer Optimierungstechniken und Funktionen zu Spark SQL
  • Externen Entwicklern die Möglichkeit einräumen, den Optimierer zu erweitern (z. B. durch Hinzufügen datenquellenspezifischer Regeln, Unterstützung neuer Datentypen usw.)

Diagramm zu Catalyst Optimizer Catalyst beinhaltet eine allgemeine Bibliothek zur Darstellung von Bäumen und Anwendung von Regeln, um diese zu manipulieren. Darüber hinaus verfügt es über Bibliotheken, die speziell auf die Verarbeitung relationaler Abfragen ausgerichtet sind (z. B. Ausdrücke oder logische Abfragepläne), sowie über mehrere Rulesets, die verschiedene Phasen der Abfrageausführung steuern: Analyse, Logikoptimierung, physische Planung und Codegenerierung zur Kompilierung von Abfrageteilen in Java-Bytecode. Für die letztgenannte Funktionalität wird eine andere Scala-Funktion verwendet, nämlich Quasiquotes. Diese macht es einfach, zur Laufzeit Code aus modularen Ausdrücken zu generieren. Catalyst bietet außerdem mehrere öffentliche Erweiterungspunkte, etwa für externe Datenquellen und benutzerdefinierte Typen. Schließlich unterstützt Catalyst sowohl eine regel- als auch eine kostenbasierte Optimierung.

    Zurück zum Glossar