0% ont trouvé ce document utile (0 vote)
6 vues35 pages

Introduction à Hive SQL

Transféré par

manal moustaghfir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues35 pages

Introduction à Hive SQL

Transféré par

manal moustaghfir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Réalisé par :

Pr Khadija EL AZHARI et Pr Lamia Karim

1
Objectifs

Comprendre la base de données Hive

Découvrir les opportunités de Hive

Acquérir les connaissances nécessaires permettant


de mettre en œuvre Hive

2
Aperçu Historique 05
04
Un grand nombre 03
d’utilisateur ne maîtrisent pas
tous Java et les autres Les utilisateurs
langages de codage. étaient à l'aise avec
les requêtes sql

Facebook a utilisé
hadoop comme
solution pour gérer

02
le big data
croissant

01
données

Mapreduce obligeait les


utilisateurs à écrire de
longs codes
Pourquoi Hive?

Les utilisateurs avaient Hive QL


Pour le traitement et l'analyse des Solution
besoin d'un langage
données, les utilisateurs ont eu des
similaire au SQL qui était
difficultés à coder car ils ne maîtrisaient pas
bien connu de
tous les langages de codage.
tous les utilisateurs

Preprocessing Analyse
Hive, c’est quoi ?

Hive est un système d'entrepôt de données qui est utilisé pour interroger et analyser de
grands ensembles de données stockés dans HDFS.

5
Hive, c’est quoi ?

Hive est un système d'entrepôt de données qui est utilisé pour interroger et analyser de
grands ensembles de données stockés dans HDFS.

6
Hive, c’est quoi ?

Hive est un système d'entrepôt de données qui est utilisé pour interroger et analyser de
grands ensembles de données stockés dans HDFS.

7
Hive, c’est quoi ?

Hive est un système d'entrepôt de données qui est utilisé pour interroger et analyser de
grands ensembles de données stockés dans HDFS.

8
Principes clés de Hive

Définit un
langage de Familier, rapide,
requête de type évolutif et
SQL appelé HQL extensible.
Il est conçu pour
OLAP.

Permet aux Il stocke le schéma


programmeurs de dans une base de
brancher des données et les données
mappeurs et des traitées dans HDFS.
réducteurs
personnalisés

9
Principes clés de Hive

Entrepôt de données
Un système utilisé pour les rapports et l'analyse des données.
Les DW sont des référentiels centraux de données intégrées
provenant d'une ou de plusieurs sources.

ETL
processus d'extraction des données de la source et de les
importer dans l'entrepôt de données. Extraire, transformer
et charger.

10
Motivation
Yahoo a travaillé sur Pig pour faciliter le déploiement
d'applications sur Hadoop.

• Leur besoin était principalement axé sur les données non


structurées

Simultanément, Facebook a commencé à déployer des


solutions d’entrepôt sur Hadoop qui ont abouti à Hive.

• La taille des données en cours de collecte et d'analyse dans


l'industrie pour la veille stratégique augmente rapidement, ce
qui rend la solution traditionnelle extrêmement coûteuse.

11
Utilisation de Hive sur Facebook

Hive et Hadoop sont largement utilisés dans Facebook pour


différents types d’opérations.

700 To = 2.1 Petabyte après la réplication!

12
Data model
Hive structure les données en concepts de base de données bien compris
tels que:
• tables, lignes, colonnes, partitions

Il supporte les types primitifs: integers, floats, doubles et strings

Hive prend également en charge:

• Arrays: Les éléments du tableau sont de type chaîne de caractères.


Les éléments du tableau sont délimités par des virgules. Par exemple,
un tableau de fruits est représenté par [apple,banana,orange].

SerDe: une API sérialisée et désérialisée est utilisée pour déplacer des
données dans et hors des tables

13
Query Language (HiveQL)
DDL :
CREATE DATABASE
CREATE TABLE
ALTER TABLE
SHOW TABLE
DESCRIBE

DML :
LOAD TABLE
INSERT
QUERY :
SELECT
GROUP BY
JOIN

14
Architecture of Hive

15
Architecture of Hive

16
Architecture of Hive

17
Fonctionnement de Hive

18
Hive QL – Join

page_view pv_users
pageid userid time
user pageid age
userid age gender
1 111 9:08:
01 1 25

2 111 9:08:
x 111 25 female =
2 25
13 222 32 male
1 32
1 222 9:08:
14

•SQL:
INSERT INTO TABLE pv_users
SELECT [Link], [Link]
FROM page_view pv JOIN user u ON ([Link] = [Link]);

19
Hive QL – Join MapReduce

page_view
pageid userid time key value key value

111 <1,1>
1 111 9:08:01 111 <1,1>
pv_users
111 <1,2> 111 <1,2>
2 111 9:08:13 pageid age

222 <1,1> 111 <2,25> 1 25


1 222 9:08:14
2 25

Map Shuffle Reduce


Sort
pageid age
user 1 32
key value
userid age gender key value

111 25 female 111 <2,25> 222 <1,1>

222 32 male 222 <2,32> 222 <2,32>

20
Hive QL – Group By

pv_users
pageid age
pageid_age_sum
pageid age Count
1 25
1 25 1
2 25
2 25 2
1 32
1 32 1
2 25

SQL:
INSERT INTO TABLE pageid_age_sum
SELECT pageid, age, count(1)
FROM pv_users
GROUP BY pageid, age;
21
Hive QL – Group By in Map Reduce

pv_users pageid_age_sum
pageid age key value key value pageid age Count

1 25 <1,25> 1 <1,25> 1 1 25 1
1 32 1
2 25 <2,25> 1 <1,32> 1

Shuffle
Map Reduce
Sort

pageid age key value key value pageid age Count

1 32 <1,32> 1 <2,25> 1 2 25 2

2 25 <2,25> 1 <2,25> 1

22
Hive QL – Group By with Distinct

page_view
pageid userid time pageid
result
1 111 9:08:01 1
pageid count_distinct_userid
2 111 9:08:13 2
Map 1 2

1 222 9:08:14 1 2 1

2 111 9:08:20 2

SQL
SELECT pageid, COUNT(DISTINCT userid)
FROM page_view
GROUP BY pageid
23
Hive QL – Group By with Distinct in Map
Reduce

page_view
pageid userid time key v pageid count

1 111 9:08:01 <1,111> 1 2

2 111 9:08:13 <1,222>

Shuffle
Reduce
Sort

pageid userid time key v pageid count

1 222 9:08:14 <2,111> 2 1

2 111 9:08:20 <2,111>

24
Hive QL – Internal Tables

Stockées dans un répertoire basé sur les paramètres de


[Link]
les tables internes sont par défaut stockées dans le répertoire suivant
/user/hive/warehouse (modifiable dans le fichier de configuration).

La suppression de la table supprime les métadonnées et les données de


master-node et HDFS respectivement.

La sécurité des fichiers des tables internes est contrôlée uniquement via HIVE.

La sécurité doit être gérée dans HIVE, probablement au niveau du schéma


(dépend de l'organisation).

25
Hive QL – Internal Tables

CREATE TABLE ma_table_interne (


colonne1 INT,
colonne2 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

26
Hive QL – External Tables

Une table externe stocke des fichiers sur le serveur HDFS, mais les tables ne
sont pas complètement liées au fichier source.

Si vous supprimez une table externe, le fichier reste sur le serveur HDFS.

Par exemple, si vous créez une table externe appelée «table_test» dans HIVE, à
l'aide de HIVE-QL et liez la table au fichier «fichier», la suppression de
«table_test» de HIVE ne supprimera pas «fichier» de HDFS.

Les fichiers de table externes sont accessibles à toute personne ayant accès à la
structure de fichier HDFS. Par conséquent, la sécurité doit être gérée au niveau
du fichier/dossier HDFS.

Les métadonnées sont conservées sur le nœud maître et la suppression d'une


table externe de HIVE supprime uniquement les métadonnées et non les
données/fichiers.
27
Hive QL – External Tables

CREATE EXTERNAL TABLE ma_table_externe (


colonne1 INT,
colonne2 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/chemin/vers/les/fichiers/de/donnees';

28
DDL : Data Definition Language

CREATE DATABASE

Hive est une technologie de base de données qui permet de définir des
bases de données et des tables pour analyser des données structurées.
Le thème de l'analyse des données structurées consiste à stocker les
données sous forme des tables, et à passer des requêtes pour les analyser.
Hive contient une base de données par défaut nommée default.

29
DDL : Data Definition Language

CREATE DATABASE

Une instruction utilisée pour créer une base de données dans Hive.
Une base de données dans Hive est un namespace ou une collection de
tables.

30
DDL: Data Definition Language

➢ CREATE DATABASE

CREATE DATABASE|SCHEMA [IF NOT EXISTS] <database name>;

IF NOT EXISTS est une clause facultative, qui notifie à l'utilisateur qu'une
base de données portant le même nom existe déjà. Nous pouvons utiliser
SCHEMA à la place de DATABASE dans cette commande.

Exemple

CREATE DATABASE [IF NOT EXISTS] userdata;


CREATE SCHEMA userdata;

31
DDL: Data Definition Language

La requête suivante est utilisée pour vérifier une liste de bases de données :

hive> SHOW DATABASES;


default
userdb

32
DDL: Data Definition Language
Programme JDBC
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class HiveCreateDb {


private static String driverName = "[Link]";

public static void main(String[] args) throws SQLException {


// Register driver and create driver instance

[Link](driverName);
// get connection

Connection con =
[Link]("jdbc:hive://localhost:10000/default", "", "");
Statement stmt = [Link]();
[Link]("CREATE DATABASE userdb");
[Link](“Database userdb created successfully.”);
[Link]();
}
33
}
DDL: Data Definition Language

Enregistrez le programme dans un fichier nommé [Link]. Les


commandes suivantes sont utilisées pour compiler et exécuter ce
programme

$ javac [Link]
$ java HiveCreateDb

Create userdb database successful.

34
Formats de fichiers

35

Vous aimerez peut-être aussi