Sind zwei Superhelden nicht besser als einer?
Einige der mächtigsten Ergebnisse entstehen durch die Kombination sich ergänzender Superkräfte, und das „dynamische Duo“ von Apache Hive LLAP und Apache Impala, die beide in Cloudera Data Warehouse enthalten sind, ist ein weiterer Beweis dafür. Sowohl Impala als auch Hive können in einem noch nie dagewesenen und massiven Umfang mit vielen Petabytes an Daten arbeiten. Beide sind zu 100 % Open Source, so dass Sie sich nicht an einen bestimmten Anbieter binden müssen, während Sie Ihre bevorzugten BI-Tools verwenden, und von der von der Community vorangetriebenen Innovation profitieren.
Beide, Impala und Hive LLAP, klingen so, als würden sie sich hervorragend für meine Data Warehouse-Anwendungsfälle eignen, warum muss ich mich also wirklich zwischen den beiden entscheiden? Die Antwort ist einfach: Beide haben ihre eigenen Spezialitäten, und je nach Art der Analysen, die Sie durchführen möchten, ist die eine vielleicht besser geeignet als die andere. Es gibt jedoch ein Geheimnis, das ich bis zum Ende des Blogs bewahre, das die Entscheidung für den Benutzer noch einfacher macht: so einfach, dass Sie sich nicht einmal selbst entscheiden müssen.
Bevor ich auf die Unterschiede zwischen diesen SQL-Engines eingehe, ist es wichtig zu erwähnen, dass sowohl Impala als auch Hive LLAP dieselben Daten und Metadaten nutzen (über den Hive Metastore), so dass Sie nicht nur von der einen zur anderen wechseln können, wenn Sie Ihre Meinung ändern, sondern sogar verschiedene Workloads mit verschiedenen Engines auf denselben Daten zur gleichen Zeit ausführen können. Eine echte „Best of both worlds“-Situation.
Warum also wählen? Nun, im Allgemeinen funktioniert Impala am besten, wenn Sie mit einem Data Mart interagieren, bei dem es sich in der Regel um einen großen Datensatz mit einem Schema handelt, das in seinem Umfang begrenzt ist. In der Zwischenzeit ist Hive LLAP die bessere Wahl, wenn es um Anwendungsfälle geht, die den größeren Umfang eines Unternehmens-Data-Warehouses betreffen. Diese Anwendungsfälle umfassen oft mehrere Abteilungen und eine Vielzahl von nachgelagerten Anwendungen, die beide zu einer breiteren Palette von Abfragemustern führen. Wir sehen auch, dass Impala eine gute Wahl für interaktive Ad-hoc-Abfragen ist, vor allem, wenn Hunderte oder Tausende von Benutzern alleine arbeiten.
Sie können Impala für einige Abfragen und einige Tabellen und Hive LLAP für andere Abfragen und andere Tabellen verwenden.
Impala wurde für Geschwindigkeit entwickelt.
Geschrieben in C++, das sehr CPU-effizient ist, mit einem sehr schnellen Abfrageplaner und Metadaten-Caching, ist Impala für Abfragen mit geringer Latenz optimiert. Aus diesem Grund ist Impala eine ideale Engine für die Verwendung mit einem Data Mart, da Leute, die mit Data Marts arbeiten, meist nur Leseabfragen und keine großen Schreibvorgänge durchführen.
Impala verfügt außerdem über ein sehr effizientes Laufzeitausführungs-Framework, das Codegenerierung, Prozess-zu-Prozess-Kommunikation, massive Parallelität und Metadaten-Caching nutzt. Aus diesem Grund eignet sich Impala auch hervorragend für die Arbeit mit Ad-hoc-Abfragen, z. B. bei der Erkundung durch iteratives Ausgraben von Daten. Sie werden Ihre Abfrage immer wieder kurzfristig ändern wollen und sehr schnelle Antwortzeiten haben, damit Sie nicht ewig auf jede Iteration warten müssen.
Hive LLAP wurde für hohe Ansprüche entwickelt.
Hive LLAP verfügt über viele anspruchsvolle Funktionen, die Entwicklern den Einstieg und die effektive Nutzung erschweren können. In Hive LLAP dauert es manchmal länger, bis eine Abfrage die Planung und das Hochfahren für die Ausführung durchläuft. Hive ist jedoch so konzipiert, dass es sehr fehlertolerant ist. Wenn ein Fragment einer lang laufenden Abfrage fehlschlägt, ordnet Hive es neu zu und versucht es erneut. Hive speichert sowohl Datendateien als auch Abfrageergebnisse mit ausgefeilten Algorithmen im Cache, d. h. häufig angeforderte Daten bleiben im LLAP-Cache. Hive LLAP unterstützt Query Federation, d. h. Abfragen können über mehrere Komponenten und Datenbanken hinweg ausgeführt werden. Daher macht Hive LLAP jeden „langsamen Start“ in EDW-Anwendungsfällen wett, da es auf lange Sicht viel robuster und leistungsfähiger ist.
Aufgrund dieser Ausgereiftheit und Flexibilität ist Hive LLAP besser für Enterprise Data Warehouse (EDW)-Anwendungsfälle geeignet. Mit einem EDW unterstützen Sie Business Intelligence-Berichte und -Dashboards, abhängige Data Marts, andere Unternehmensanwendungen, externe Systeme und mehr. Diese Workloads berücksichtigen oft mehrere Dimensionen, und daher müssen EDWs oft komplexere SQL-Anforderungen verarbeiten als Data Marts, mit einem größeren Bedarf an komplexen Datentypen, mehr geplanten Abfragen und Abfrageorchestrierung, um Data Marts aufzufüllen oder regelmäßige Datenextrakte zu generieren.
Die Fähigkeit von Hive, länger laufende, komplexere Abfragen auf massiven Datensätzen robuster zu verarbeiten, macht es oft zur besseren Wahl für diese Arten von Anwendungen. Bei schnell ablaufenden Ad-hoc-Abfragen können die Anlaufzeiten von Hive LLAP im Vergleich zu Impala verlangsamen, doch bei länger laufenden Abfragen sind diese Anlaufkosten ein relativ unbedeutender Teil der Gesamtlaufzeit. Hive LLAP ist auch wegen seiner Fehlertoleranz (wer will schon, dass eine Abfrage fehlschlägt, wenn man lange auf das Ergebnis warten muss?) und der besseren Leistung bei komplexeren Abfragen die bessere Wahl für EDW.
Verwendung von Impala und Hive LLAP
Impala | Hive LLAP |
Data mart | Enterprise Data Warehouse |
|
|
|
|
|
|
Massive Datensätze in Verbindung mit der Zunahme von Anwendungsfällen, Die Wahl der richtigen Data-Warehouse-SQL-Engine, um zeitnahe Ergebnisse zu erhalten, macht den Unterschied.
Schließen Sie sich uns bei Racing for Results an! Data Warehouse – Impala vs. Hive LLAP, eine lebhafte Debatte unter Experten, am 20. Oktober 2020, 10:00 Uhr US-Pacific-Zeit, 13:00 Uhr US-Ostzeit, mit Anwendungsbeispielen von Kunden und anschließender Live-Frage&.
Director Product Marketing