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.
รchantillon Code Extrait pour les partitions
- Crรฉation de Table tous รฉtats
create table all states(state string, District string,Enrolments string) row format delimited fields terminated by ',';
- Chargement des donnรฉes dans la table crรฉรฉe tous les รฉtats
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Crรฉation d'une table de partition
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
- Pour la partition, nous devons dรฉfinir cette propriรฉtรฉ
set hive.exec.dynamic.partition.mode=nonstrict
- Chargement des donnรฉes dans la table de partition
INSERT OVERWRITE TABLE state_part PARTITION(state) SELECT district,enrolments,state from allstates;
- Traitement rรฉel et formation des tables de partition basรฉes sur l'รฉtat comme clรฉ de partition
- 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
ร partir du code ci-dessus, nous faisons les choses suivantes
- Crรฉation d'un tableau de tous les รฉtats avec 3 noms de colonnes tels que l'รฉtat, le district et l'inscription
- Chargement des donnรฉes dans la table tous les รฉtats
- Crรฉation d'une table de partition avec l'รฉtat comme clรฉ de partition
- Dans cette รฉtape, dรฉfinir le mode de partition comme non strict (ce mode activera le mode de partition dynamique)
- Chargement des donnรฉes dans la partition tablestate_part
- Traitement rรฉel et formation des tables de partition basรฉes sur l'รฉtat comme clรฉ de partition
- 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.
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.
รtape 3)Affichage de 4 compartiments crรฉรฉs ร l'รฉtape 1
ร 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.







