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