Ich habe mich über die Phasen des Katalysatoroptimierers informiert, aber ich habe Zweifel, wie die drei ersten Phasen in der Praxis funktionieren.Katalysatoroptimierer Phasen
In der ersten Phase (Analysephase) erstellt der Otimizer einen logischen Plan der Abfrage. Aber hier sind die Spalten nicht aufgelöst, deshalb muss dafür ein Katalogobjekt verwendet werden.
Zweifel: Wissen Sie, wie dieses Katalogobjekt funktioniert, also lösen Sie das. Wenn wir beispielsweise Abfragen über Hive-Tabellen ausführen, stellt der Optimierer eine Verbindung zu den Hivetables in hdfs her, um die Spalten aufzulösen?
In der zweiten Phase (Logikoptimierung) wendet der Otimizer Standardregeln auf den logischen Plan an, wie Konstantenfaltung, Prädikat-Pushdowns und Projektbereinigung.
Doubt: Im Versuch, Beispiele zu finden, besser zu verstehen, welche Funken wirklich in dieser Phase der Fall ist, wie konstantes Falten, Prädikat pushsdown und Projekt Beschneiden Dinge helfen, die Abfrage aber ich bin nicht der Suche nichts Konkretes über diese zu optimieren.
In der dritten Phase (physische Planung) übernimmt Spark den logischen Plan und generiert einen oder mehrere physische Pläne mit physischen Operatoren, die der Spark-Ausführungsmaschine entsprechen.
Zweifel: Verstehst du diesen Teil "mit physikalischen Operatoren, die die Funke-Ausführung-Engine"?
Vielen Dank für Ihre Antwort. Ich habe nur Zweifel über Prädikat Pushdown, so scheint es, dass es hilft, die Menge der Daten über das Netzwerk zu reduzieren. Es geht also nur darum, die where-Klausel zu verwenden, damit wir die Ergebnisse filtern können und folglich der Umfang der Datenübertragung über das Netzwerk geringer ist? – codin
Ich würde sagen, IO im Allgemeinen zu reduzieren. – zero323