HCatalog - Crea tabella
Questo capitolo spiega come creare una tabella e come inserire dati in essa. Le convenzioni per la creazione di una tabella in HCatalog sono abbastanza simili alla creazione di una tabella tramite Hive.
Crea istruzione tabella
Crea tabella è un'istruzione utilizzata per creare una tabella nel metastore di Hive utilizzando HCatalog. La sua sintassi e l'esempio sono i seguenti:
Sintassi
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]
Esempio
Supponiamo che sia necessario creare una tabella denominata employee utilizzando CREATE TABLEdichiarazione. La tabella seguente elenca i campi e i relativi tipi di dati nel fileemployee tavolo -
Suor n | Nome campo | Tipo di dati |
---|---|---|
1 | Eid | int |
2 | Nome | Corda |
3 | Stipendio | Galleggiante |
4 | Designazione | corda |
I seguenti dati definiscono i campi supportati come Comment, Campi formattati riga come Field terminator, Lines terminator, e Stored File type.
COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE
La query seguente crea una tabella denominata employee utilizzando i dati di cui sopra.
./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;"
Se aggiungi l'opzione IF NOT EXISTS, HCatalog ignora l'istruzione nel caso in cui la tabella esista già.
Dopo aver creato con successo la tabella, puoi vedere la seguente risposta:
OK
Time taken: 5.905 seconds
Istruzione Load Data
Generalmente, dopo aver creato una tabella in SQL, possiamo inserire i dati utilizzando l'istruzione Insert. Ma in HCatalog, inseriamo i dati utilizzando l'istruzione LOAD DATA.
Durante l'inserimento dei dati in HCatalog, è preferibile utilizzare LOAD DATA per memorizzare i record di massa. Esistono due modi per caricare i dati: uno è dalocal file system e il secondo è da Hadoop file system.
Sintassi
La sintassi per LOAD DATA è la seguente:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
- LOCAL è l'identificatore per specificare il percorso locale. È facoltativo.
- OVERWRITE è facoltativo per sovrascrivere i dati nella tabella.
- PARTITION è opzionale.
Esempio
Inseriremo i seguenti dati nella tabella. È un file di testo denominatosample.txt in /home/user directory.
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
La seguente query carica il testo specificato nella tabella.
./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"
In caso di download riuscito, viene visualizzata la seguente risposta:
OK
Time taken: 15.905 seconds