Vous êtes sur la page 1sur 4

Atelier Sqoop :

Objectifs

L'objectif de ce TP est d'apprendre à utiliser SQOOP Apache pour importer des données
d'une base de données MySQL vers une base de données Hadoop Hive.

Étape 1 : Créer une base de données MySQL

Dans cette étape, nous allons créer une base de données MySQL appelée tp_sqoop.

mysql -u root -p
CREATE DATABASE tp_sqoop;

Étape 2 : Créer des tables MySQL

Dans cette étape, nous allons créer deux tables dans la base de données tp_sqoop :

• users : cette table contient les informations sur les utilisateurs


• products : cette table contient les informations sur les produits

mysql -u root -p tp_sqoop


CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE products (


id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
);

Étape 3 : Charger des données dans les tables MySQL

Dans cette étape, nous allons charger des données dans les tables MySQL que nous avons
créées.

mysql -u root -p tp_sqoop


INSERT INTO users (name, email) VALUES ('Darif Anas','
d.anas@gmail.com');
INSERT INTO users (name, email) VALUES ('Allaoui Amine', '
a.amine@gmail.com');
INSERT INTO products (name, price) VALUES ('iPhone 13', 999.99);
INSERT INTO products (name, price) VALUES ('Samsung Galaxy S22',
899.99);
Étape 4 : Importer les données dans Hive

Dans cette étape, nous allons importer les données des tables MySQL dans Hive.

Pour cela, nous allons utiliser la commande sqoop import.

sqoop import \
--connect jdbc:mysql://localhost:3306/tp_sqoop \
--username root \
--password password \
--table users \
--target-dir /user/hive/warehouse/tp_sqoop.db/users

Cette commande va importer les données de la table users de la base de données


tp_sqoop dans le répertoire /user/hive/warehouse/tp_sqoop.db/users de Hive.

Nous pouvons répéter cette commande pour importer les données de la table products.

Étape 5 : Vérifier les données dans Hive

Pour vérifier les données que nous avons importées dans Hive, nous pouvons utiliser la
commande hive.

hive

Une fois que nous sommes dans la console Hive, nous pouvons exécuter la requête
suivante pour afficher les données de la table users :

SELECT * FROM users;

Cette requête va afficher les données suivantes :

+----+---------------+-------------------+
| id | name | email |
+----+---------------+-------------------+
| 1 | Darif Anas | d.anas@gmail.com |
| 2 | Allaoui Amine | a.amine@gmail.com |
+----+---------------+-------------------+
Nous pouvons également exécuter la requête suivante pour afficher les données de la
table products :

SELECT * FROM products;

Cette requête va afficher les données suivantes :

+----+--------------------+--------+
| id | name | price |
+----+--------------------+--------+
| 1 | iPhone 15 | 999.99 |
| 2 | Samsung Galaxy S23 | 899.99 |
+----+--------------------+--------+

Étape 6 : Importer les données de manière incrémentielle

Lorsque nous importons des données de manière incrémentielle, nous ne importons que
les données qui ont été modifiées ou ajoutées depuis la dernière fois que nous avons
effectué l'importation.

Pour importer des données de manière incrémentielle, nous devons utiliser la commande
sqoop import --incremental.

Cette commande prend en compte plusieurs paramètres pour déterminer les données à
importer :

• --last-value : Ce paramètre indique à SQOOP la date ou l'ID de la dernière ligne


que nous avons importée.
• --check-column : Ce paramètre indique à SQOOP la colonne à utiliser pour
déterminer les données à importer.

Par exemple, pour importer les données de la table users de manière incrémentielle,
nous pouvons utiliser la commande suivante :

sqoop import --incremental --connect


jdbc:mysql://localhost:3306/tp_sqoop \
--username root --password password \
--table users \
--target-dir /user/hive/warehouse/tp_sqoop.db/users \
--last-value '2024-01-17' \
--check-column id

Cette commande va importer les données de la table users qui ont été modifiées ou
ajoutées depuis le 17 janvier 2024.
Étape 7 : Créer un job SQOOP

Pour créer un job SQOOP, nous pouvons utiliser la commande sqoop job --create.

Cette commande prend en compte plusieurs paramètres pour définir le job :

• --name : Ce paramètre indique le nom du job.


• --command : Ce paramètre indique la commande SQOOP à exécuter.
• --parameters : Ce paramètre indique les paramètres de la commande SQOOP.

Par exemple, pour créer un job SQOOP pour importer les données de la table users de
manière incrémentielle, nous pouvons utiliser la commande suivante :

sqoop job --create --name users_import \


--command sqoop import --incremental \
--connect jdbc:mysql://localhost:3306/tp_sqoop \
--username root --password password \
--table users \
--target-dir /user/hive/warehouse/tp_sqoop.db/users \
--last-value '2024-01-17' \
--check-column id

Cette commande va créer un job SQOOP nommé users_import qui va importer les
données de la table users de manière incrémentielle.

Étape 8 : Exécuter un job SQOOP

Pour exécuter un job SQOOP, nous pouvons utiliser la commande sqoop job --exec.

Cette commande prend en compte un paramètre pour indiquer le nom du job à exécuter :

• --name : Ce paramètre indique le nom du job à exécuter.

Par exemple, pour exécuter le job SQOOP que nous avons créé à l'étape précédente, nous
pouvons utiliser la commande suivante :

sqoop job --exec users_import

Cette commande va exécuter le job SQOOP nommé users_import.

Vous aimerez peut-être aussi