Partitions et compartiments Hive avec exemple

Les tables, partitions et compartiments font partie de la modélisation des données Hive.

Qu’est-ce que les partitions ?

Hive Partitions est un moyen d'organiser les tables en partitions en divisant les tables en différentes parties en fonction des clés de partition.

La partition est utile lorsque la table possède une ou plusieurs clés de partition. Les clés de partition sont des éléments de base permettant de déterminer comment les données sont stockées dans la table.

Par exemple: -

« Client disposant de données de commerce électronique appartenant aux opérations en Inde dans lesquelles les opérations de chaque État (38 États) sont mentionnées dans leur ensemble. Si nous prenons la colonne d'état comme clé de partition et effectuons des partitions sur ces données indiennes dans leur ensemble, nous pouvons obtenir le nombre de partitions (38 partitions) qui est égal au nombre d'États (38) présents en Inde. De telle sorte que chaque donnée d'état puisse être visualisée séparément dans les tables de partitions.

Exemple d'extrait de code pour les partitions

  1. Création de Table tous états
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Chargement des données dans la table créée tous les états
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Création d'une table de partition
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Pour la partition, nous devons définir cette propriété
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Chargement des données dans la table de partition
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Traitement réel et formation des tables de partition basées sur l'état comme clé de partition
  2. Il y aura 38 sorties de partition dans le stockage HDFS avec le nom de fichier comme nom d'état. Nous vérifierons cela dans cette étape

Les captures d'écran suivantes vous montreront l'exécution du code mentionné ci-dessus

Partitions de ruche

Partitions de ruche

Partitions de ruche

Partitions de ruche

À partir du code ci-dessus, nous faisons les choses suivantes

  1. Création d'un tableau de tous les états avec 3 noms de colonnes tels que l'état, le district et l'inscription
  2. Chargement des données dans la table tous les états
  3. Création d'une table de partition avec l'état comme clé de partition
  4. Dans cette étape, définir le mode de partition comme non strict (ce mode activera le mode de partition dynamique)
  5. Chargement des données dans la partition tablestate_part
  6. Traitement réel et formation des tables de partition basées sur l'état comme clé de partition
  7. Il y aura 38 sorties de partition dans le stockage HDFS avec le nom de fichier comme nom d'état. Nous vérifierons cela dans cette étape. Dans cette étape, nous voyons les 38 sorties de partition dans HDFS

Qu'est-ce que les godets ?

Les compartiments dans la ruche sont utilisés pour séparer les données des tables de la ruche en plusieurs fichiers ou répertoires. il est utilisé pour des requêtes efficaces.

  • Les données présentes dans ces partitions peuvent être divisées en compartiments.
  • La division est effectuée sur la base du hachage de colonnes particulières que nous avons sélectionnées dans le tableau.
  • Les buckets utilisent une forme d'algorithme de hachage au niveau du back-end pour lire chaque enregistrement et le placer dans des buckets.
  • Dans Hive, nous devons activer les buckets en utilisant le set.hive.enforce.bucketing=true ;

Étape 1) Création d'un bucket comme indiqué ci-dessous.

Seaux de ruche

D'après la capture d'écran ci-dessus

  • Nous créons sample_bucket avec des noms de colonnes tels que first_name, job_id, département, salaire et pays.
  • Nous créons 4 buckets ici.
  • Une fois les données chargées automatiquement, placez les données dans 4 compartiments

Étape 2) Chargement de données dans un exemple de compartiment de table

En supposant que la « table des employés » soit déjà créée dans le système Hive. Dans cette étape, nous verrons le chargement des données de la table des employés dans un exemple de compartiment de table.

Avant de commencer à déplacer les données des employés dans des compartiments, assurez-vous qu'elles contiennent des noms de colonnes tels que first_name, job_id, département, salaire et pays.

Ici, nous chargeons les données dans un exemple de seau à partir de la table des employés.

Seaux de ruche

Étape 3)Affichage de 4 compartiments créés à l'étape 1

Seaux de ruche

À partir de la capture d'écran ci-dessus, nous pouvons voir que les données de la table des employés sont transférées dans 4 compartiments créés à l'étape 1.