0% ont trouvé ce document utile (0 vote)
42 vues6 pages

Springbatch Prep

Transféré par

ِAbdulsamad Tanafaat
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)
42 vues6 pages

Springbatch Prep

Transféré par

ِAbdulsamad Tanafaat
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 :

Spring batch est un framework pour traiter automatiaquement les donnes de


grandes quenites de donnnes de manière e icace et fiable .

Exemple de cas d’utilisation :


Lire des donnes depuis un source comme fichiers plats , base de donnes .
Valider ou transformer ces donnes .
Ecrire les donnes sous une autre forme.

Problème récurrents dans le traitement des batches :

1. Gestion des transactions :


Une transaction est une unité de travail qui doivent être traites de
manière complète ou non traite de tout .

Toujours s’assurer que les transactions sont coherentes et bien geres :


Les defis dans ce contexte :
Atomicité :
une transaction doit etre valide cad committed ou bien completement
annulee (RollBack) .
Concurrence :
pls processus de traitements par lots accedent aux memes donnes en meme
temps donc on aura des conflit . soit donc le verrouillages de ressources .
Durabilité :
Une fois la transaction est validee , les e ets doivent etre permanents ,
L’echec ne doit pas compromet la transaction.
2. Reprise sur Erreur :
Il faut detecter lendroit ou on une erreur, afin de pouvoir de corriger l’anomalie
sans redemarer touts le processus.
Cad reprendre a partir du dernier point validée . comme checkpoints.
L’erreur ne doit pas a ecter tout le processus . le reste doit continue dans
interruption.
3. Maintenabilite :
Les batches sont deficile a maintenir en fonction de leur evolution.
La solution c’est de faire une code simple , Modularite …
4. Optimisation des performances pour eviter de reinventer la roue :
Eviter la redondance.
Parallelisme .
Optimisation des acces aux bases de donnes.

Fonctionnalites cles de spring Batchs :


 Conteneur leger :
S’appuie sur le conteneur de spring : Spring IoC container.

 Gestion de la persistance et des transactions :


Persistance :
Fournit des outils pour suivre l’etat d’execution des jobs et les steps, en e et
utilisation des bases de donnes pour stocker des informations telles que les
metadones de job (execution reussi ou echoue , parametres …. )
Transaction :
S’assuer que chaque etape est atomique et que les erreures peurvent etre
correctement traites sans compromettre l’integrite des donnes .

 Inversion de contrôle (IoC) :


Alors spring batch permet de configurer les composants : les lecteurs , les
processeurs , les ecrivains … d’où un code modulaire et facile a tester.

 Support pour les sources de donnes courantes :


Fichiers plats comme CSV , XML , etc …
Lecteur de fichier plats CSV : FlatFileItemReader. ET StaxEventItemReader
pour Fichier XML.
Ecrivain de fichier plats : FlatFileItemWriter.
Base de donnes SQL : JdbcCursorItemReader ou JPAPagingItemReader
JdbcBatchItemWriter ou JpaItemWriter
ItemReder : permet de lire les donnes depuis une source . via ItemReader.
ItemProcesor : permet de transformer des donnes lues. Via ItemProcessor.
itemWriter : permet d’ecrire les donnes dans une source. ItemWriter

 JOB et Step :
Unite principale de traitement dans spring batch.
Constitue de plusieurs Steps
Chaque step represent une etape disticnte du traitement par lots.
Comme la lecture, l’ecriture , traitement .
 Gestion des erreurs et reprise .
 Parallelisme et partitionnement des donnes .
 Scheduliing :
on peut intergrer Spring Scheduler ou Quartz pour planifier l’execution
des jobs a des moments specifiques.

Architecture d’un batch spring :


Deux couches :
Couche Batch core :
API de lancer , monitorer et de gerer un batch contient les interfaces et les
classes :
JOB, JOBLANCHER, STEP
Couche batch infrastructure :
Contiet API fournissant : ItemReader, ItemProcessor, ItemWriter.
Job : ensemble de traitement a executer .
Job Instance : chaque execution d’un job est un JobInstance.
Execution d’un job : Un job peut etre execute plusieurs fois et chque
execution est une instance distincte mais partage le meme modele de job.

Steps : Unite de travail au sein d’un job . job decompose d’un plusieurs steps.
Soit sous forme de chunk based processing ou tasklet based processing.
Types de steps :
Chunk-based processing :
Traitement par morcaux , donnes lues en morceaux cad chunks , transformes
puis ecrites en un seul lot.
Tasklet-based processing :
Pour les etapes simples comme appel de service , nettoyage de donnes , ou
une seule taches a executer
CONFIGURATION DES JOBS :
Utilsation des classes java ou des fichiers XML pour definir les
etapes et les composants.

@Bean
Public Step step1() {
Return new StepBuilder(‘’import transaction’’, jobRepository)
.<TransationDto, Transaction>Chunk(10, transactionManager)
.reader(reader())
.processor(processor())
.writer(writer())
.build();
}

EXECUTION D’UN JOB DANS SPRING BATCH:


jobLauncher.run(job, new JobParametersBuilder()
.addDate(‘’date’’, new Date())
.toJobParameters());
)
AUTOMATISATION DE L’EXECUTION D’UN BATCH:
<task:scheduled-tasks>
<task:scheduled ref="batchLauncher" method="run" cron="0 0 * * *
*" />
</task:scheduled-tasks>
Comment gerer les erreurs dans spring batch ? :
 Configuration des ecouteurs JobExecutionListenr ou
SkipExecutionListner
 Utilisation la repriser d’erreir avec un retryTemplate
 Persister l’etat du job pour une reprise manuelle ou atomique .

LA TAILLE D’UN CHUNK ? :


Chunk ? :
Groupe de donnes traite comme unite , exemple lire 5 lignes , les transformer
et les ecrire avant de valider la transaction.
En general une taille moderee (10-100) o re un bon equilibre entre
performance et mémoire.

Spring Batch exemple :


Spring Batch XML => CSV :
Serialisation / deserialization d’objet :

Vous aimerez peut-être aussi