0% ont trouvé ce document utile (0 vote)
95 vues29 pages

Spring Batch

Transféré par

me.mryams
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)
95 vues29 pages

Spring Batch

Transféré par

me.mryams
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

SPRING BATCH

UP ASI
Bureau E204

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 1


PLAN DU COUS

– Introduction

– Spring Batch

– Pourquoi utiliser Spring Batch ?

– Architecture de base

– TP: Mettre en place un job

– Travail à faire

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 2


Introduction

• Le mot Batch fait référence à un traitement sur un gros volume


de données.

• Un Batch a pour objectif de :


1. Lire des données provenant de plusieurs sources homogènes ou
hétérogènes (fichiers, bases de données, etc).

2. Faire les traitements nécessaires sur ces données.

3. Stocker le résultat dans un ou plusieurs conteneurs de destination

(fichiers, bases de données, queue, etc..) dans le but de les

exploiter.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 3


Introduction

Programme de
Lecture traitement Écriture
par lot

Sources de données potentielles Destinations de données potentielles


© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 4
Introduction

• Le batch permet d’automatiser une suite de commandes exécutées en


série (lots) sur un ordinateur sans une intervention d’un employé pour
réaliser cette opération.

• Il est utilisé pour automatiser certaines tâches comme :


– La création de données facilitant l’aide à la décision ( base de données
décisionnelle) Exp : chiffre affaire par mois- année-catégorie Client-région

– L'arrêt planifié des ordinateurs

– La sauvegarde de milliers de lignes dans une table de la BD

– Exécuter des instructions DOS (Création, modification et suppression des


fichiers / Formatage d’un disque /…)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 5


Introduction

• Spring Batch est un framework sophistiqué open source capable


d'exécuter des tâches par lots dans des environnements d'entreprise.

• Il permet de simplifier la création des jobs grâce à un code modulaire et


facilement maintenable

• Il permet de corriger des problèmes récurrents :

✓ Productivité ( gérer des volumes importants en un minimum de temps)

✓ Gestion de gros volumes de données (temps de traitement très lent)

✓ Fiabilité (problème de pertes d’informations)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 6


Pourquoi utiliser Spring Batch ?

• Spring Batch facilite le développement de batch à travers des outils


dédiés. Il permet ainsi :

– Une division du code bien défini permettant une maintenabilité


facilitée et une logique commune à la notion des batchs (classes
avec des rôles bien spécifiés à l’avance).

– Le traitement d’un gros volume de données par lots tout en


allégeant les charges des différentes instances sollicitées.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 7


Architecture de base

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 8


Architecture de base - COMPOSANTS

• Pour gérer les données d'un batch, on utilise principalement les trois outils
suivants:

✓ JobLauncher : Il est chargé d'exécuter un Job. Le déclanchement


peut être automatique (auto-déclenchement) ou manuel (script, web
service,etc..).

✓ Job : C’est le composant qui représente la tâche à qui on délègue la


responsabilité du besoin métier traité dans le programme. Il permet de
lancer un ou plusieurs step ordonnancés ( avec un ordre précis).

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 9


Architecture de base - COMPOSANTS

✓ Step : Il représente une étape au sein du batch. Les Steps sont


généralement stockées dans des beans pour pouvoir y accéder
facilement dans différents Job.
Il est chargé de définir trois sous-composants :
o ItemReader
o ItemProcessor
o ItemWriter

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 10


Architecture de base - COMPOSANTS

• Ces trois composants opèrent avec l’ordre suivant :

1. ItemReader récupère les données d'entrées à traiter. Elles peuvent


provenir de diverses sources (bases de données, csv, xml, xls, …).

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 11


Architecture de base - COMPOSANTS

• Ces trois composants opèrent avec l’ordre suivant :

2. ItemProcessor contient la logique du traitement des données


récupérées par l’ItemReader.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 12


Architecture de base - COMPOSANTS

• Ces trois composants opèrent avec l’ordre suivant :

3. ItemWriter : Il se charge de sauvegarder les données en sortie de


l’ItemProcessor dans une ou plusieurs destinations désirés (bases de
données, csv, xml, xls, cloud, …).

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 13


Architecture de base - COMPOSANTS

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 14


Architecture de base - COMPOSANTS

JobRepository : Le JobRepository est la classe qui permet le stockage


d’un nombre important de données autour du Job.
Il permet ainsi de récupérer un historique des différents jobs qui ont été
lancés.
La sauvegarde de données faite par cette classe permettra donc de
redémarrer des Jobs plus efficacement ou bien effectuer des pauses
dans le traitement.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 15


Architecture de base - COMPOSANTS

JobRepository

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 16


Architecture de base - COMPOSANTS

JobRepository

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 17


Architecture de base - COMPOSANTS

JobRepository

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 18


Travail à faire

• Compléter les 8 toDo au niveau du code pour que le projet soit


fonctionnel et que le batch puisse insérer les données
correctement.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 19


Travail à faire

Créer un batch qui permet de faire les étapes suivantes :


• Lire les id des équipes qui ont des projets terminés
• Modifier le montant de contrats des membres de l’équipe
(augmentation de 10% du montant initial) si le projet auquel ils
sont attachés est fini (terminated = true)
• Sauvegarder le nom de l’étudiant, la date de l’augmentation
du montant du contrat et le nouveau montant du contrat dans
la table log

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 20


TP: METTRE EN PLACE UN JOB

• Importer le projet Spring boot TODO ayant l’arborescence suivante et créer la


base donnée kaddembatch :

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 21


TP: METTRE EN PLACE UN JOB - Dépendances

• Pour utiliser Spring Batch avec Spring Boot, il faut ajouter les
dépendances suivantes (déjà existantes dans le projet toDo):

<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-batch-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 22


TP: METTRE EN PLACE UN JOB - Configuration

• Configuration du Job:
- Pour activer le traitement par lots, nous devons annoter la
classe de configuration StockBatchConfig avec
@EnableBatchProcessing.
- Nous devons par la suite créer:
✓ Un reader pour lire notre fichier CSV.
✓ Un processor pour traiter les données d'entrée avant
d'écrire.
✓ Un writer pour écrire dans la base de données.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 23


TP: METTRE EN PLACE UN JOB – Les classes

• Inspecter en suivant l’ordre les classes suivantes (inspecter le code


source des classes en respectant l’ordre) :

• BatchLauncher : Lancer les jobs


▪ Scheduler : Lancer le batch Launcher à intervalle de temps régulier
pour démarrer les différents jobs (un dans notre cas ou plusieurs).
▪ ProjectProcessor
▪ ProjectReader
▪ ProjectWriter
▪ ProjectBatchConfig

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 24


TP: METTRE EN PLACE UN JOB - Configuration

• Ajouter la ligne suivante dans le fichier de configuration


[Link]:

[Link]-schema=ALWAYS

• Inspecter le fichier excel [Link] qui contient les lignes


ajoutées dans le répertoire src/main/ressources:

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 25


TP: METTRE EN PLACE UN JOB

• Lancer le projet Spring Boot


• En cas d’erreur lors du lancement indiquant qu’une table n’existe pas
(batch_job_execution par exemple), le lancement du script [Link] va
résoudre le problème ( comportement liée au type du SGBD choisi)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 26


TP: METTRE EN PLACE UN JOB – Les tables

• Lancer le script [Link] pour créer les tables de Spring Batch ( grâce
auxquelles SpringBatch assure le monitoring des données manipulés
dans nos traitements).

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 27


SPRING BATCH

Si vous avez des questions, n’hésitez pas à nous


contacter :

Département Informatique
UP ASI
Bureau E204

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 28


SPRING BATCH

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) 29

Vous aimerez peut-être aussi