HCatalog - Alter Table

Questo capitolo spiega come modificare gli attributi di una tabella, come cambiare il nome della tabella, cambiare i nomi delle colonne, aggiungere colonne e cancellare o sostituire le colonne.

Istruzione Alter Table

È possibile utilizzare l'istruzione ALTER TABLE per modificare una tabella in Hive.

Sintassi

L'istruzione accetta una delle seguenti sintassi in base agli attributi che desideriamo modificare in una tabella.

ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

Alcuni degli scenari sono spiegati di seguito.

Rename To ... Statement

La query seguente rinomina una tabella da employee per emp.

./hcat –e "ALTER TABLE employee RENAME TO emp;"

Dichiarazione di modifica

La tabella seguente contiene i campi di employee tabella e mostra i campi da modificare (in grassetto).

Nome campo Converti da tipo di dati Cambia nome campo Converti in tipo di dati
eid int eid int
nome Corda ename Corda
stipendio Galleggiante stipendio Doppio
designazione Corda designazione Corda

Le seguenti query rinominano il nome della colonna e il tipo di dati della colonna utilizzando i dati precedenti:

./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"

Istruzione Aggiungi colonne

La query seguente aggiunge una colonna denominata dept al employee tavolo.

./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"

Sostituisci istruzione

La seguente query elimina tutte le colonne dal file employee table e lo sostituisce con emp e name colonne -

./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"

Istruzione Drop Table

Questo capitolo descrive come eliminare una tabella in HCatalog. Quando si rilascia una tabella dal metastore, vengono rimossi i dati della tabella / colonna e i relativi metadati. Può essere una tabella normale (memorizzata nel metastore) o una tabella esterna (memorizzata nel file system locale); HCatalog tratta entrambi allo stesso modo, indipendentemente dal tipo.

La sintassi è la seguente:

DROP TABLE [IF EXISTS] table_name;

La query seguente elimina una tabella denominata employee -

./hcat –e "DROP TABLE IF EXISTS employee;"

In caso di corretta esecuzione della query, viene visualizzata la seguente risposta:

OK
Time taken: 5.3 seconds