HCatalog - Utwórz tabelę
W tym rozdziale wyjaśniono, jak utworzyć tabelę i wstawiać do niej dane. Konwencje tworzenia tabeli w HCatalog są bardzo podobne do tworzenia tabeli przy użyciu programu Hive.
Utwórz instrukcję tabeli
Create Table to instrukcja używana do tworzenia tabeli w metastore Hive przy użyciu HCatalog. Jego składnia i przykład są następujące -
Składnia
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]
Przykład
Załóżmy, że musisz utworzyć tabelę o nazwie employee za pomocą CREATE TABLEkomunikat. W poniższej tabeli wymieniono pola i ich typy danych wemployee stół -
Sr.No | Nazwa pola | Typ danych |
---|---|---|
1 | Eid | int |
2 | Nazwa | Strunowy |
3 | Wynagrodzenie | Pływak |
4 | Przeznaczenie | strunowy |
Poniższe dane definiują obsługiwane pola, takie jak Comment, Pola sformatowane wierszami, takie jak Field terminator, Lines terminator, i Stored File type.
COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE
Następujące zapytanie tworzy tabelę o nazwie employee korzystając z powyższych danych.
./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;"
Jeśli dodasz opcję IF NOT EXISTS, HCatalog ignoruje instrukcję, jeśli tabela już istnieje.
Po pomyślnym utworzeniu tabeli zobaczysz następującą odpowiedź -
OK
Time taken: 5.905 seconds
Instrukcja ładowania danych
Generalnie po utworzeniu tabeli w SQL możemy wstawiać dane za pomocą instrukcji Insert. Ale w HCatalog, wstawiamy dane za pomocą instrukcji LOAD DATA.
Podczas wstawiania danych do HCatalogu lepiej jest używać LOAD DATA do przechowywania rekordów zbiorczych. Istnieją dwa sposoby ładowania danych: jeden jest zlocal file system a drugi jest z Hadoop file system.
Składnia
Składnia LOAD DATA jest następująca -
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
- LOCAL to identyfikator określający ścieżkę lokalną. Jest to opcjonalne.
- OVERWRITE jest opcjonalne, aby nadpisać dane w tabeli.
- PARTYCJA jest opcjonalna.
Przykład
Do tabeli wstawimy następujące dane. Jest to plik tekstowy o nazwiesample.txt w /home/user informator.
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
Następujące zapytanie ładuje podany tekst do tabeli.
./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"
Po pomyślnym pobraniu zobaczysz następującą odpowiedź -
OK
Time taken: 15.905 seconds