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