Apache Hive: Definition und Anwendung erklärt

Obwohl viele Software-Expertinnen und -Experten das Data-Warehouse-System Apache Hive bereits verschwinden sehen, kommt es auch heute noch für die Verwaltung von großen Datenmengen zum Einsatz. Viele Funktionen von Apache Hive haben zudem in Nachfolgersystemen Einzug gehalten. Ein genauerer Blick auf Hive und die wichtigsten Anwendungen lohnt sich somit.

Was ist Apache Hive?

Apache Hive ist eine skalierbare Erweiterung der Server-Anwendung Apache und der Speicherarchitektur Apache Hadoop. In Hadoop-Architekturen werden komplexe Rechenaufgaben in kleine Prozesse zerlegt und per Clustering auf Computerclustern aus Nodes parallel verteilt. Dadurch lassen sich große Datenmengen selbst mit Standardarchitekturen aus Servern und Rechnern verarbeiten. Apache Hive dient hierbei für Ihr Data Warehouse als integriertes Abfrage- und Analysesystem auf Open-Source-Basis. Daten lassen sich dank Hive mit der SQL-ähnlichen Datenbanksprache HiveQL analysieren, abfragen und zusammenfassen. Dank Hive werden somit Hadoop-Daten auch für größere Gruppen von Nutzerinnen und Nutzern zugänglich.

Bei Hive verwenden Sie eine Syntax, die SQL:1999 nahesteht, um Programme, Anwendungen und Datenbanken zu strukturieren bzw. Skripte zu integrieren. Vor Hive war für Hadoop eine Kenntnis von Java-Programmierung und -Programmierverfahren erforderlich, um die Datenabfrage zu nutzen. Hive ist es zu verdanken, dass sich Abfragen komfortabel in das Datenbanksystem-Format übersetzen lassen. Dabei kann es sich z. B. um MapReduce-Jobs handeln. Mit Hive ist es ebenfalls möglich, weitere SQL-basierte Anwendungen im Hadoop-Framework zu integrieren. Aufgrund der weiten Verbreitung von SQL erleichtert Hive als Hadoop-Erweiterung auch für Nicht-Experten und Nicht-Expertinnen die Arbeit mit Datenbanken und großen Datenmengen.

Wie funktioniert Hive?

Bevor Apache Hive das Hadoop-Framework ergänzte, stützte sich das Hadoop-Ökosystem noch auf das von Google entwickelte MapReduce-Framework. Dieses war im Fall von Hadoop 1 noch als eigenständige Engine für die Verwaltung, das Monitoring und die Steuerung von Ressourcen und Rechenprozessen direkt in das Framework implementiert. Das wiederum setzte umfassende Kenntnisse von Java voraus, um Hadoop-Dateien überhaupt erfolgreich abzufragen.

Die Hauptfunktionen von Hadoop für die Verwendung und Verwaltung großer Datenmengen liegen somit in:

  • Datenzusammenfassung
  • Abfrage
  • Analyse

Die Funktionsweise von Hive basiert auf einem einfachen Prinzip: Mit einer SQL-ähnlichen Oberfläche lassen sich Abfragen und Analysen von Hadoop-Dateien per HiveQL komfortabel in MapReduce-, Spark- oder Tez-Jobs übersetzen. Hierzu organisiert Hive Daten aus dem Hadoop-Framework in ein HDFS-kompatibles Tabellenformat. HDFS steht für Hadoop Distributed File System. Die gezielte Abfrage von Daten erfolgt daraufhin über spezifische Cluster und Nodes des Hadoop-Systems. Als Standard-Funktionen stehen hierzu auch Filter, Aggregationen und Joins zur Verfügung.

Hive basiert auf dem Schema-on-Read-Prinzip

Im Gegensatz zu relationalen Datenbanken, die nach dem Prinzip SoW (Schema-on-Write) arbeiten, basiert Hive auf dem SoR-Prinzip (Schema-on-Read). Das bedeutet, dass Daten im Hadoop-Framework zunächst noch unverändert hinterlegt und nicht in einem vordefinierten Schema gespeichert werden. Erst bei einer Hive-Abfrage werden die Daten nach Bedarf einem Schema angepasst. Der Vorteil liegt vor allem beim Cloud Computing in mehr Skalierbarkeit, mehr Flexibilität und schnelleren Ladezeiten der auf Cluster verteilten Datenbanken.

Wie lässt sich mit Daten in Hive arbeiten?

Für die Abfrage und Analyse von Daten mit Hive kommen Apache Hive-Tabellen nach einem Lesezugriffsschema zum Einsatz. Mit Hive organisieren und sortieren Sie Daten in diesen Tabellen in kleineren detaillierten oder in großen übergreifenden Einheiten. Die Hive-Tabellen werden in sogenannte „Buckets“, also Datenblöcke, aufgeteilt. Um auf die Daten zuzugreifen, nutzen Sie die SQL nahestehende Hive-Datenbanksprache HiveQL. Hive-Tabellen lassen sich unter anderem überschreiben und anhängen sowie in Datenbanken serialisieren. Zudem verfügt jede Hive-Tabelle über ein eigenes HDFS-Verzeichnis.

Tipp

Behalten Sie mit Linux Hosting von IONOS Ihre Datenbank im Griff – mit flexibel skalierbarer Performance, SSL, DDoS-Schutz und sicheren deutschen Servern.

Die wichtigsten Funktionen von Hive

Zu den Kernfunktionen von Hive zählen die Abfrage und Analyse von großen Datenmengen und Datensätzen, die als Hadoop-Dateien in einem Hadoop-Framework gespeichert sind. Eine zweite Kernaufgabe von Hive ist die Übersetzung von Abfragen in HiveQL in MapReduce-, Sparks- und Tez-Jobs.

Weitere nennenswerte Funktionen von Hive umfassen:

  • Metadaten in relationalen Datenbank-Management-Systemen speichern
  • Komprimierte Daten in Hadoop-Systemen verwenden
  • UDFs (User Defined Functions) für benutzerdefinierte Datenbearbeitung und Data-Mining
  • Unterstützung für Speichertypen wie RCFile, Text oder HBase
  • Verwendung von MapReduce und ETL-Unterstützung

Was ist HiveQL?

Im Zusammenhang mit Hive taucht immer wieder die Kennzeichnung „SQL-ähnlich“ auf. Diese bezieht sich auf die Hive-Datenbanksprache HiveQL, die auf SQL basiert, jedoch nicht 100-prozentig mit Standards wie SQL-92 übereinstimmt. HiveQL lässt sich somit auch in gewisser Weise als eine Art SQL- oder MySQL-Dialekt verstehen. Trotz aller Ähnlichkeit unterscheiden sich daher beide Sprachen in wesentlichen Aspekten. So unterstützt HiveQL viele SQL-Funktionen für Transaktionen nicht oder Subqueries nur bedingt, während es mit eigenen Erweiterungen wie Multitable Inserts für eine bessere Skalierbarkeit und Performance im Hadoop-Framework sorgt. Das Übersetzen von HiveQL-Abfragen in MapReduce, Tez und Spark übernimmt der Apache Hive Compiler.

Tipp

Nutzen Sie dedizierte Server mit leistungsstarken Intel- oder AMD-Prozessoren und sparen Sie sich eine eigene IT – mit Managed Server von IONOS.

Datensicherheit und Apache Hive

Durch die Integration von Apache Hive in Hadoop-Systeme profitieren Sie auch vom Authentifizierungsdienst Kerberos. Dieser ermöglicht eine zuverlässige gegenseitige Authentifizierung und Verifizierung zwischen Server und Usern. Da HDFS zudem Berechtigungen für neue Hive-Dateien vorgibt, liegt die Autorisierung von Nutzerinnen und Nutzern sowie Gruppen bei Ihnen. Ein weiterer wichtiger Sicherheitsaspekt: Hive bietet eine hilfreiche Wiederherstellung kritischer Workloads im Notfall.

Welche Vorteile bietet Apache Hive?

Hive bietet vor allem für die Arbeit mit großen Datenmengen im Cloud Computing oder im Fall von Big Data as a Service zahlreiche hilfreiche Funktionen wie:

  • Ad-hoc-Abfragen
  • Datenanalysen
  • Tabellen und Partitionen erstellen
  • Unterstützung für logische, relationale und arithmetische Verknüpfungen
  • Monitoring und Überprüfung von Transaktionen
  • Tagesendberichte
  • Abfrageergebnisse in HDFS-Verzeichnisse laden
  • Tabellendaten in lokale Verzeichnisse übertragen

Zu den Hauptvorteilen zählen somit:

  • Ermöglicht qualitative Erkenntnisse zu großen Datenmengen, z. B. für Data-Mining und Machine Learning
  • Optimiert Skalierbarkeit, Kosteneffizienz und Erweiterbarkeit von großen Hadoop-Frameworks
  • Segmentierung von Anwenderkreisen durch Clickstream-Analysen
  • Erfordert dank HiveQL keine vertieften Kenntnisse zu Java-Programmierverfahren
  • Wettbewerbsvorteile durch eine schnellere, skalierbare Reaktionsfähigkeit und Performance
  • Ermöglicht das Speichern von bis zu Hunderten Petabytes Daten sowie bis zu 100.000 Datenabfragen pro Stunde selbst ohne High-End-Infrastruktur
  • Dank Fähigkeit zur Virtualisierung verbesserte Ressourcenauslastung und somit schnellere Rechen- und Ladezeiten je nach Workloads
  • Gute, fehlertolerante Datensicherheit dank besseren Notfall-Wiederherstellungsoptionen und Kerberos-Authentifizierungsdienst
  • Beschleunigt das Einfügen von Daten, indem eine Anpassung von Daten an interne Datenbankformate entfällt (Hive liest und analysiert Daten auch ohne eine manuelle Formatänderung)
  • Funktioniert nach dem Open-Source-Prinzip

Welche Nachteile hat Apache Hive?

Zu den Nachteilen von Apache Hive zählt in erster Linie die Tatsache, dass es bereits viele Nachfolgersysteme gibt, die ähnliche und bessere Leistungen bieten. Die Relevanz von Hive in der Verwaltung und Nutzung von Datenbanken wird von Expertinnen und Experten als immer geringer eingestuft.

Zu weiteren Nachteilen von Hive gehören:

  • Kein Echtzeitzugriff auf Daten
  • Komplexes Bearbeiten und Updaten von Datensätzen durch Hadoop-Framework mit MapReduce
  • Hohe Latenz und somit für heutige Verhältnisse langsamer als Konkurrenzsysteme

Die Hive-Architektur im Überblick

Zu den wichtigsten Komponenten der Hive-Architektur zählen:

  • Metastore: Der zentrale Hive-Speicherort, in dem sich als RDBMS-Format alle Daten und Informationen wie Tabellendefinitionen, Schema und Verzeichnisort sowie Partitionen-Metadaten befinden
  • Driver/Treiber: Nimmt HiveQL-Kommandos entgegen und verarbeitet diese mit den Komponenten Compiler (Sammeln von Informationen), Optimizer (Festlegung der besten Ausführungsmethode) und Executor (Umsetzung der Aufgabe)
  • Command Linie + User Interface: Schnittstelle für externe Nutzerinnen und Nutzer
  • Thrift Server: Ermöglicht die Kommunikation externer Clients mit Hive und erlaubt JDBC- und ODBC-ähnlichen Protokollen, per Netzwerk zu interagieren und zu kommunizieren
Die Hive-Architektur als Schaubild
Für die Verarbeitung und Abfrage großer Datenmengen bietet Hive Ihrem Unternehmen viele Vorteile.

Wie ist Apache Hive entstanden?

Apache Hive sollte auch Nutzerinnen und Nutzern ohne tiefe SQL-Kenntnisse die Arbeit mit Petabyte-Datenmengen erleichtern. Die Entwicklung geht auf die Gründer Joydeep Sen Sharma und Ashish Thusoo zurück, die Hive während ihrer Zeit bei Facebook im Jahr 2007 für Facebooks Hadoop-Framework entwickelten, das mit mehreren Hundert Petabyte zu den größten der Welt zählt. 2008 übergab Facebook das Hive-Projekt der Open-Source-Community. Die Version 1.0 wurde im Februar 2015 veröffentlicht.