2015-05-08 7 views
6

Als Entwickler habe ich die HBase-Tabelle für unser Projekt erstellt, indem wir Daten aus der vorhandenen MySQL-Tabelle mit sqoop job importieren. Das Problem ist, dass unser Datenanalyse-Team mit der MySQL-Syntax vertraut ist, was bedeutet, dass sie HIVE Tabelle leicht abfragen können. Für sie muss ich HBase-Tabelle in HIVE aufdecken. Ich möchte keine Daten duplizieren, indem ich Daten in HIVE erneut befülle. Außerdem kann das Duplizieren von Daten in Zukunft Konsistenzprobleme haben.Wie greife ich in Hive auf die HBase-Tabelle zu und umgekehrt?

Kann ich HBase-Tabelle in HIVE ohne Duplizieren der Daten aussetzen? Wenn ja, wie mache ich das? Auch wenn ich insert/update/delete Daten in meiner HBase-Tabelle aktualisierte Daten in HIVE ohne Probleme erscheinen?

Manchmal erstellt unser Datenanalyseteam Tabellen und Daten in HIVE. Darf ich sie HBase aussetzen? Wenn ja, wie?

Antwort

6

HBase-Hive Integration:

eine external table in Struktur für HBase Tabelle erstellen, können Sie HBase Daten o abgefragt werden in Hive, ohne die Notwendigkeit zum Duplizieren Daten abzufragen. Sie können nur Daten aus der HBase-Tabelle aktualisieren oder löschen, und Sie können die geänderte Tabelle auch in Hive anzeigen.

Beispiel:

Betrachten Sie eine hbase Tabelle mit Spalten haben id, name und email.

Beispiel externe Tabelle Befehl für hive:

CREATE EXTERNAL TABLE hivehbasetable(key INT, id INT, username STRING, password STRING, email STRING) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,id:id,name:username,name:password,email:email") TBLPROPERTIES("hbase.table.name" = "hbasetable"); 

Weitere Informationen über die Hive-Hbase Integration aussehen here

+0

Was umgekehrt? Ich habe einen HIVE-Tisch und belichte ihn mit HBase? – Abhishek

+0

@Abhishek Solange Sie in eine vom HBaseStorageHandler gespeicherte HIVE-Tabelle schreiben, werden die Tabelle und die darin enthaltenen Daten in HBase gespeichert. Ihr Team kann so viele HBase-gespeicherte Tabellen (extern oder nicht) erstellen, wie sie in HIVE und 'INSERT ... SELECT ...' möchten, und die Daten sind sofort in HBase verfügbar, sobald die Abfrage beendet ist. Versuch es. –

+0

Hab es .. Danke :) – Abhishek