Für Unternehmen ist die Verlagerung ihrer Daten nach Hadoop eine Herausforderung, weil die vorhandenen Daten üblicherweise in relationalen Datenbanken mit der Structured Query Language (SQL) gespeichert sind. In Teil 3 unserer Big Data-Serie geht es daher um Apache Hive, das auf dem MapReduce-Algorithmus beruht und den SQL-Dialekt Hive Query Language gleich mit liefert.
Apache Hive arbeitet nach dem Schema-on-Read-Ansatz (SoR)
Relationale Datenbanken arbeiten nach dem Schema-on-Write-Ansatz (SoW). Hier wird beim Einspielen von Daten ein Schema erzwungen. Ein herkömmliches ETL bereitet die Daten so auf, dass sie zum Datenbankschema passen. Der SoW-Ansatz hat einen entscheidenden Nachteil: enthalten die Quelldaten neue Informationen, muss das gesamte Schema neu angepasst werden, bevor die neuen Daten eingespielt werden können.
Hive dagegen arbeitet nach dem Schema-on-Read-Ansatz (SoR). Dabei werden die Daten unverändert im HDFS abgelegt und erst bei Anfragen mittels „ETL on the fly“ gegen das Schema geprüft. Der Vorteil des SoR-Ansatz gegenüber dem SoW-Konzept besteht darin, dass er ein schnelles Laden von Daten ermöglicht, da diese nicht gelesen, geparst und in das datenbankinterne Format konvertiert werden müssen. Das Laden besteht lediglich aus dem Kopieren oder Verschieben von Dateien. Dies hat den positiven Nebeneffekt, dass mehrere Schemata auf denselben Daten arbeiten können.
Die Vorteile von Hive sind
- Daten aus relationalen Datenbanken werden automatisch in MapReduce Jobs umgewandelt;
- Schnelles Laden der Daten durch den SoR-Ansatz;
- SQL-Kenntnisse sind weit verbreitet, wodurch auch Nichtspezialisten mit Hive arbeiten können.
HiveQL: auf dem Weg zum SQL-Standard für Big Data
Hive hat drei Hauptfunktionen: Datenzusammenfassung, Datenabfrage und Datenanalyse. Es unterstützt Abfragen, die im SQL-Dialekt HiveQL verfasst wurden. Dieser übersetzt SQL-artige Abfragen automatisch in MapReduce-Jobs, die auf dem Hadoop-Cluster ausgeführt werden. Dadurch werden Implementierungen für Aggregationen, Filter, Joins und andere Standard-Operationen zur Verfügung gestellt, die ansonsten in Java individuell integriert werden müssten. Zusätzlich unterstützt HiveQL bei Abfragen das Einbetten individueller MapReduce-Skripte. Hive ermöglicht zudem eine Serialisierung bzw. Deserialisierung von Daten. Am besten eignet es sich für Batch-Jobs mit großen Datensets wie etwa Blogs.
Diese Artikel unser Serie „Die 10 wichtigsten Big Data-Technologien“ könnten Sie auch interessieren:
- 10 Big Data-Technologien, die Sie kennen sollten
- Apache Hadoop – ein bewährtes Open Source-Framework
- Cloudera Impala – die Lösung für Echtzeitabfragen
- MongoDB – Die Datenbank für alle Fälle
- Pentaho – Flexible Business Intelligence-Plattform
- Infobright – MySQL-Engine mit effektiver Datenkompression
- Apache Spark – Framework für Echtzeitanalysen
- Splunk – Big Data vereinfachen
- Hadoop Yarn – Big Data beschleunigen
- Apache Storm – Big Data-Analyse auf Echtzeitbasis