HCatalog - Afficher les partitions

Une partition est une condition pour les données tabulaires qui sont utilisées pour créer une table ou une vue distincte. SHOW PARTITIONS répertorie toutes les partitions existantes pour une table de base donnée. Les partitions sont répertoriées par ordre alphabétique. Après Hive 0.6, il est également possible de spécifier des parties d'une spécification de partition pour filtrer la liste résultante.

Vous pouvez utiliser la commande SHOW PARTITIONS pour voir les partitions qui existent dans une table particulière. Ce chapitre décrit comment lister les partitions d'une table particulière dans HCatalog.

Afficher la déclaration des partitions

La syntaxe est la suivante -

SHOW PARTITIONS table_name;

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

./hcat –e "Show partitions employee;"

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

OK
Designation = IT
Time taken: 5.3 seconds

Partition dynamique

HCatalog organise les tables en partitions. C'est un moyen de diviser une table en parties liées en fonction des valeurs des colonnes partitionnées telles que la date, la ville et le département. À l'aide de partitions, il est facile d'interroger une partie des données.

Par exemple, une table nommée Tab1contient des données sur les employés telles que l'identifiant, le nom, le service et le yoj (c'est-à-dire l'année de l'adhésion). Supposons que vous deviez récupérer les détails de tous les employés qui ont rejoint en 2012. Une requête recherche dans toute la table les informations requises. Cependant, si vous partitionnez les données des employés avec l'année et les stockez dans un fichier séparé, cela réduit le temps de traitement des requêtes. L'exemple suivant montre comment partitionner un fichier et ses données -

Le fichier suivant contient employeedata table.

/ tab1 / employeedata / file1

id, name,   dept, yoj
1,  gopal,   TP, 2012
2,  kiran,   HR, 2012
3,  kaleel,  SC, 2013
4, Prasanth, SC, 2013

Les données ci-dessus sont partitionnées en deux fichiers en utilisant l'année.

/ tab1 / employeedata / 2012 / file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/ tab1 / employeedata / 2013 / file3

3, kaleel,   SC, 2013
4, Prasanth, SC, 2013

Ajouter une partition

Nous pouvons ajouter des partitions à une table en modifiant la table. Supposons que nous ayons une table appeléeemployee avec des champs tels que Id, Nom, Salaire, Désignation, Département et yoj.

Syntaxe

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;
partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

La requête suivante est utilisée pour ajouter une partition au employee table.

./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"

Renommer une partition

Vous pouvez utiliser la commande RENAME-TO pour renommer une partition. Sa syntaxe est la suivante -

./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"

La requête suivante est utilisée pour renommer une partition -

./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"

Supprimer une partition

La syntaxe de la commande utilisée pour supprimer une partition est la suivante -

./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,.
   PARTITION partition_spec,...;"

La requête suivante est utilisée pour supprimer une partition -

./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"