zu finden sein, weil ich die Frage bemerkt habe, ist sehr beliebt, ich Ich habe mich entschieden, es zu beantworten, da ich es ziemlich gut gedünstet habe, seit ich es fragte Also, vor allem seit Hadoop 2.0 HCatalog und Hive werden als ein Produkt behandelt. Hive erstellt standardmäßig Tabellen in HCatalog. Es bedeutet, dass die natürliche Schnittstelle für HCatalog Hive ist. Sie können also alle SQL-92 DMLs (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML) und DDLs (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL) verwenden, beginnend mit create/alter/drop database
, bis create/alter/drop table
endend mit select, insert into
etc ... Die einzige Ausnahme ist, dass die Einfügung nur als Einfügen in ... als Auswahl funktioniert. Für typischen Einsatz müssen wir verwenden:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
Tabellen können Partitionen haben, Indizes (aber aus meinem experioence es nicht gut funktioniert), aber Sie es nicht um eine relationale Datenbank, so dass Sie keine Fremdschlüssel verwenden können, .
Mit HBase ist ganz anders. Dies ist eine der NoSQL-Datenbanken (aber wie in previous post beantwortet, kann Hive HBase-Schnittstelle für SQL-Abfragen sein) Es hat Schlüssel-> Wert organisierte Tabellen. Lässt ein paar Befehle vergleichen (Tabelle erstellen, in Tabelle einfügen, wählen Sie aus der Tabelle, Tabelle löschen
Hive:
create table table_name (
id int,
value1 string,
value2 string
)
partitioned by (date string)
LOAD DATA INPATH 'filepath' ] INTO TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)]
INSERT INTO table_name as select * from othertable
SELECT * FROM table_name
DROP TABLE table_name
HBase:
hbase> create 'test', 'cf'
hbase> put 'test', 'row1', 'cf:a', 'value1'
hbase> get 'test', 'row1'
hbase> disable 'test'
hbase> drop 'test'
Wie Sie die Syntax sehen kann, ist vollständig Für SQL-Benutzer ist die Arbeit mit HCatalog natürlich, diejenigen, die mit NoSQL-Datenbanken arbeiten, werden sich mit HBase wohl fühlen.
Überprüfen Sie diese Antwort [für HBase und HCatalog Korrelation] (https://Stackoverflow.com/a/46844329/1592191) – mrsrinivas