Allgemeine Tipps Hive Abfragen zu verbessern, um schneller zu laufen
1 Verwenden Sie ORC-Datei
Hive unterstützt ORC-Datei - ein neues Tabellenspeicherformat, das fantastische Geschwindigkeit Verbesserungen durch Techniken wie Prädikat Pushdown (Pushup in Hive), Komprimierung und vieles mehr.
Die Verwendung von ORCFile für jede HIVE-Tabelle sollte wirklich ein Kinderspiel sein, und extrem vorteilhaft, um schnelle Antwortzeiten für Ihre HIVE-Abfragen zu erhalten.
CREATETABLEA_ORC (
customerIDint, namestring, age int, address string
)
2. Verwenden Vektorisierung vektorisierte Abfrageausführung verbessert die Leistung von Operationen wie Scans, Aggregationen, Filter, und schließt sich, indem man sie in Chargen von 1024 Zeilen auf einmal anstelle einer einzigen Reihe jedes Mal durchgeführt wird. Eingeführt in Hive 0.13, diese Funktion Abfrageausführungszeit erheblich verbessert, und ist leicht mit zwei Parametern Einstellungen aktiviert:
I. sethive.vectorized.execution.enabled = true;
II. sethive.vectorized.execution.reduce.enabled = true;
3. Partition Basierend Joins: Um schließt sich in Hive zu optimieren, müssen wir das reduzieren Abfrage-Scan-Zeit. Dazu können wir eine Hive-Tabelle mit Partitionen erstellen, indem wir die Partitionsvergleichselemente in der WHERE-Klausel oder der ON-Klausel in einem JOIN angeben.
Beispiel: ‚Zustand‘ In der Tabelle ‚Statusansicht‘ auf die Spalte partitioniert Die unten Abfrage ruft Zeilen nur für einen bestimmten Zustand: Optimizing In Hive tritt
SELECT state_view.* FROM state view WHERE state_view.state= ‘State-1’ AND state_view.state = ‘State-3’;
Wenn Ansicht eine Tabelle Zustand mit einem anderen Tisch Stadt Benutzer verbunden sind, können Sie eine Reihe von Partitionen in der ON-Klausel wie folgt angeben:
SELECT state_view.* FROM state_view JOIN city_users ON (state_view.state = city_users.state);
Hope this Post half Ihnen bei all Ihren verbindet Optimierung Bedürfnisse in Hive.