HCatalog - Tabelle erstellen

In diesem Kapitel wird erläutert, wie Sie eine Tabelle erstellen und Daten in diese einfügen. Die Konventionen zum Erstellen einer Tabelle in HCatalog ähneln denen zum Erstellen einer Tabelle mit Hive.

Tabellenanweisung erstellen

Tabelle erstellen ist eine Anweisung, die zum Erstellen einer Tabelle im Hive-Metastore mithilfe von HCatalog verwendet wird. Die Syntax und das Beispiel lauten wie folgt:

Syntax

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

Beispiel

Nehmen wir an, Sie müssen eine Tabelle mit dem Namen erstellen employee mit CREATE TABLEErklärung. In der folgenden Tabelle sind die Felder und ihre Datentypen in der Liste aufgeführtemployee Tabelle -

Sr.Nr. Feldname Datentyp
1 Eid int
2 Name String
3 Gehalt Schweben
4 Bezeichnung Zeichenfolge

Die folgenden Daten definieren die unterstützten Felder wie z Comment, Zeilenformatierte Felder wie Field terminator, Lines terminator, und Stored File type.

COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE

Die folgende Abfrage erstellt eine Tabelle mit dem Namen employee unter Verwendung der obigen Daten.

./hcat –e "CREATE TABLE IF NOT EXISTS employee ( eid int, name String, 
   salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"

Wenn Sie die Option hinzufügen IF NOT EXISTS, HCatalog ignoriert die Anweisung, falls die Tabelle bereits vorhanden ist.

Nach erfolgreicher Erstellung der Tabelle wird die folgende Antwort angezeigt:

OK
Time taken: 5.905 seconds

Datenanweisung laden

Im Allgemeinen können wir nach dem Erstellen einer Tabelle in SQL Daten mit der Insert-Anweisung einfügen. In HCatalog fügen wir jedoch Daten mit der Anweisung LOAD DATA ein.

Beim Einfügen von Daten in HCatalog ist es besser, LOAD DATA zum Speichern von Massendatensätzen zu verwenden. Es gibt zwei Möglichkeiten, Daten zu laden: eine vonlocal file system und zweitens ist von Hadoop file system.

Syntax

Die Syntax für LOAD DATA lautet wie folgt:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL ist die Kennung zur Angabe des lokalen Pfads. Es ist optional.
  • OVERWRITE ist optional, um die Daten in der Tabelle zu überschreiben.
  • PARTITION ist optional.

Beispiel

Wir werden die folgenden Daten in die Tabelle einfügen. Es ist eine Textdatei mit dem Namensample.txt im /home/user Verzeichnis.

1201  Gopal        45000    Technical manager
1202  Manisha      45000    Proof reader
1203  Masthanvali  40000    Technical writer
1204  Kiran        40000    Hr Admin
1205  Kranthi      30000    Op Admin

Die folgende Abfrage lädt den angegebenen Text in die Tabelle.

./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"

Nach erfolgreichem Download wird die folgende Antwort angezeigt:

OK
Time taken: 15.905 seconds