Unterschied zwischen Hive und HBase

Apache Hive und HBase sind Hadoop-basierte Big-Data-Technologien. Beide verwendeten, um Daten abzufragen. Hive und HBase laufen auf Hadoop und unterscheiden sich in ihrer Funktionalität. Hive ist ein kartenreduzierter SQL-Dialekt, während HBase nur MapReduce unterstützt. HBase speichert Daten in Form von Schlüssel- / Wert- oder Spaltenfamilienpaaren, während Hive keine Daten speichert.

Head to Head Unterschiede zwischen Hive und HBase (Infografik)

Unten ist der Top 8 Unterschied zwischen Hive vs HBase

Hauptunterschiede zwischen Hive und HBase

  • Hbase ist ACID-konform, Hive jedoch nicht.
  • Hive unterstützt Partitionierungs- und Filterkriterien basierend auf dem Datumsformat, während HBase die automatische Partitionierung unterstützt.
  • Hive unterstützt keine Update-Anweisungen, während HBase diese unterstützt.
  • Hbase ist beim Abrufen von Daten schneller als Hive.
  • Hive wird zur Verarbeitung strukturierter Daten verwendet, während HBase, da es schemafrei ist, jede Art von Daten verarbeiten kann.
  • Hbase ist im Vergleich zu Hive hochgradig (horizontal) skalierbar.
  • Hive analysiert die Daten auf dem HDFS mithilfe von SQL-Abfragen und konvertiert diese dann in eine Karte und reduziert Jobs. Da es sich um ein Echtzeit-Streaming handelt, werden die Vorgänge in der Datenbank direkt ausgeführt, indem in Tabellen und Spaltenfamilien partitioniert wird.
  • Wenn Sie zum Abfragen von Daten kommen, verwendet Hive eine als Hive-Shell bekannte Shell, um die Befehle auszugeben, während HBase, da es sich um eine Datenbank handelt, einen Befehl zum Verarbeiten der Daten in HBase verwendet.
  • Um zur Hive-Shell zu gelangen, verwenden wir den Befehl hive. Nachdem Sie dies angegeben haben, erscheint es wie hive>. In HBase geben wir einfach Use HBase an.

Hive vs HBase Vergleichstabelle

Vergleichsbasis

BienenstockHbase
DatenbanktypEs ist keine DatenbankEs unterstützt NoSQL-Datenbank
Art der VerarbeitungEs unterstützt die Stapelverarbeitung, dh OLAPEs unterstützt Echtzeit-Daten-Streaming, dh OLTP
DatenbankmodellHive unterstützt ein SchemamodellHbase ist schemafrei
LatenzHive hat eine geringe LatenzHbase hat eine hohe Latenz
KostenEs ist teurer im Vergleich zu HBaseEs ist kostengünstig
wann zu verwendenHive kann verwendet werden, wenn kein komplexer MapReduce-Code geschrieben werden sollHBase kann verwendet werden, wenn wir zufälligen Zugriff zum Lesen und Schreiben einer großen Datenmenge haben möchten
AnwendungsfälleEs sollte zur Analyse von Daten verwendet werden, die über einen bestimmten Zeitraum hinweg gespeichert werdenEs sollte verwendet werden, um die Echtzeitverarbeitung von Daten zu analysieren.
BeispieleHubspot ist ein Beispiel für HiveFacebook ist das beste Beispiel für Hbase

Codierungsunterschiede zwischen Hive und HBase

Lassen Sie uns nun die grundlegenden Unterschiede zwischen Hive und HBase in der Codierung diskutieren.

Vergleichsbasis

BienenstockHbase
So erstellen Sie eine DatenbankCREATE DATABASE (WENN NICHT EXISTIERT) DATABASE-NAME;Da es sich bei Hbase um eine Datenbank handelt, müssen wir keine bestimmte Datenbank erstellen
So legen Sie eine Datenbank abDATENBANK DATENBANK-NAME (EINSCHRÄNKUNG ODER KASKADE);N / A
So erstellen Sie eine TabelleCREATE (TEMPORARY ODER EXTERNAL) TABLE (WENN NICHT EXISTIERT) TABLE-NAME

((Spaltenname Datentyp (Kommentar Spaltenkommentar), ….)) (Kommentar Tabellenkommentar) (Zeilenformat ROW FORMAT) (Gespeichert als Dateiformat)
ERSTELLEN '', ''
Eine Tabelle ändernALTER TABLE name RENAME TO new-name

ALTER TABLE name DROP (COLUMN) Spaltenname

ALTER TABLE-Name ADD COLUMNS (col-spec (, col-spec ..))

ALTER TABLE name CHANGE Spaltenname neuer Name neuer Typ

ALTER TABLE name SPALTEN ERSETZEN (col-spec (, col-spec ..))

ALTER 'TABLE-NAME', NAME => 'COLUMN-NAME', VERSIONS =>
Deaktivieren einer TabelleN / Adeaktiviere 'TABLE-NAME' -> um den angegebenen Tabellennamen zu deaktivieren

disable_all 'r *' -> um alle Tabellen zu deaktivieren, die dem regulären Ausdruck entsprechen

Aktivieren einer TabelleN / Aaktiviere 'TABLE-NAME'
Einen Tisch fallen lassenDROP TABLE IF EXISTS TabellennameWenn wir eine Tabelle löschen möchten, müssen wir sie zuerst deaktivieren

deaktiviere 'tabellenname'

drop 'tabellenname'

Ebenso können wir disable_all und drop_all verwenden, um die Tabellen zu löschen, die dem angegebenen regulären Ausdruck entsprechen.

Datenbanken auflistenDatenbanken anzeigen;N / A
So listen Sie Tabellen in der Datenbank aufTabellen anzeigen;aufführen
Schema einer Tabelle beschreibenbeschreibe den Tabellennamen;beschreibe 'tabellenname'

Integration von Hive vs HBase

  • Installieren und konfigurieren Sie Hive.
  • Installieren und konfigurieren Sie HBase.
  • Für die Integration von Hive und HBase verwenden wir STORAGE HANDLERS in Hive.
  • Storage Handlers ist eine Kombination aus SERDE, InputFormat und OutputFormat, die jede externe Entität als Tabelle in Hive akzeptiert.
  • Diese Funktion unterstützt einen Benutzer beim Ausgeben von SQL-Abfragen, unabhängig davon, ob die Tabelle in Hadoop oder in der NOSQL-basierten Datenbank wie HBase, MongoDB, Cassandra oder Amazon DynamoDB vorhanden ist.
  • Nun werden wir uns ein Beispiel für die Verbindung von Hive mit HBase mit HiveStorageHandler ansehen:
  • Zuerst müssen wir eine Hbase-Tabelle mit dem Befehl erstellen.

erstelle 'Student', 'personalinfo', 'dept info'

-> Personalinfo und Abteilungsinfo erstellen zwei verschiedene Spaltenfamilien in der Schülertabelle.

  • Wir müssen einige Daten in die Schülertabelle einfügen. Zum Beispiel, wie unten erwähnt.

setze 'student', 'sid01', 'personalinfo: name', 'Ram'
setze 'student', 'sid01', 'personalinfo: mailid', ' '
setze 'student', 'sid01', 'deptinfo: deptname', 'Java'
setze 'Student', 'sid01', 'deptinfo: joinyear', '1994'

-> Ebenso können wir Daten für sid02, sid03 erstellen …

  • Jetzt müssen wir eine Hive-Tabelle erstellen, die auf die HBase-Tabelle zeigt.
  • Für jede Spalte in der Hbase erstellen wir eine bestimmte Tabelle für diese Spalte in der Hive. In diesem Fall erstellen wir zwei Tabellen in der Hive

create external table student_hbase(sid String, name String, mailid String)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler with serdeproperties("hbase.columns.mapping"=":key, personalinfo:name, personalinfo:mailid")
tblproperties("hbase.table.name"="student");
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

-> Ebenso müssen wir eine Dept-Info-Detailtabelle in der Struktur erstellen.

  • Jetzt können wir eine SQL-Abfrage in eine Struktur schreiben, wie unten erwähnt.

select * from student_hbase;

Auf diese Weise können wir Hive in HBase integrieren.

Fazit - Hive vs HBase

Wie bereits erwähnt, handelt es sich bei beiden um unterschiedliche Technologien, die unterschiedliche Funktionen bereitstellen, wenn Hive mithilfe der SQL-Sprache arbeitet. Sie können auch als HQL- und HBase-Schlüsselwertpaare zur Analyse der Daten bezeichnet werden. Hive und HBase funktionieren besser, wenn sie kombiniert werden, da Hive eine geringe Latenz aufweist und eine große Datenmenge verarbeiten kann, aber keine aktuellen Daten verwalten kann. HBase unterstützt keine Datenanalyse, sondern Aktualisierungen auf Zeilenebene für eine große Menge von Dateien.

Empfohlener Artikel

Dies war eine Anleitung zu Hive vs HBase, deren Bedeutung, Kopf-an-Kopf-Vergleich, Hauptunterschiede, Vergleichstabelle und Schlussfolgerung. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Apache Pig vs Apache Hive - Top 12 nützliche Unterschiede
  2. Finden Sie die 7 besten Unterschiede zwischen Hadoop und HBase heraus
  3. Top 12 Vergleich von Apache HBase vs Apache Hive (Infographics)
  4. Hadoop vs Hive - Finde die besten Unterschiede heraus

Kategorie: