4.1 Die Grundlagen von Hive

  • HIVE wurde von Facebook entwickelt, um eine interaktive, skalierbare und SQL-ähnliche Sprache in Hadoop zur Verfügung zu haben.
  • HIVE ist eine Data Warehouse-Komponente, die das Schreiben, Lesen und Verwalten großer Datensätze in einem Cluster übernehmen kann.
  • Die Sprache, die bei HIVE zum Einsatz kommt, lautet HQL (SQL+HIVE=HQL).
  • Hive übersetzt die HQL-Befehle in MapReduce- oder Tez-Jobs.
  • HIVE besteht vorwiegend aus der „HIVE Command Line“, in dessen Interface die Befehle abgesetzt werden können, und dem JDBC/ODBC-Treiber, welcher die Verbindung zu den Datenquellen und Datenbanken ermöglicht.
  • Hive kann das Abfragen großer Datenmengen und das Verarbeiten von Livedaten kombiniert zur Verfügung stellen.
  • Hive ist skalierbar und lässt sich einfach erweitern, z. B. mit selbst geschriebenen Funktionen, „Thrift Servern“ oder „JDBC/ODBC-Treibern“.

Wann sollte ich Hive nicht verwenden?

Es gibt auch Gründe, die gegen den Einsatz von Hive sprechen:

  • hohe Latenzzeiten, wodurch man Hive nicht bei Echtzeit-Transaktionsverarbeitung (OLTP) bevorzugen sollte
  • Daten werden denormalisiert abgespeichert, d. h. es gibt keine separaten Tabellen oder Fremdschlüssel
  • SQL bzw. HQL ist in seinen Funktionen eingeschränkt, Pig oder Spark bieten hier einen umfangreicheren Funktionsumfang
  • keine Transaktionsbefehle, wie z. B. Inserts oder Deletes,  möglich, da man keine relationale Datenbank als Grundlage hat, sondern Hive diese nur imitiert

Weiter geht es mit: 4.2 Hive mit den MovieLens-Daten verwenden