HCatalog - Modifier la table

Ce chapitre explique comment modifier les attributs d'une table, comme changer son nom de table, changer les noms de colonne, ajouter des colonnes et supprimer ou remplacer des colonnes.

Instruction Alter Table

Vous pouvez utiliser l'instruction ALTER TABLE pour modifier une table dans Hive.

Syntaxe

L'instruction prend l'une des syntaxes suivantes en fonction des attributs que nous souhaitons modifier dans une table.

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 ...])

Certains des scénarios sont expliqués ci-dessous.

Renommer en… Instruction

La requête suivante renomme une table de employee à emp.

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

Déclaration de changement

Le tableau suivant contient les champs de employee table et il montre les champs à modifier (en gras).

Nom de domaine Convertir à partir du type de données Changer le nom du champ Convertir en type de données
eid int eid int
Nom Chaîne ename Chaîne
un salaire Flotte un salaire Double
la désignation Chaîne la désignation Chaîne

Les requêtes suivantes renomment le nom de la colonne et le type de données de la colonne en utilisant les données ci-dessus -

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

Instruction Add Columns

La requête suivante ajoute une colonne nommée dept à la employee table.

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

Remplacer l'instruction

La requête suivante supprime toutes les colonnes du employee table et la remplace par emp et name colonnes -

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

Instruction Drop Table

Ce chapitre décrit comment supprimer une table dans HCatalog. Lorsque vous supprimez une table du métastore, cela supprime les données de table / colonne et leurs métadonnées. Il peut s'agir d'une table normale (stockée dans le metastore) ou d'une table externe (stockée dans le système de fichiers local); HCatalog traite les deux de la même manière, quels que soient leurs types.

La syntaxe est la suivante -

DROP TABLE [IF EXISTS] table_name;

La requête suivante supprime une table nommée employee -

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

Lors de l'exécution réussie de la requête, vous obtenez la réponse suivante -

OK
Time taken: 5.3 seconds