Vous êtes sur la page 1sur 75

Chapitre 5 : Système Apache HIVE

Professeur Chiba Zouhair


Plan

C’est quoi Hive Apache ?


Histoire de Hive

Hadoop Vs Hive

Hive Vs Pig

Hive vs Pig vs SQL

Caractéristiques de Hive

Limitations de Hive

Pourquoi utiliser Apache Hive ?

Apache Hive : Quels sont les avantages ?

Comment fonctionne Apache Hive ?

Cas d’utilisation d’Apache Hive


Plan (suite)
Architecture Apache Hive

Workflow Apache Hive

Types de données

Exemple programme Apache Hive

Modèle de Données– Hive Data Model

Types de tables

Types de commandes

Commandes DDL

Commandes DML
C’est quoi HIVE ?
 Apache Hive est un datawarehouse (entrepôt de données) open source pour Hadoop. Un entrepôt de données
fonctionne comme un dépôt central où l’information provient d’une ou de plusieurs sources de données. Il recueille
ainsi des données de sources variées et hétérogènes dans le but principal de soutenir l’analyse, le requêtage avec un
langage proche syntaxiquement de SQL, et faciliter ainsi le processus de prise de décision.

 Apache Hive est un logiciel de Data Warehouse initialement créé par Facebook. Il permet d’effectuer facilement et
rapidement des requêtes « SQL-like » pour extraire efficacement des données en provenance de Apache Hadoop.
Contrairement à Hadoop, Hive permet d’effectuer des requêtes SQL sans avoir besoin d’écrire en Java.

 Originalement développé par Facebook pour la gestion de son réseau social, Hive est une infrastructure informatique
similaire au Data Warehouse qui fournit des services de requêtes et d'agrégation de très gros volumes de données
stockées sur un système de fichier distribué de type HDFS. Il a été originalement conçu par Facebook qui cherchait à
fournir à ses analystes de données (des non-développeurs) une infrastructure informatique et un langage proche du SQL
pour l'exploitation de ses pétaoctets de données. Ainsi, Hive a été conçu pour un public qui possède de très bonnes
compétences en SQL et des compétences relativement faibles en programmation Java.

1
C’est quoi HIVE ?
 Utilisation récente de Hive sur Facebook :

 Plus de 300 Po de données sous gestion


 Plus de 600 To de nouvelles données chargées par jour
 Plus de 60 000 requêtes Hive par jour
 Plus de 1000 utilisateurs par jour

 Aujourd’hui, l’interface « SQL-like » d’Apache Hive est devenue la solution la plus populaire pour effectuer des
requêtes et analyser les données Hadoop. Il s’agit d’une solution économique et pouvant être scalée via le Cloud. C’est
pourquoi de nombreuses entreprises comme Netflix et Amazon utilisent et contribuent à améliorer Hive.

 Apache Hive ne s’agit pas d’une base de données relationnelle ni d’un datawarehouse classique. Si Hive n’est pas une
base de données relationnelle ni un datawarehouse classique, qu’est-ce donc alors ?

 Il s’agit d’un système qui maintient des métadonnées décrivant les données stockées dans HDFS. Il utilise une base de
données relationnelle appelée metastore (Derby par défaut) pour assurer la persistance des métadonnées. Ainsi, une
table dans Hive est composée essentiellement :

 D’un schéma stocké dans le Metastore


 De données stockées dans HDFS

 Avec les données du Metastore, Hive permet de manipuler les données comme si elles étaient persistées dans des
tables (au sens d’un système de gestion de base de données classique) et de les interroger avec son langage HiveQL.

 Hive permet de convertir les requêtes HiveQL en jobs MapReduce ou Tez (à partir de la version 0.13 de Hive, une
requête HiveQL peut être traduite en un job exécutable sur Apache Tez, qui est un framework d’exécution sur
Hadoop pouvant remplacer MapReduce).

2
C’est quoi HIVE ?
 D’un point de vue syntaxe, Hive supporte les clauses SQL standards (Fig gauche) ainsi que les commandes de
définition de structure (DDL – Fig droite).

Clauses SQL standards supportées par HiveQL

Exemple de commandes de définition de structure avec HiveQL

 D’un point de vue performance, Hive n’est certainement pas conçu dans une vision d’amélioration des
performances d’exécution des jobs. En effet, les requêtes HiveQL (et donc job MapReduce ou Tez derrière) ne sont
pas exécutées en temps réel et peuvent prendre quelques minutes ou quelques heures pour être exécutées.
Ainsi, l’avantage principal de Hive reste sa capacité d’abstraction par rapport à MapReduce.

3
Histoire de HIVE

 Avant 2008, toute l'infrastructure de traitement des données de Facebook était construite autour d'un entrepôt de
données utilisant RDBMS. Les données de Facebook augmentaient au rythme de 15 To/jour en 2007, et en quelques
années, elles ont augmenté d'environ 2 Po/jour.

 L'infrastructure à ce moment-là prend une journée pour traiter les tâches quotidiennes de traitement des données. Ils
recherchaient donc l'infrastructure qui évolue avec leurs données.

 Hadoop étant open source et évolutif, Facebook a commencé à utiliser Hadoop. Avec Hadoop, ils ont pu traiter les
tâches quotidiennes de traitement des données en quelques heures.

 Cependant, l'utilisation de Hadoop n'a pas été facile pour les utilisateurs finaux, en particulier pour ceux qui ne sont
pas familiers avec MapReduce. Les utilisateurs finaux doivent écrire des tâches MapReduce complexes pour des
tâches simples telles que les comptages, les moyennes, etc.

 Facebook a donc essayé d'apporter les capacités de requête SQL à Hadoop tout en conservant l'extensibilité et la
flexibilité de Hadoop. Cela conduit l'équipe d'infrastructure de données de Facebook à développer Hive. Hive devient
alors très populaire auprès de tous les utilisateurs internes de Facebook.

 Plus tard, en août 2008, Hive est devenu open-source. Maintenant, de nombreuses autres entreprises comme
Amazon, Netflix, etc. utilisent Hive. La dernière version de Hive est Hive 3.1.2, sortie le 26 août 2019.

4
Hadoop Vs Hive

 Hadoop : Hadoop est un framework ou un logiciel qui a été inventé pour gérer d’énormes données ou Big Data.
Hadoop est utilisé pour stocker et traiter des données volumineuses distribuées sur un cluster de serveurs de
base. Hadoop stocke les données à l’aide du système de fichiers distribué HDFS et les traite/interroge à l’aide du
modèle de programmation Map-Reduce.

 Hive : Hive est une application qui s’exécute sur le framework Hadoop et fournit une interface de type SQL
pour traiter/interroger les données. Hive est conçu et développé par Facebook avant de faire partie du projet Apache-
Hadoop. Hive exécute sa requête en utilisant HQL (langage de requête Hive). Hive a la même structure que
RDBMS et presque les mêmes commandes peuvent être utilisées dans Hive. Hive peut stocker les données dans des
tables externes, il n’est donc pas obligatoire d’utiliser HDFS, il prend également en charge les formats de fichiers tels
que ORC, les fichiers Avro, les fichiers de séquence et les fichiers texte, etc.

 Fichier Apache ORC (Optimized Row Columnar) est un format de stockage de données orienté colonne libre et à code source
ouvert de l'écosystème Apache Hadoop.
 Le format de fichier AVRO est associé au système de sérialisation des données de Apache Hadoop appelé Apache Avro.
5
Hadoop Vs Hive/Ruche

6
Hive Vs Pig
Pig Hive
Apache Pig utilise un langage appelé Pig Hive utilise un langage appelé HiveQL. Il a
Latin. Il a été créé à l'origine chez Yahoo été initialement créé chez Facebook

Pig latin est un langage de flux de données HiveQL est un langage de traitement de
requêtes
Pig Latin est un langage de flux de données HiveQL est un langage déclaratif
procédural
Pig est généralement utilisé par les Hive est principalement utilisé par les Data
chercheurs et les programmeurs Analysts
Pig est essentiellement utilisé pour la Hive est essentiellement utilisé pour la
programmation génération/création de rapports

Apache Pig peut gérer des données Apache Hive est principalement destiné aux
structurées, non structurées et semi- données structurées
structurées
Bien que Pig soit aussi bien une variante SQL, Hive utilise l'expertise SQL et donc une très
il y a une grande variation qui lui est associée petite courbe d'apprentissage pour les
et donc la courbe d'apprentissage pour développeurs SQL
apprendre Pig est considérablement grande
Pig fonctionne côté client d'un cluster HDFS Hive fonctionne côté serveur d'un cluster
HDFS
Il n'est pas prévu de maintenir une base de Hive s'appuie sur le langage SQL DLL avec
données de métadonnées dédiée et, par des définitions de tables à l'avance et stocke
conséquent, les schémas/types de données les détails du schéma sur une base de données
sont définis dans les scripts eux-mêmes dans locale appelée Métastore (Derby par défaut)
Pig
7
Hive Vs Pig (Suite)
Pig Hive
Pig fonctionne côté client d'un cluster HDFS Hive fonctionne côté serveur d'un cluster
HDFS
Pig est un merveilleux outil ETL pour le Big Hive est très utile dans les domaines de
Data (pour ses puissantes capacités de l'ETL
transformation et de traitement)
Pig supporte les fichiers Avro Il n'y a aucune disposition de Hive pour
prendre en charge fichiers Avro
Pig n’utilise pas des partitions directement, Hive applique le principe des partitions sur
mais la fonctionnalité peut être obtenue à les données pour traiter des sous-ensembles en
l'aide de filtres. fonction des dates ou par ordre
chronologique…etc

Pig charge les données rapidement Hive charge les données lentement

Pig ne prend pas en charge JDBC Hive prend en charge JDBC

Pig ne prend pas en charge ODBC Hive prend en charge ODBC


Pig n'a pas de base de données de Hive utilise la variation exacte du langage
métadonnées dédiée. SQL-DDL dédié en définissant des tables au
préalable. Il utilise une BD dédiée au
métadonnées (Metastore)

Pig convient aux structures de données Hive convient aux systèmes OLAP de
complexes et imbriquées traitement par lots
Il est très facile d'écrire des UDF sous Pig Il prend en charge les UDF mais, il est
beaucoup plus difficile à déboguer.
OLAP (Online Analytical Processing) : permet aux utilisateurs d'analyser des données présentes de plusieurs systèmes de bases de données en
même temps.
8
Hive vs Pig vs SQL

9
Caractéristiques de Hive
 Il stocke le schéma dans une base de données et traite les données dans HDFS.

 Le stockage distribué Apache Hive.

 Les tables peuvent être divisées en portions (Partitions) et en seaux (Bukets).

 Flexibilité et évolution du schéma.

 Les pilotes JDBC/ODBC sont disponibles.

 Les tables Hive peuvent être définies directement dans le HDFS.

 Apache Hive fournit un accès facile aux données via des requêtes de type SQL, nous pouvons donc l'utiliser pour des
tâches d'entreposage de données telles que ETL (extraire/transformer/charger), le reporting et l'analyse de données.

 Il fournit un langage de type SQL pour interroger les données appelé HiveQL ou HQL.

 En utilisant Apache Hive, nous pouvons imposer une structure à une variété de formats de données.

 Il est conçu pour OLAP (Online Analytical Processing).

 Il est familier, rapide, évolutif et extensible.

 En utilisant Hive, nous pouvons accéder aux fichiers stockés dans Hadoop Distributed File System (HDFS est
utilisé pour interroger et gérer de grands ensembles de données résidants) ou dans d'autres systèmes de stockage de
données tels qu'Apache HBase.

. Exécution de la requête via Apache Spark, Apache Tez ou MapReduce.



10
Limitations de Hive
o Hive est le meilleur pour travailler avec des tâches par lots (batch jobs), nous ne pouvons donc pas l'utiliser pour le
traitement des transactions en ligne (Online Transaction Processing). Nous pouvons l'utiliser pour le traitement des
transactions en ligne (OLTP: Online Trasactional Processing).

o La latence de la requête Apache Hive est généralement très élevée.

o Dans Hive, les sous-requêtes ne sont pas prises en charge.

o HQL ne prend en charge que les équi-jointures, les jointures externes et les semi-jointures gauches.

o Comme il ne s'agit que d'un shell pour Map-Reduce, les requêtes complexes peuvent être difficiles à optimiser.

o Il manque de grandes parties de la spécification SQL complète:

 Clause HAVING dans SELECT


 Sous-requêtes corrélées
 Sous-requêtes en dehors des clauses FROM
 Vues actualisables ou matérialisées
 Procédures stockées

11
Pourquoi utiliser Apache Hive ?
 Apache Hive combine les avantages du système SQL DataBase et du framework Hadoop MapReduce. Avec
Hive, on peut effectuer une analyse de données en douceur sans écrire les tâches MapReduce complexes.

 Nous pouvons utiliser Hive pour analyser, interroger et résumer de gros volumes de données. Il convient mieux
aux tâches d'entreposage de données traditionnelles où les utilisateurs peuvent effectuer des analyses de données et
de l'exploration de données qui ne nécessitent pas de traitement en temps réel.

 Il est facilement possible de coupler des requêtes Hive à différents packages Hadoop tels que RHive, RHipe et
même Apache Mahout.

 Par exemple, nous pouvons utiliser l'intégration Tableau et Hive pour la visualisation de données ; Apache Tez,
avec Hive, fournira des capacités de traitement en temps réel, etc.

 De plus, Hive aide les développeurs tout en travaillant avec des traitements analytiques complexes et des formats
de données difficiles. Hive SQL peut être étendu avec des fonctions définies par l'utilisateur.

 Pour ces raisons, un grand nombre d'entreprises, dont Amazon, Netflix, Facebook etc., utilisent Apache Hive.
12
Apache Hive : Quels sont les avantages ?
 Apache Hive est une solution idéale pour les requêtes et les analyses de données. Elle permet donc d’obtenir
des informations qualitatives (« insights ») procurant un avantage compétitif et facilitant la réactivité face à la
demande du marché.

 Parmi les principaux avantages de Apache Hive, on peut citer la simplicité d’utilisation liée à son langage « SQL-
friendly » . En outre, ce logiciel accélère l’insertion initiale de données puisque les données n’ont pas besoin d’être
lues ni numérotées sur un disque dans le format interne de la base de données.

 Sachant que les données sont stockées dans le HDFS, il est possible de stocker de larges datasets pouvant aller
jusqu’à des centaines de petabytes de données sur Apache Hive. De fait, cette solution est bien plus scalable qu’une
base de données traditionnelle. Sachant qu’il s’agit d’un service Cloud, Apache Hive permet aux utilisateurs de lancer
rapidement des serveurs virtuels en fonction des fluctuations de workloads (soit, des tâches).

 La sécurité est également au rendez-vous, avec la possibilité de répliquer les workloads critiques pour la
restauration en cas de problème. En outre, la sécurité est assurée par Hadoop. Elle repose donc
sur Kerberos pour l’authentification mutuelle entre le client et le serveur. Les permissions pour les fichiers
nouvellement créés dans Apache Hive sont dictées par HDFS, qui permet l’autorisation par utilisateur, groupe ou
autre.

 Enfin, la capacité de travail est hors pair puisqu’il est possible d’effectuer jusqu’à 100 000 requêtes par heure.
13
Comment fonctionne Apache Hive ?
 Au sein de l’architecture d’Apache Hive, de multiples interfaces sont disponibles comme notamment interface web,
CLI, ou encore celles des clients externes. En effet, le serveur « Apache Hive Thrift » permet aux clients distants de
soumettre des commandes et des requêtes à Apache Hive en utilisant divers langages de programmation. Le répertoire
central d’Apache Hive est un « Metastore » contenant toutes les informations sur les tables à savoir les métadonnées.

 Les données sont accessibles via HiveQL. Au sein de chaque base de données, les données sont numérotées et chaque
table correspond à un répertoire HDFS.

 Les tables Apache Hive sont similaires à ceux d’une base de données relationnelle, et les unités de données sont
organisées de l’unité la plus large à la plus granulaire. Les bases de données sont constituées de tableaux composés
de « partitions » (sous-répertoires HDFS), pouvant à nouveau être décomposées en « buckets » (fichiers HDFS).

 Le moteur permettant le fonctionnement de Hive est appelé « le pilote ou Driver ». Il regroupe un compilateur et
un optimisateur pour déterminer le meilleur plan d’exécution, ainsi qu’un exécuteur.

 Apache Hive (Driver Hive) traduit les programmes rédigés en langage HiveQL (proche de SQL) en une ou plusieurs
tâches Java MapReduce, Apache Tez, ou Apache Spark. Il s’agit de trois moteurs d’exécution pouvant être lancés
sur Hadoop. Comme mentionné précédemment, Apache Hive organise les données de tables Hive en fichiers
HDFS (Hadoop Distributed Filed System) afin d’exécuter les tâches sur un cluster pour produire une réponse.
14
Cas d’utilisation d’Apache Hive
Apache Hive Use Case – Facebook :

 Avant de mettre en œuvre Hive, Facebook a dû faire face à de nombreux défis car la taille des données générées
augmentait ou plutôt explosait, ce qui rendait leur gestion très difficile. Le SGBDR traditionnel ne pouvait pas
supporter la pression et, par conséquent, Facebook recherchait de meilleures options.

 Pour résoudre ce problème imminent, Facebook a d'abord essayé d'utiliser Hadoop MapReduce, mais avec des
difficultés de programmation et des connaissances obligatoires en SQL, cela en a fait une solution peu pratique. Hive
leur a permis de surmonter les défis auxquels ils étaient confrontés.

 Avec Hive, ils peuvent désormais effectuer les opérations suivantes :

 Les tables peuvent être divisées en portions (partitions) et en seaux (Buckets)


 Flexibilité et évolution du schéma
 Les pilotes JDBC/ODBC sont disponibles
 Les tables Hive peuvent être définies directement dans le HDFS
 Extensible – Types, Formats, Fonctions et scripts
15
Cas d’utilisation d’Apache Hive
Hive Use Case – Healthcare :

Apache Hive peut être utilisé aux endroits suivants :

o Data Mining (Exploration de données)

o Log Processing (Traitement des journaux)

o Document Indexing (Indexation de documents)

o Customer Facing Business Intelligence (Intelligence


d'affaires orientée client)

o Predictive Modelling (Modélisation prédictive)

o Hypothesis Testing (Tests d'hypothèses) 16


Architecture Apache Hive (1/5)

Hive Clients
 Hive Thrift Client - Le client Hive Thrift prend en charge/aide différents types d'applications clientes utilisant
différents langages de programmation aux fins d’interagir avec Hive pour le traitement des données. Pour
l'intégration directe des fonctions Map et Reduce sous forme d'UDF (User Defined Functions) dans la requête
HiveQL, HIVE s'appuie sur Apache Thrift qui lui permet entre autres d'écrire les UDF en plusieurs langages de
programmation (Java, Python, Ruby…).

 JDBC Application - Toute application JDBC (Java DataBase Connectivity) peut se connecter à Hive à l'aide du
pilote Hive JDBC (Hive JDBC driver).

 ODBC Application - Les clients ODBC (Open DataBase Connectivity) peuvent également se connecter à Hive à
l'aide du pilote ODBC Hive (Hive ODBC driver). 17
Architecture Apache Hive (2/5)
Hive Services
HiveServer/Thrift Server

HiveServer est un service qui permet à un client distant de soumettre une requête à Hive. La demande peut provenir de
divers langages de programmation tels que Java, C++, Python. HiveServer est construit sur Apache Thrift, nous pouvons
donc également l'appeler Thrift Server. Thrift est un framework logiciel qui répond aux demandes d'autres langages de
programmation qui prennent en charge Thrift. Les différentes applications clientes telles que Thrift Application, JDBC,
ODBC peuvent se connecter à Hive via HiveServer. Toutes les demandes des clients sont soumises à HiveServer
uniquement.

Hive CLI

CLI (Command Line Interface) est l’interface la plus couramment utilisée pour se connecter à Hive. Les développeurs
peuvent soumettre leurs requêtes à Hive via Hive CLI. Pour accéder à la CLI de Hive, la machine cliente doit avoir Hive
installé. Une fois installé, vous pouvez accéder à Hive en exécutant «Hive» depuis le terminal.

Hive Web Interface (HWI)

L'interface Web Hive (Hive Web Interface) est une interface graphique permettant de soumettre et d'exécuter des
requêtes Hive. Pour les exécuter via l'interface Web, vous n'avez pas besoin d'avoir Hive installé sur votre machine. Un
développeur peut ouvrir l'URL dans plusieurs fenêtres pour exécuter plusieurs requêtes en parallèle. Un autre avantage de
HWI est que vous pouvez parcourir le schéma et les tables de Hive.

18
Architecture Apache Hive (3/5)
Hive Services (suite)
Hive driver
Il est capable de recevoir des requêtes HQL de plusieurs ressources telles que Thrift, JDBC et ODBS à l'aide du serveur
Hive et directement à partir de Hive CLI et de l'interface utilisateur Web. Après avoir reçu ces requêtes, il les transfère au
compilateur.
le pilote de Hive comporte trois composants différents :
 Compiler (Compilateur) : Le compilateur Hive est celui qui analyse la requête Hive. Il est responsable de
l'analyse sémantique et de la vérification de types. Il génère le plan d'exécution sous forme de DAG (Directed
Acyclic Graph).
 Optimizer (Optimiseur) : Optimizer est chargé d'effectuer les opérations de transformation sur le plan
d'exécution. Il divise la tâche afin d'améliorer l'efficacité et l'évolutivité. Ainsi, l'optimiseur générera le plan
logique optimisé sous la forme de tâches MR. (HiveQL Process Engine = Compiler + Optimizer)
 Executor (Exécuteur) : Le moteur d'exécution exécute la tâche après les étapes de compilation et
d'optimisation dans l'ordre de leurs dépendances à l'aide de Hadoop. (Execution Engine = Executor)
Metastore (Hcatalog)
Il s'agit d'un référentiel central qui stocke les informations de
métadonnées liées à la structure des tables et des partitions,
y compris les informations de colonne et de type de colonne.
Metastore stocke également les informations du sérialiseur
et du désérialiseur nécessaires à l'opération de
lecture/écriture. Ce métastore est normalement une base de
données relationnelle. Il existe 3 façons de stocker dans
Metastore : le métastore intégré (Embedded Metastore), le
métastore local (Local Metastore) et le métastore distant
(Remote Metastore). La plupart du temps, Remote Metastore
sera utilisé en mode production. Metastore est indépendant
de Hive et Hadoop. 19
Architecture Apache Hive (4/5)
SerDe
Deserializer donne des instructions à Hive sur la façon de traiter un enregistrement.
Quelles sont les bases de données supportées par Hive pour le stockage des métadonnées ?
Par défaut, Hive utilise une base de données Derby pour stocker les métadonnées. C'est une base de données intégrée. Vous
pouvez toutefois configurer le Metastore avec une base de données externe pour stocker les métadonnées de manière fiable.
Pour ce faire, vous devez modifier le fichier de configuration hive-site.xml en spécifiant l'URL de connexion à la base de
données externe. Les autres bases de données supportées, à part Derby, sont MySQL, MS SQL Server, Oracle et
Postgres.

Quels sont les différents modes de déploiement du Metastore dans Hive ?

Il existe trois modes de déploiement du Metastore :

 Mode embarqué (Metastore embarqué) : le mode embarqué est le mode de déploiement par défaut du Metastore.
Dans ce mode, le Metastore utilise une base de données Derby, et la base de données et le service Metastore sont
intégrés dans le même processus que le service Hive. Ce mode ne peut prendre en charge qu'un seul utilisateur
actif à la fois et n'est recommandé qu'à des fins de test ;

 Mode local (Metastore local) : ce mode permet d'avoir de nombreuses sessions Hive, c'est-à-dire que de
nombreux utilisateurs peuvent utiliser le Metastore en même temps. Le service Metastore s'exécute toujours dans
le même processus que le service Hive, mais il se connecte à une base de données (compatible JDBC comme
MySQL) s'exécutant dans un processus séparé, soit sur la même machine, soit sur une machine distante ;

 Mode distant (Metastore distant) : dans ce mode, le service Metastore s'exécute dans son propre processus JVM,
et non dans la JVM du service Hive. C'est ce mode qui est recommandé en production.

20
Architecture Apache Hive (5/5)
Process and Resource management
Hive utilise le framework MapReduce pour exécuter les requêtes. La requête sera exécutée par MR1 dans Hadoop1. Dans
Hadoop2, la requête peut également être exécutée par MapReduce et le moteur TEZ. Mais, les deux feront appel à YARN
pour exécution. YARN négociera pour obtenir la ressource requise pour exécuter les requêtes.

Storage

o Hive n'a pas son propre mécanisme de stockage. Il utilise le HDFS pour stocker les données traitées. Le format de
sortie et le délimiteur du tableau détermineront la structure du fichier.
o Hive prend en charge plusieurs formats d'entrée et leurs formes compressées. Certains des formats d'entrée pris en
charge par Hive sont text, parquet, JSON.

21
Workflow Apache Hive (1/3)
Voyons maintenant le fonctionnement ou flux du travail (workflow) de Hive sur le Framework Hadoop.

Workflow de Apache Hive

1. Execute Query
L'interface Hive telle que la ligne de commande ou l'interface utilisateur Web envoie une requête HQL à
exécuter au pilote ou Hive Driver (Ces requêtes peuvent provenir de différentes applications clientes telles que
Hive Thrift Application, JDBC Application, et ODBC Application via HiveServer.)

2. Get Plan

Le Driver sollicite le compilateur de requêtes qui analyse la requête pour vérifier la syntaxe, et le plan de
requête ou l'exigence de la requête.

22
Workflow Apache Hive (2/3)
3. Get Metadata
Une fois la vérification de la syntaxe effectuée par le
compilateur, ce dernier envoie une demande de
métadonnées au Metastore (utilisant toute base de
données; Derby, MySQL…etc).
4. Send Metadata
Envoi des métadonnées au compilateur en réponse à
sa requête précitée. Désormais, les métadonnées
fournissent des informations telles que la base de
données, les tables, et les types de données de
colonnes.
5. Send Plan
Le compilateur vérifie à nouveau toutes les exigences reçues du Metastore et envoie le plan d'exécution au pilote.
Jusqu'ici, l'analyse et la compilation d'une requête sont terminées.
6. Execute Plan
Maintenant, le Driver sollicite l’autre composant de HiveQL Process Engine soit Optimizer (Optimiseur), qui
générera le plan logique optimisé sous la forme de tâches MapReduce. Ensuite, le Driver envoie le plan d'exécution
au moteur d'exécution (Execution Engine).

7. Execute Job & Metadata Ops


En interne, le processus d'exécution du job est un job MapReduce. Le moteur d'exécution (Execution Engine) envoie
le travail/tâche au JobTracker, qui se trouve dans NameNode, qui à son tour l’affecte au TaskTracker, qui se situe
et tourne sur DataNode. Ici, la requête HQL est exécutée sous forme d’un travail/tâche MapReduce. En même
temps, le Drive met à jour les métadonnées relatives au tâche MapReduce dans la base de métadonnées associée au
Metastore.
23
Workflow Apache Hive (3/3)
8. Fetch Result
Une fois le traitement effectué, le Moteur
d'exécution (Execution Engine) reçoit les
résultats de la requête de la part du Hadoop

9 & 10. Send Results


Le Moteur d'exécution transfère les résultats au
Drive, qui les envoie finalement à l'interface
utilisateur de Hive d'où nous pouvons voir les
résultats.

Architecture 2 de Apache Hive Architecture 3 de Apache Hive


24
Workflow Apache Hive (Exemple)

25
Types de données en Apache Hive (1/2)
Les types de données Hive sont divisés en 5 catégories différentes :

1. Numeric Type: TINYINT, SMALLINT, INT, BIGINT


2. Date/Time Types: TIMESTAMP, DATE, INTERVAL
3. String Types: STRING, VARCHAR, CHAR
4. Complex Types: STRUCT, MAP, UNION, ARRAY
5. Misc Types: BOOLEAN, BINARY

Voici une petite description de quelques-uns d'entre eux.

26
Types de données en Apache Hive (2/2)

27
Exemple programme Apache Hive (1/4)
Nous allons maintenant entrer concrètement dans l'écriture des requêtes HiveQL. Lorsque vous voulez écrire des requêtes
HiveQL, voici en général l'ensemble des étapes que vous devez respecter. Nous allons illustrer ces étapes à l'aide d'un
exemple. Considérons le fichier suivant :

1. La première étape dans l'écriture de la requête consiste à définir la base de données dans laquelle sera stockée la table
de référence dans le catalogue, HCatalog. HCatalog possède une base « default » qui est utilisée par défaut pour le
stockage des métadonnées. L'instruction suivante définit la base de données de catalogue :

USE default ;

28
Exemple programme Apache Hive (2/4)
2. La deuxième étape consiste à créer une table intermédiaire dans la base de catalogue. Cette table va pointer vers les
données de tous les fichiers sources que vous voulez traiter. Pour ce faire, vous utiliserez une instruction CREATE
TABLE.

Dans le cas de notre exemple, cette instruction crée une table log_clients contenant toutes les colonnes du fichier source.
L'instruction ROW FORMAT DELIMITED FIELDS TERMINATED BY permet de préciser le code ANSI du
séparateur de colonnes (la tabulation dans notre cas) dans le fichier source, et l'instruction STORED AS permet de
spécifier le format sur lequel le fichier est sérialisé dans le HDFS (ici c'est un fichier plat classique).

3. La troisième étape consiste à charger les données du HDFS dans la table intermédiaire. Le chargement de données du
HDFS se fait à l'aide de l'instruction LOAD DATA.

Le chemin '/user/projetdemo/clients' spécifie le chemin d'accès sur le HDFS du dossier contenant le ou les fichiers
dont les données seront analysées. Le mot clé OVERWRITE permet d'écraser les données éventuelles qui pourraient
être déjà présentes dans la table lors du stockage des nouvelles données. 29
Exemple programme Apache Hive (3/4)
4. La quatrième étape consiste à construire la table dont vous avez besoin pour vos analyses. Cette fois, vous devez
spécifier à partir de la table intermédiaire les calculs nécessaires pour obtenir les colonnes dont vous avez besoin.
Supposons dans notre exemple que nous voulons les colonnes suivantes :

 la colonne « Noms du client », obtenue par concaténation des colonnes « nom_client » et « prenom_client » ;
 la colonne « Sexe », obtenue par l'extraction de la première lettre de la colonne « genre » ;
 la colonne « age_client », obtenue par différentiel de date entre la colonne « date_naissance » et la date
d'aujourd'hui ;
 la colonne « vente », obtenue par multiplication des colonnes « prix » et « quantité » ;

5. La dernière étape enfin, consiste à effectuer vos analyses sur la table que vous venez de créer. Pour ce faire, vous
utiliserez une instruction SELECT classique. Supposons que dans notre exemple, nous souhaitons obtenir la somme
des ventes par genre des clients qui ont entre 25 et 30 ans. Nous obtiendrons la requête suivante :

30
Exemple programme Apache Hive (4/4)
L'ensemble du programme Hive qui résout notre problème est le suivant :

Comme vous pouvez le voir, il est relativement simple d'exprimer ses requêtes en HiveQL. L'utilisateur métier se retrouve
alors en train d'exploiter tout un cluster et de faire du MapReduce sans en faire !

31
Modèle de Données dans Hive – Hive Data Model
 Une table dans Hive permet d’associer une structure à des données structurées dans HDFS. La création d’une table dans
Hive est similaire à la création d’une table dans un RDBMS et s’effectue avec la commande CREATE TABLE.

 Chaque table a un répertoire correspondant dans HDFS. Les données sont sérialisées et stockées sous forme de
fichiers dans ce répertoire. Hive a une sérialisation par défaut intégrée qui prend en charge la compression et la
désérialisation paresseuse. Les utilisateurs peuvent spécifier des schémas de sérialisation et de désérialisation
personnalisés.

Où les données d'une table Hive sont-elles stockées ?

Par défaut, les tables Hive sont stockées dans HDFS, dans un répertoire du type */hive/warehouse. Toutefois, il est
possible de spécifier un autre emplacement en éditant le paramètre hive.metastore.warehouse.dir dans le fichier de
configuration hive-site.xml. Précisons également qu'il s'agit ici d'une table gérée (Managed Table ou Internal Table).
Pour une table externe (External Table), c'est l'utilisateur qui indique l'emplacement où les données doivent être stockées.

32
Modèle de Données dans Hive – Hive Data Model

Partitioning (Partitionnement) : Hive organise les tables en partitions basées sur des clés de partition pour regrouper
des données similaires. Ces partitions ne sont rien d'autre que les sous-répertoires du répertoire de la table. Cela nous
permet de faire une requête rapide sur les tranches de données. La table Hive peut avoir une ou plusieurs clés de partition
pour identifier les partitions dans la table.
Bucketing : Dans Hive, chaque partition peut être organisée en compartiments (Buckets) en fonction de la fonction de
hachage d'une colonne de la table. Ces compartiments sont stockés sous forme de fichiers dans le répertoire de partition. La
table non partitionnée peut également être divisée en compartiments où chaque compartiment est stocké sous forme de
fichier dans un répertoire de table.

Fonctionnement de Bucketing dans Hive :


o Le concept de bucketing est basé sur la technique de hachage.
o Ici, le modulo (reste de la division) de la valeur de colonne
actuelle par le nombre de buckets requis est calculé (disons, F(x)
% 3).
o Maintenant, en fonction de la valeur obtenue, les données sont
H(column) mod numBuckets = bucket number 33
stockées dans le bucket correspondant.
Types de tables dans Hive
Quels sont les différents types de tables dans Hive ?
 Hive a deux types de tables : les tables gérées ou internes (Managed Table or Internal Table) et les tables externes
(External Table). Dans Hive, lorsqu'on crée une table, Hive gère par défaut les données. Cela signifie que Hive déplace
les données dans son répertoire warehouse. Et si l'on supprime une table gérée, Hive supprimera la table, y compris
ses données et métadonnées. Les données n'existent plus nulle part. C'est ce que signifie pour Hive de gérer des
données.

 Les tables externes dans Hive se comportent différemment. L'emplacement des données de la table externe est
spécifié au moment de la création de la table. Lors de la création d'une table externe, Hive ne déplace pas les données
vers son répertoire warehouse. Il ne vérifie même pas si l'emplacement externe existe au moment où il est défini. Une
chose importante à noter est que lorsqu'on supprime une table externe, Hive laissera les données intactes et supprimera
uniquement les métadonnées.

Hive Managed table et External table


 La différence entre une Managed table et une External table est la gestion des données lorsque la table est
supprimée.
 En effet, la suppression d’une Managed table entraîne la suppression des métadonnées ainsi que les données dans
HDFS (pour notre exemple Fig.a, les données sont stockées dans HDFS par défaut sous
/apps/hive/warehouse/product). En revanche, la suppression d’une External table entraîne uniquement la
suppression des métadonnées. C’est bien pratique, une External table est un moyen de protéger les données
contre les commandes drop accidentelles.

Commande HiveQL pour la création d’une managed table product


ayant 5 colonnes (Fig. a )

34
Types de tables dans Hive
Hive permet aussi de spécifier l’emplacement de stockage de données dans HDFS, pour le cas d’une table externe (Fig.
b), et ne pas se limiter à l’emplacement de stockage par défaut. Ceci est possible en ajoutant la clause LOCATION lors
de la création table.

Commande HiveQL pour la création d’une


external table product-ext avec spécification de
l’emplacement de stockage de donnés dans
HDFS (Fig. b)

Chargement des données dans une table Hive

 Un des points forts de Hive réside en sa capacité d’associer des métadonnées aux données. La source de ces
données peut être le système de fichiers ou HDFS. Pour cela, il faut utiliser la commande LOAD DATA. Comment
ce chargement s’effectue ?

 Pour une Managed table : les données sont déplacées dans un sous répertoire de /apps/hive/warehouse qui est le
répertoire racine par défaut. Réellement, les données ne sont pas chargées mais déplacées (comme s’il s’agit d’un
mv sous Linux). Le mot clé LOCAL signifie que le fichier d’entrée est dans le système de fichiers local. Si LOCAL
est omis, il s’agit d’un fichier d’input dans HDFS.

35
Types de tables dans Hive
Le mot clé OVERWRITE signifie que les données (si elles existent) dans la table product seront supprimées. Si
OVERWRITE est omis, les données seront ajoutées (mode append) aux données existantes.

Fig. c : Commande HiveQL pour charger les données depuis un fichier d’entrée dans le système de fichiers dans
la table product avec écrasement des données existantes

 Pour une External table : les données sont déplacées dans le répertoire spécifié dans la clause LOCATION de la
définition de la table (Fig. d). Pour cet exemple, le fichier d’entrée product-ext.txt sera déplacé dans
/user/BigDataLab/Hive_part1/products puisqu’il s’agit de l’emplacement défini lors de la création de la table (Fig. b).

Fig. d : Commande HQL pour charger les données depuis HDFS dans la table product-ext

36
Types de commandes dans Hive

Les types de commandes HQL sont :

 Data Definition Language (DDL) :

 Les commandes Hive DDL sont les instructions utilisées pour définir et modifier la structure d'une table ou
d'une base de données dans Hive. En autres termes, elles sont utilisées pour construire ou modifier les
tables, les bases de données, et autres objets de la base de données.

 Par ex. Commandes CREATE TABLE, DROP TABLE avec des extensions pour définir les formats de
fichiers, les informations de partitionnement et de compartimentage.

 Data Manipulation Language (DML) :

 Les commandes du langage de manipulation de données Hive sont utilisées pour insérer, récupérer,
modifier, supprimer, et mettre à jour des données dans les tables Hive.

 Par ex. charger des données depuis des tables externes et insérer des lignes à l'aide des commandes
LOAD et INSERT.

37
Commandes DDL dans Apache Hive
Les différents types de commandes Hive DDL sont :

Commande DDL Fonction


CREATE Elle est utilisée pour créer une table ou une base de données.

SHOW Elle est utilisée pour afficher la base de données, la table, les propriétés, etc.

ALTER Pour les tables, elle est employée pour apporter des modifications à la table
existante. Pour les bases de données, elle est employée pour modifier les
métadonnées associées à la base de données dans Hive.

DESCRIBE Pour les tables, elle décrit les colonnes d’une table. Pour les bases de données,
affiche le nom de la base de données dans Hive, son commentaire (s'il est
défini) et son emplacement sur le système de fichiers.
TRUNCATE Pour les tables, utilisée pour tronquer et supprimer définitivement les lignes
d’une table.
USE L'instruction USE dans Hive est utilisée pour sélectionner la base de données
spécifique pour une session sur laquelle toutes les instructions HiveQL
suivantes seront exécutées.
DROP Pour les bases de données, elle est utilisé pour supprimer la base de données.
Pour les tables, L'instruction "Drop Table" supprime les données et les
métadonnées d'une table interne. Dans le cas de tables externes, seules les
métadonnées sont supprimées.

38
Commandes DDL sur les bases de données Hive
1. CREATE DATABASE dans Hive
L'instruction CREATE DATABASE est utilisée pour créer une base de données dans Hive. DATABASE et le SCHEMA
sont interchangeables. Nous pouvons utiliser DATABASE ou SCHEMA.

Syntaxe:

DDL CREATE
DATABASE
Exemple:

39
Commandes DDL sur les bases de données Hive
2. SHOW DATABASE dans Hive
L'instruction SHOW DATABASES répertorie toutes les bases de données présentes dans Hive.

Syntaxe:

DDL SHOW
DATABASE
Exemple:

40
Commandes DDL sur les bases de données Hive
3. DESCRIBE DATABASE dans Hive
L'instruction DESCRIBE DATABASE dans Hive affiche le nom de la base de données dans Hive, son commentaire (s'il
est défini) et son emplacement sur le système de fichiers. L’option EXTENDED peut être utilisé pour obtenir les propriétés
de la base de données.
Syntaxe:

DDL
DESCRIBE
DATABASE
Exemple:

41
Commandes DDL sur les bases de données Hive
4. USE DATABASE dans Hive
L'instruction USE dans Hive est utilisée pour sélectionner la base de données spécifique pour une session sur laquelle toutes
les instructions HiveQL suivantes seront exécutées.

Syntaxe:

DDL USE
DATABASE
Exemple:

42
Commandes DDL sur les bases de données Hive
5. DROP DATABASE dans Hive
L'instruction DROP DATABASE dans Hive est utilisée pour supprimer une base de données. Le comportement par défaut
est RESTRICT, ce qui signifie que la base de données n'est supprimée que lorsqu'elle est vide. Pour supprimer la base de
données avec des tables, nous pouvons utiliser CASCADE.

Syntaxe:

DDL USE
DATABASE
Exemple:

43
Commandes DDL sur les bases de données Hive
6.1 ALTER DATABASE dans Hive
L'instruction ALTER DATABASE dans Hive est utilisée pour modifier les métadonnées associées à la base de données
dans Hive.
Syntaxe:

Dans cet exemple, nous définissons les propriétés de la base de données 'dataflair' après sa création à l'aide de la
commande ALTER.
DDL ALTER
DATABASE
Exemple :

44
Commandes DDL sur les bases de données Hive
6.2 ALTER DATABASE dans Hive
Syntaxe for changing
Database owner :
DDL ALTER
DATABASE
OWNER
Exemple :

45
Commandes DDL sur les bases de données Hive
6.3 ALTER DATABASE dans Hive
L'instruction ALTER DATABASE SET LOCATION dans Hive est utilisée pour modifier le répertoire par défaut pour une
base de données dans Hive.

Syntaxe for changing Database Location :

Remarque :

 L'instruction ALTER DATABASE … SET LOCATION ne déplace pas le contenu du répertoire actuel de la base de
données vers le nouvel emplacement spécifié.

 Cette instruction ne modifie pas les emplacements associés aux tables ou partitions sous la base de données spécifiée.
Au lieu de cela, il modifie le répertoire parent par défaut, où de nouvelles tables seront ajoutées pour cette base de
données.

 Aucune autre métadonnée associée à la base de données ne peut être modifiée.

46
Commandes DDL sur les tables Hive
1. CREATE TABLE
L'instruction CREATE TABLE dans Hive est utilisée pour créer une table avec le nom donné. Si une table ou une vue
existe déjà avec le même nom, une erreur est renvoyée. Nous pouvons utiliser IF NOT EXISTS pour ignorer l'erreur.

Syntaxe:

Dans cet exemple, nous créons une table ‘Employee’ dans la base ‘dataflair’.

DDL CREATE
TABLE
Exemple :

ROW FORMAT DELIMITED signifie que nous disons à Hive que lorsqu'il trouve un nouveau caractère de ligne
(caractère Retour à la ligne), cela signifie un nouvel enregistrement.

FIELDS TERMINATED BY ',' indique à Hive quel délimiteur nous utilisons dans nos fichiers pour séparer chaque
colonne.

STORED AS TEXTFILE est d'indiquer à Hive le type de fichier à attendre. 47


Commandes DDL sur les tables Hive
2. SHOW TABLES
L'instruction SHOW TABLES dans Hive répertorie toutes les tables et vues de la base de données actuelle.

Syntaxe:

DDL SHOW
TABLES
Exemple :

48
Commandes DDL sur les tables Hive
3. DESCRIBE TABLE
L'instruction DESCRIBE TABLE dans Hive affiche les listes de colonnes pour la table spécifiée.

Syntaxe:

DDL
DESCRIBE
TABLE
Exemple :

49
Commandes DDL sur les tables Hive
4. DROP TABLE
L'instruction DROP TABLE dans Hive supprime les données d'une table particulière de type Managed ou Internal Table
et supprime toutes les métadonnées qui lui sont associées du Metastore. S’il s’agit d’une table externe (External Table),
seulement les métadonnées sont supprimées. Si PURGE n'est pas spécifié, les données sont en fait déplacées vers le
répertoire .Trash/current. Si PURGE est spécifié, les données sont complètement perdues (cas du table interne).

Syntaxe:

Dans l'exemple ci-dessous, nous supprimons la table "employee".

DDL DROP
TABLE
Exemple :

50
Commandes DDL sur les tables Hive
5. ALTER TABLE RENAME
L'instruction ALTER TABLE dans Hive vous permet de modifier la structure d'une table existante. En utilisant l'instruction
ALTER TABLE, nous pouvons renommer la table, ajouter des colonnes à la table, modifier les propriétés de la table,
etc.
Syntaxe pour renommer une table :

DDL ALTER TABLE RENAME


Exemple :

51
Commandes DDL sur les tables Hive
5. ALTER TABLE RENAME

DDL ALTER TABLE RENAME résultat :

52
Commandes DDL sur les tables Hive
5. ALTER TABLE ADD COLUMNS

Syntaxe pour ajouter une colonne dans une table :

DDL ALTER TABLE ADD COLUMS


Exemple : Dans cet exemple, nous ajoutons deux colonnes "Emp_DOB" et "Emp_Contact" dans la table "Comp_Emp" à
l'aide de la commande ALTER.

53
Commandes DDL sur les tables Hive
5. ALTER TABLE ADD COLUMNS

Le résultat de la commande DESCRIBE Comp_Emp;

54
Commandes DDL sur les tables Hive
5. ALTER TABLE SET TBLPROPERTIES

Syntaxe pour modifier les propriétés d’une table :

DDL ALTER TABLE SET TBLPROPERTIES. Exemple : Dans cet exemple, nous définissons les propriétés de la table
après la création de la table à l'aide de la commande ALTER.

55
Commandes DDL sur les tables Hive
6. TRUNCATE TABLE

L'instruction TRUNCATE TABLE dans Hive supprime toutes les lignes de la table ou de la partition.

Syntaxe pour tronquer une table :

DDL TRUNCATE TABLE :

56
Commandes DML Apache Hive
Les commandes Hive DML (Data Manipulation Language) sont utilisées pour insérer, mettre à jour, récupérer et
supprimer des données de la table Hive une fois que le schéma de la table et de la base de données a été défini à l'aide des
commandes Hive DDL.
Les différentes commandes Hive DML sont:
1. LOAD / 2. SELECT / 3. INSERT
2. DELETE / 4. UPDATE / 4. EXPORT / 5. IMPORT

1. LOAD Command

o L'instruction LOAD dans Hive est utilisée pour déplacer les fichiers de données dans les emplacements
correspondants aux tables Hive.
o Si un mot-clé LOCAL est spécifié, la commande LOAD recherchera le chemin du fichier dans le système de fichiers
local.
o Si le mot-clé LOCAL n'est pas spécifié, Hive aura besoin de l'URI absolu du fichier.
o Si le mot-clé OVERWRITE est spécifié, le contenu de la table/partition cible sera supprimé et remplacé par les
données du/des fichier (s) référencé (s) par filepath.
o Si le mot clé OVERWRITE n'est pas spécifié, les fichiers référencés par filepath seront ajoutés à la table.

Syntaxe :

57
Commandes DML Apache Hive

Exemple : Ici, nous essayons de charger les données du fichier 'dab' du système de fichiers local dans la table 'emp_data'.

58
Commandes DML Apache Hive

Résultat : chargement des données du fichier 'dab' du système de fichiers local dans la table 'emp_data'.

59
Commandes DML Apache Hive
2. SELECT COMMAND
L'instruction SELECT dans Hive est similaire à l'instruction SELECT dans SQL utilisée pour extraire des données de la
base de données.
Syntaxe :

60
Commandes DML Apache Hive
3. INSERT COMMAND
La commande INSERT dans Hive charge les données dans une table Hive. Nous pouvons insérer à la fois la table ou la
partition Hive.

3.1 INSERT INTO


L'instruction INSERT INTO ajoute les données aux données existantes de la table ou de la partition. L'instruction INSERT
INTO fonctionne à partir de la version 0.8 de Hive.

Syntaxe :

Exemple : Ici, dans cet exemple, nous essayons d'insérer les données de la table "emp_data" créée ci-dessus dans la table
"exemple".

61
Commandes DML Apache Hive
3.1 INSERT INTO
Instruction INSERT INTO pour charger des données dans la table "exemple"

62
Commandes DML Apache Hive
3.2 INSERT OVERWRITE TABLE
La commande INSERT OVERWRITE TABLE écrase les données existantes dans la table ou la partition ciblée.

Syntaxe :

Exemple : Ici, nous écrasons les données existantes de la table 'example' avec les données de la table 'dummy' en utilisant
l'instruction INSERT OVERWRITE TABLE.

63
Commandes DML Apache Hive
3.2 INSERT OVERWRITE TABLE

Résultat : En utilisant l'instruction SELECT, nous pouvons vérifier si les données existantes de la table 'example' sont
écrasées par les données de la table 'dummy' ou non.

64
Commandes DML Apache Hive
3.3 INSERT.. VALUES
L'instruction INSERT ..VALUES dans Hive insère des données dans la table directement à partir de SQL. Il est disponible
à partir de Hive 0.14.
Syntaxe :

Exemple : Insertion de données dans la table 'student' à l'aide de l'instruction INSERT ..VALUES.

65
Commandes DML Apache Hive
4. DELETE command
L'instruction DELETE dans Hive supprime les données de la table. Si la clause WHERE est spécifiée, elle supprime les
lignes qui satisfont à la condition dans la clause where. L'instruction DELETE ne peut être utilisée que sur les tables Hive
qui prennent en charge ACID. (En informatique, les propriétés ACID (atomicité, cohérence, isolation et durabilité) sont un
ensemble de propriétés qui garantissent qu'une transaction informatique est exécutée de façon fiable)

Syntaxe :

Exemple : Dans l'exemple ci-dessous, nous supprimons les données de l'étudiant de la table 'student' dont le roll_no est
105.

66
Commandes DML Apache Hive
4. DELETE command

67
Commandes DML Apache Hive
5. UPDATE Command
UPDATE dans Hive met à jour les données de la table. Si la clause WHERE est spécifiée, elle met à jour la colonne des
lignes qui satisfont la condition dans la clause WHERE. Les colonnes de partitionnement et de regroupement ne peuvent
pas être mises à jour.

Syntaxe :

Exemple : Dans cet exemple, nous mettons à jour la branche de l'étudiant dont le roll_no est 103 dans la table 'student' à
l'aide d'une instruction UPDATE

68
Commandes DML Apache Hive
5. UPDATE Command

69
Commandes DML Apache Hive
6. EXPORT Command
L'instruction Hive EXPORT exporte les données de la table ou de la partition avec les métadonnées vers l'emplacement de
sortie spécifié dans le HDFS. Les métadonnées sont exportées dans un fichier "_metadata" et les données sont exportées
dans un sous-répertoire "data".

Syntaxe :

Exemple : Ici, dans cet exemple, nous exportons la table "student" vers le répertoire HDFS "export_from_hive".

70
Commandes DML Apache Hive
6. EXPORT Command

Exemple : Ici, dans cet exemple, nous exportons la table "student" vers le répertoire HDFS "export_from_hive (suite)

6. IMPORT Command
La commande Hive IMPORT importe les données d'un emplacement spécifié vers une nouvelle table ou une table déjà
existante.
Syntaxe :

Exemple : Ici, dans cet exemple, nous importons les données exportées dans l'exemple ci-dessus dans une nouvelle table
Hive "imported_table".

71
Commandes DML Apache Hive

72

Vous aimerez peut-être aussi