HCatalog - Créer une table

Ce chapitre explique comment créer un tableau et comment y insérer des données. Les conventions de création d'une table dans HCatalog sont assez similaires à la création d'une table à l'aide de Hive.

Créer une instruction de table

Create Table est une instruction utilisée pour créer une table dans le métastore Hive à l'aide de HCatalog. Sa syntaxe et son exemple sont les suivants -

Syntaxe

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]

Exemple

Supposons que vous deviez créer une table nommée employee en utilisant CREATE TABLEdéclaration. Le tableau suivant répertorie les champs et leurs types de données dans leemployee table -

Sr.Non Nom de domaine Type de données
1 Eid int
2 Nom Chaîne
3 Un salaire Flotte
4 La désignation chaîne

Les données suivantes définissent les champs pris en charge tels que Comment, Champs au format de ligne tels que Field terminator, Lines terminator, et Stored File type.

COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE

La requête suivante crée une table nommée employee en utilisant les données ci-dessus.

./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;"

Si vous ajoutez l'option IF NOT EXISTS, HCatalog ignore l'instruction au cas où la table existe déjà.

Lors de la création réussie de la table, vous obtenez la réponse suivante -

OK
Time taken: 5.905 seconds

Charger la déclaration de données

Généralement, après avoir créé une table en SQL, nous pouvons insérer des données à l'aide de l'instruction Insert. Mais dans HCatalog, nous insérons des données à l'aide de l'instruction LOAD DATA.

Lors de l'insertion de données dans HCatalog, il est préférable d'utiliser LOAD DATA pour stocker des enregistrements en masse. Il existe deux façons de charger des données: l'une est à partir delocal file system et le second est de Hadoop file system.

Syntaxe

La syntaxe de LOAD DATA est la suivante -

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL est l'identifiant pour spécifier le chemin local. C'est facultatif.
  • OVERWRITE est facultatif pour écraser les données de la table.
  • LA PARTITION est facultative.

Exemple

Nous insérerons les données suivantes dans le tableau. C'est un fichier texte nommésample.txt dans /home/user annuaire.

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 requête suivante charge le texte donné dans la table.

./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"

Lors du téléchargement réussi, vous obtenez la réponse suivante -

OK
Time taken: 15.905 seconds