Introduction
Ce tutoriel vous guidera tout au long du processus de création d'une table Hive externe pour accéder aux données stockées dans le Hadoop Distributed File System (HDFS). Vous apprendrez à configurer la table externe et à interroger les données qu'elle contient, offrant ainsi un moyen transparent de travailler avec les données Hadoop en utilisant l'interface Hive SQL.
Introduction à Hive et HDFS
Qu'est-ce que Hive ?
Hive est une infrastructure de entrepôt de données (data warehouse) construite sur Hadoop, qui offre une interface similaire à SQL pour interroger et gérer les données stockées dans le Hadoop Distributed File System (HDFS). Elle permet aux utilisateurs d'écrire des requêtes dans un langage similaire à SQL appelé HiveQL, qui sont ensuite traduites en tâches MapReduce pouvant être exécutées sur le cluster Hadoop.
Qu'est-ce que HDFS ?
HDFS (Hadoop Distributed File System) est le principal système de stockage de données utilisé par les applications Hadoop. Il est conçu pour stocker de grands ensembles de données de manière fiable et efficace sur plusieurs machines dans un cluster Hadoop. HDFS offre un accès à haut débit aux données des applications et convient aux applications qui ont de grands ensembles de données.
Intégration de Hive et HDFS
Hive est étroitement intégré à HDFS, permettant aux utilisateurs de stocker et d'interroger les données stockées dans HDFS. Hive utilise HDFS comme principal système de stockage de données et offre un moyen de créer des tables qui correspondent aux données stockées dans HDFS.
graph TD
A[Hive] --> B[HiveQL]
B --> C[MapReduce]
C --> D[HDFS]
Cas d'utilisation de Hive et HDFS
Hive et HDFS sont couramment utilisés dans les scénarios suivants :
- Analyse Big Data : Hive et HDFS sont utilisés pour stocker et analyser de grands ensembles de données, tels que les journaux web, les données de capteurs et les données des médias sociaux.
- Entrepôt de données (Data Warehousing) : Hive offre une interface similaire à SQL pour interroger et gérer les données stockées dans HDFS, ce qui en fait un choix populaire pour la construction d'entrepôts de données.
- Traitement par lots (Batch Processing) : Hive peut être utilisé pour effectuer le traitement par lots des données stockées dans HDFS, comme la génération de rapports, l'exécution d'opérations ETL (Extract, Transform, Load) et l'exécution d'algorithmes d'apprentissage automatique.
Création d'une table Hive externe
Comprendre les tables Hive externes
Dans Hive, une table externe est une table qui pointe vers des données stockées dans un emplacement externe, comme le HDFS. Contrairement aux tables internes, qui stockent les données dans le metastore Hive, les tables externes offrent simplement un moyen d'accéder à des données stockées ailleurs.
Création d'une table Hive externe
Pour créer une table Hive externe, vous pouvez utiliser la déclaration SQL suivante :
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
col1 data_type,
col2 data_type,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';
Décortiquons les différentes parties de cette déclaration :
CREATE EXTERNAL TABLE IF NOT EXISTS table_name: Cela crée une nouvelle table externe avec le nom spécifié, ou ignore la création si la table existe déjà.(col1 data_type, col2 data_type, ...): Cela définit les colonnes de la table, ainsi que leurs types de données.ROW FORMAT DELIMITED: Cela spécifie que les données dans l'emplacement externe sont délimitées par un caractère spécifique.FIELDS TERMINATED BY ',': Cela définit le délimiteur de champ sur une virgule.STORED AS TEXTFILE: Cela indique à Hive que les données sont stockées au format fichier texte.LOCATION '/path/to/hdfs/directory': Cela spécifie le répertoire HDFS où les données sont stockées.
Exemple : Création d'une table Hive externe
En supposant que vous ayez un fichier CSV stocké dans le HDFS au chemin /user/hive/data/sales.csv, vous pouvez créer une table Hive externe comme suit :
CREATE EXTERNAL TABLE IF NOT EXISTS sales (
product STRING,
quantity INT,
price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';
Cela crée une table Hive externe nommée sales avec trois colonnes : product, quantity et price. Les données doivent être au format CSV, avec des champs séparés par des virgules.
Interrogation des données dans la table externe
Accès aux données dans la table externe
Une fois que vous avez créé une table Hive externe, vous pouvez interroger les données stockées dans le répertoire HDFS associé de la même manière que vous le feriez avec n'importe quelle autre table Hive. Les données sont automatiquement chargées depuis le HDFS lorsque vous exécutez une requête sur la table.
Exemples de requêtes
Supposons que vous avez créé une table Hive externe nommée sales comme indiqué dans la section précédente. Voici quelques exemples de requêtes que vous pouvez exécuter :
-- Select all rows from the sales table
SELECT * FROM sales;
-- Select specific columns from the sales table
SELECT product, quantity, price FROM sales;
-- Filter the data based on a condition
SELECT * FROM sales WHERE quantity > 10;
-- Perform aggregations on the data
SELECT product, SUM(quantity) AS total_quantity, AVG(price) AS avg_price
FROM sales
GROUP BY product;
Ces requêtes récupéreront les données depuis le répertoire HDFS associé à la table sales et renverront les résultats à l'utilisateur.
Avantages des tables externes
L'utilisation de tables externes dans Hive offre plusieurs avantages :
- Indépendance des données : Les tables externes dissocient les données du metastore Hive, permettant aux données d'être gérées et modifiées indépendamment sans affecter la définition de la table Hive.
- Flexibilité : Les tables externes peuvent être utilisées pour accéder à des données stockées dans différents formats (par exemple, CSV, Parquet, ORC) et emplacements (par exemple, HDFS, Amazon S3, Google Cloud Storage).
- Réduction de la charge de stockage : Étant donné que les données ne sont pas stockées dans le metastore Hive, les tables externes nécessitent moins d'espace de stockage que les tables internes.
- Ingestion de données facilitée : Les tables externes facilitent l'ingestion de données dans l'écosystème Hive, car les données peuvent être directement ajoutées au répertoire HDFS sans avoir à créer une nouvelle table Hive.
En comprenant comment créer et interroger des tables Hive externes, vous pouvez exploiter efficacement le potentiel de Hive et HDFS pour gérer et analyser vos données volumineuses.
Résumé
Dans ce tutoriel axé sur Hadoop, vous avez appris à créer une table Hive externe pour accéder aux données stockées dans le HDFS. En configurant la table externe, vous pouvez désormais interroger et manipuler les données en utilisant la syntaxe SQL Hive familière, sans avoir à interagir directement avec le système de fichiers HDFS sous - jacent. Cette approche simplifie le processus de travail avec les données Hadoop et vous permet d'exploiter les puissantes capacités de l'écosystème Hive.



