Hive erweitert das Apache Hadoop Projekt um Data Warehouse Funktionalitäten. Unter einem Data Warehouse (zu Deutsch Datenlager) versteht man eine für Analysezwecke optimierte Datenbank. Diese führt die Daten aus mehreren Quellen zusammen und verdichtet sie für die bessere Weiterverarbeitung.

Importe aus relationalen Datenbanken mit Hive

Dabei bedeutet das im Fall von Hive, dass man Daten aus normalen relationalen Datenbanken einfach importieren kann. Zudem kann man diese automatisch in MapReduce Jobs umwandeln. Außerdem wird damit die Abfragesprache HiveQL bereitgestellt. Diese ist eine auf SQL basierende Abfragesprache. Damit ist es einem Entwickler möglich, nur mit SQL Kenntnissen weitreichende Abfragen und Analysen im Big Data Umfeld durchzuführen. Auch Daten, welche in HDFS gespeichert sind, kann man auf diesem Wege abfragen und analysieren. Die HiveQL abfragen werden im Hintergrund wahlweise auf MapRecude, Tez oder Spark Jobs umgewandelt.

Einfache Benutzbarkeit

Grundsätzlich unterstützt die Technologie verschiedene Speicherarten. Somit kann man die Daten als Text, in Form einer Hbase, als RC (Record Columnar) Datei von MapReduce und in vielen weiteren Formaten verarbeiten. Im Folgenden sorgt eine Vielzahl an UDFs (User Defined Fuctions) für eine einfachere Benutzbarkeit. Damit bezeichnet man ein Angebot an Standardfunktionen, mit denen man Daten einfach manipulieren, sammeln oder aufbereiten kann. Das heißt, der User kann diese einfach benutzen, anstatt sie selbst programmieren zu müssen.

Um die Abfragegeschwindigkeit zu erhöhen, stellt Hive geeignete Indices zur Verfügung. Anders ausgedrückt kann man sich ein Index im Datenbankumfeld wie die Sortierung nach Buchstaben im Telefonbuch vorstellen. Anstatt das gesamte Buch durchsuchen zu müssen wenn man einen Herrn Mayer anrufen möchte, kann man gleich direkt beim Buchstaben M starten. Genauso werden die Daten markiert, um sie bei einer Suche effizienter wieder zu finden.

Kurzum bietet Hive eine Lösung im Big Data Umfeld, die es erlaubt, mit etablierten Techniken auf eine unüberschaubare Anzahl an Daten schnell und effizient zuzugreifen.