Apache Hive: Definition, Funktion und Vorteile

Apache Hive ist eine skalierbare Erweiterung der Software Hadoop. Sie eignet sich für die schnelle Abfrage und Analyse von Daten. Im Folgenden erfahren Sie mehr über die Vorteile, Funktionen und Anwendungen von Apache Hive.

Was ist Apache Hive? – Definition

Apache Hive (auch Hive Apache) ist eine beliebte Data-Warehouse-Software, mit der Sie schnell und einfach SQL-ähnliche Abfragen durchführen können. Ziel ist es, Daten effizient aus Apache Hadoop zu extrahieren

Apache Hadoop ist ein Open-Source-Framework für die Speicherung und Verarbeitung großer Datenmengen. Hadoop bietet viele Vorteile gegenüber herkömmlichen relationalen Datenbanken. Seine Anwendung ist jedoch nicht immer einfach, da Hadoop die Implementierung der SQL-Abfragen in der MapReduce-Java-API verlangt.

Um dieses Problem zu lösen, hat Facebook das Apache Hive Data Warehouse entwickelt. Damit lässt sich nicht nur das Programmieren von Java-Anfragen umgehen. Es ermöglicht zudem den Zugriff auf Daten mithilfe einfacher SQL-artiger Abfragen.

Heute gilt Apache Hive mit der SQL-ähnlichen Oberfläche als Standard für Ad-hoc-Abfragen und die Analyse von Hadoop-Daten. Die Lösung ist besonders dann kostengünstig und skalierbar, wenn Unternehmen sie in Cloud-Computing-Netzwerke integrieren. Deshalb beschäftigen sich beispielsweise Netflix oder Amazon mit der Weiterentwicklung von Apache Hive.

Die typischen Anwendungsfälle für Apache Hive sind Batch-SQL-Abfragen von großen Datensätzen und die Batch-Verarbeitung aufwändiger ETL- und ELT-Prozesse.

Wie funktioniert Apache Hive?

Apache Hive übersetzt HiveQL- bzw. SQL-ähnliche Abfragen in eine oder mehrere Java MapReduce-, Tez- oder Spark-Jobs. Deren Ausführung ist auch in der Hadoop-Komponente Yarn möglich. Apache Hive organisiert die Daten im Tabellenformat, damit sie in das Hadoop Distributed File System (HDFS) passen. Anschließend führt Apache Hive die Abfragen innerhalb bestimmter Cluster aus, um eine geeignete Antwort zu erzeugen.

Daten in Apache Hive

Die Apache Hive-Tabellen ähneln denen einer relationalen Datenbank. Diese Tabellen sortieren Daten in größere bis detailliertere Einheiten. Die Tabellen bestehen aus Datenblöcken, die sich in „Buckets“ aufteilen lassen. Der Zugriff auf die Daten erfolgt über HiveQL (Hive Query Language). Es ist möglich, die Daten sowohl zu überschreiben als auch anzuhängen. Tabellendaten lassen sich innerhalb jeder Datenbank serialisieren und jede Tabelle verfügt über ein entsprechendes HDFS-Verzeichnis.

Die Apache-Hive-Architektur

Es stehen mehrere Schnittstellen zur Verfügung: von einer Browser-Benutzeroberfläche über eine CLI bis hin zu externen Web-Clients. Mit dem Apache Hive Thrift Server können Remote-Client-Softwares Befehle und Anforderungen in einer Vielzahl von Programmiersprachen an Apache Hive senden. Der zentrale Speicherort in Apache Hive ist ein Metastore, der sämtliche Informationen enthält wie z. B. alle Tabellendefinitionen.

Der Treiber von Apache Hive besteht aus drei Komponenten:

  • Compiler für das Sammeln von Informationen
  • Optimierer zur Ermittlung der besten Ausführungsweise
  • Executor für die Ausführung

Optional kann auch LLAP die Erweiterung Hive Apache ausführen. Beachten Sie: wenn Sie ein Backup der Metadaten konfigurieren, sind diese besser verfügbar.

Datensicherheit in Apache Hive

Apache Hive ist Teil des Hadoop-Sicherheitssystems, das den Authentifizierungsdienst Kerberos für eine gegenseitige Verifizierung von Anwender und Server nutzt. HDFS gibt die Berechtigungen für neu erstellte Dateien in Hive Apache vor, sodass Sie Benutzer und Gruppen autorisieren können.

Die Vorteile von Apache Hive

Apache Hive eignet sich u. a. für die folgenden Aktionen:

  • Ausführung von Tagesendberichten
  • Überprüfung täglicher Transaktionen
  • Durchführung von Ad-hoc-Abfragen
  • Abwicklung von Datenanalysen

Die daraus gewonnen Erkenntnisse bieten erhebliche Wettbewerbsvorteile und erleichtern es Unternehmen, auf die Anforderungen des Marktes zu reagieren. Apache Hive bietet weitere Vorteile:

  • Benutzerfreundlichkeit: Das Abfragen von Daten ist dank der SQL-ähnlichen Sprache leicht zu erlernen.
  • Beschleunigtes Einfügen von Daten: Apache Hive kann das Schema von Daten erkennen, ohne den Tabellentyp oder die Schemadefinition vorab überprüfen zu müssen. Dies bedeutet, dass eine Anpassung der Daten an das interne Format der Datenbank nicht notwendig ist. Denn Apache Hive kann Daten auch ohne eine vorherige Formatänderung lesen und analysieren. Eine herkömmliche Datenbank verlangt eine genaue Überprüfung und Formatierung der Daten.
  • Hervorragende Skalierbarkeit, Flexibilität und Kosteneffizienz: Apache Hive speichert Hunderte von Petabyte an Daten, die im HDFS vorliegen. Daher bietet Apache Hive eine skalierbarere Lösung als eine herkömmliche Datenbank. Als Cloud-basierter Hadoop-Dienst können Benutzer mit Apache Hive virtuelle Server schnell hoch- oder runterfahren, um schwankende Workloads auszugleichen.
  • Verbesserte Sicherheit: Die Notfallwiederherstellung berücksichtigt alle wichtigen Workloads.
  • Geringer Overhead: Bei reinen Einfügetabellen liegt der Overhead bei nahezu null. Da keine Umbenennung notwendig ist, eignet sich die Lösung für die Cloud.
  • Außergewöhnliche Leistung: Gigantische Datensätze unterstützen bis zu 100.000 Abfragen pro Stunde.

Apache Hive vs. Apache Pig: die Unterschiede

Apache Hive und Apache Pig sind Schlüsselkomponenten des Hadoop-Ökosystems. Da sie jedoch ähnlichen Zwecken dienen, kommt es oft zu Verwechslungen. Beide vereinfachen das Schreiben komplexer Java MapReduce-Programme, sodass Benutzer das Programmieren von MapReduce und HDFS nicht extra erlernen müssen. Zudem unterstützen beide dynamische Verknüpfungs-, Ordnungs- und Sortiervorgänge in einer SQL-ähnlichen Sprache.

Apache Hive nutzt die Vorteile von SQL jedoch direkter und ist daher für Datenbankexperten leichter zu erlernen. Obgleich jedes dieser Systeme die Erstellung von UDFs unterstützt, lassen sich UDFs in Apache Pig viel einfacher beheben.

Apache Pig dient hauptsächlich dem Programmieren. Daher arbeiten Wissenschaftler und professionelle Programmierer am liebsten mit dieser Lösung. Datenanalysten bevorzugen hingegen Apache Hive, weil sich damit Berichte einfacher erstellen lassen. In der folgenden Tabelle sind weitere Unterschiede aufgeführt, anhand derer Sie die für Sie beste Lösung ermitteln können.

Features Apache Hive Apache Pig
Datentypen erlaubt strukturierte Daten erlaubt strukturierte und semi-strukturierte Daten
Sprache alle Erweiterungstypen sind möglich Sprache für den Verfahrensdatenfluss (Pig-Latein); hauptsächlich als Skriptsprache verwendet
Erweiterungstyp alle Erweiterungstypen sind möglich Skripte enden mit der Erweiterung .pig
Definition des Tabellenschemas definiert das Tabellenschema im Voraus und speichert es in der Datenbank definiert das Tabellenschema in Pig-Latein und verfügt nicht über eine dedizierte Metadatenbank
Output erstellt ein Output für jedes Skript und lineare Pipelines für bestimmte Vorgänge erstellt eine DAG und verwendet EXPLAIN, um den generierten Plan anzuzeigen
Cogroup unterstützt keine Cogroup unterstützt Cogroup bei der Durchführung von Outer Joins
Partitionierung unterstützt Partitionierung unterstützt keine Partitionierung
Client vs. Server arbeitet auf der Serverseite eines Clusters arbeitet auf der Client-Seite eines Clusters
Thrift-Server unterstützt Thrift-Server, sodass auch Remote Clients eine Verbindung herstellen können unterstützt keine Thrift-Server
JDBC und ODBC unterstützt JDBC und ODBC unterstützt JDBC und ODBC nicht
Geschwindigkeit beim Laden von Daten nicht schnell schnell

Was ist HiveQL?

Apache Hive arbeitet mit der Sprache HiveQL, nachdem der Nutzer zuvor die Struktur definiert hat. HiveQL-Anweisungen sind SQL-Anweisungen sehr ähnlich, obwohl sie nicht strikt den SQL-Standards entsprechen. Auch ohne Java- oder MapReduce-Kenntnisse können Sie maßgeschneiderte und anspruchsvolle MapReduce-Analysen schreiben, wenn Sie SQL kennen.

Dieses einfache Beispiel zeigt, wie sehr HiveQL-Abfragen den SQL-Abfragen ähneln:

[style-codebox]SELECT upper(name), unitprice

FROM acme_sales;

SELECT category, count (1)

FROM products

GROUP BY category

[/style-codebox]

Darüber hinaus unterstützt HiveQL Erweiterungen, die nicht in SQL enthalten sind, zum Beispiel die Tabellenerstellung als Auswahl- und Mehrtabelleneinfügung.

Der Apache Hive Compiler übersetzt HiveQL-Anweisungen in DAGs von MapReduce-, Tez- und Spark-Jobs. Die Ausführung dieser Anweisungen erfolgt anschließend mit Hadoop. Im Folgenden finden Sie eine Liste einiger grundlegender Funktionen, die HiveQL problemlos ausführen kann:

  • Erstellen und Verwalten von Tabellen und Partitionen
  • Unterstützt verschiedene relationale, arithmetische und logische Verknüpfungen
  • Auswerten von Funktionen
  • Herunterladen von Tabelleninhalten in ein lokales Verzeichnis
  • Laden der Ergebnisse von Abfragen in ein HDFS-Verzeichnis

Weitere Informationen finden Sie im HiveQL-Sprachhandbuch.

Apache-Hive-Installation: der Weg zum Erfolg

Die Integration von Apache Hive ist für alle Big-Data-Vorgänge unerlässlich. Apache Hive eignet sich für...

  • …Zusammenfassungen,
  • …Analysen
  • …und Ad-hoc-Abfragen großer Datenmengen.

Die Lösung bietet zudem eine leicht zu erlernende, hoch skalierbare und fehlertolerante Möglichkeit zum Verschieben und Konvertieren von Daten.

Mit einer Big-Data-Integration ist Ihr Unternehmen darauf vorbereitet, neue und innovative Wege zu beschreiten, um die Bedürfnisse potenzieller Kunden zu identifizieren. Sie können Ihre internen Prozesse zudem schneller und kostengünstiger ausführen.

Hier einige Anwendungsfälle, mit denen Sie Ihre Geschäftsziele erreichen können:

  • Clickstream-Analyse, um Anwenderkreise zu segmentieren und ihre Präferenzen zu verstehen
  • Datenerfassung, zum Beispiel zur Verfolgung der Anzeigennutzung
  • Berichterstellung und Analyse für interne sowie kundenorientierte Forschung
  • Interne Protokollanalyse für Web-, Mobil- und Cloud-Anwendungen
  • Data Mining, um exakte Strukturen zu erlernen
  • Analyse von Daten, um Vorhersagen zu treffen
  • Maschinelles Lernen zur Reduzierung des internen Betriebsaufwands

Um einen geschäftlichen Nutzen aus Apache Hive zu ziehen, muss die Lösung Teil Ihrer Datenverwaltungsstrategie sein. Die Open-Source-Plattform Talend Open Studio eignet sich für die nahtlose Integration mit Big Data und bietet eine umfassendere Konnektivität als andere Datenintegrationslösungen. Dies bedeutet, dass Sie Daten zwischen Hadoop und allen wichtigen Dateiformaten, Datenbanken oder Paketunternehmensanwendungen verschieben und konvertieren können.

Mit Talend Open Studio können Sie Daten am Standort oder in der Cloud verarbeiten. Als erste reine Open-Source-Lösung für die Verwaltung von Big Data hilft Ihnen Talend Open Studio, Ihre Daten schneller und effizienter zu verwalten.

Mit einer Eclipse-basierten IDE können Sie die Big-Data-Integration innerhalb weniger Stunden konzipieren und erstellen. Indem Sie grafische Komponenten aus einer Palette auf einen zentralen Arbeitsbereich ziehen, Komponenten anordnen und ihre Eigenschaften konfigurieren, können Sie schnell und einfach Apache-Hive-Prozesse entwickeln.

Erste Schritte mit Apache Hive

Als leistungsstarke Ergänzung von Hadoop macht Apache Hive Ihre Prozesse einfacher und effizienter. Dank der nahtlosen Integration lässt sich das Beste aus Apache Hive herausholen.

Wenn Sie noch nicht mit Apache Hive begonnen haben, können Sie sich auf eine reibungslose Integration und eine einfache Handhabung freuen. Es ist nie zu spät, Prozesse zu verbessern, um eine höhere Effizienz zu erreichen. Besuchen Sie die Talend-Downloadseite und testen Sie die kostenlose Testversion der Talend Open Studio für Big Data.

Sind Sie bereit, mit Talend durchzustarten?