- 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