The Doppler Quarterly (DEUTSCHE) Herbst 2017 | Page 31

des HiveServers) und der Anpassung von Speicherpara- metern. Zum Beispiel ist es empfehlenswert, die Größe von Tez-Containern als Vielfaches der YARN-Cont- ainergröße festzulegen. Es gibt im Web viele Diskussio- nen und Anleitungen zum Thema Tez-Leistungsopti- mierung. Wir empfehlen praxiserfahrenen Benutzern, sich mit den Details vertraut zu machen, die zugrunde- liegenden Konzepte zu verinnerlichen und mit realen Daten zu experimentieren. Vectorized Query Execution Die standardmäßige Query Execution Engine von Hive verarbeitet eine Zeile nach der anderen. Dies erfordert mehrere Schichten virtueller Methodenaufrufe inner- halb der verschachtelten Schleife, was aus CPU-Pers- pektive sehr ineffizient ist. Vectorized Query Execution ist ein Hive-Feature, mit dem sich diese Ineffizienzen beseitigen lassen. Dabei werden die Zeilen in Stapeln von 1024 Zeilen gelesen, und die Operation wird gleich- zeitig und nicht einzeln auf die gesamte Datensatz- sammlung angewendet. Dieser vektorbasierte Ausfüh- rungsmodus hat sich bei typischen Abfrageoperationen wie Scans, Filterungen, Aggregationen und Joins als deutlich schnellere Alternative erwiesen. Um das Fea- ture Vectorized Query Execution zu verwenden, müssen Sie Ihre Daten in ORC speichern, die Eigenschaft „for- mat.hive.vectorized.execution.enabled“ auf „true“ set- zen und die Abfrage für die ORC-gestützten Tabellen ausführen. Da Vectorized Query Execution in EMR-Clus- tern derzeit nicht standardmäßig aktiviert ist, muss dies in Hive manuell aktiviert werden. Cost-Based Optimizer Die Idee des Coast-Based Optimizer (CBO) in Apache Hive ist der Idee in der Welt der relationalen Datenban- ken sehr ähnlich. Wir erfassen Statistiken wie die Anzahl der Zeilen in einer Tabelle oder Partition un