Spring Batch
spring
bacth
---------------
Concepts
---------------
Pourquoi SPRING BATCH ?
o Spring Batch est un framework Java basé sur Spring qui a
pour but de faciliter la création de batch.
o On parle de batch lorsqu’il s’agit d’un traitement sur un
gros volume de données.
écosystème SPRING BATCH ?
écosystème SPRING BATCH ?
Exemple :
lire les données depuis une source de données, un fichier par exemple pour les
mettre dans une BD, ensuite traiter ou bien transformer ces données pour les
insérer dans une autre table, et enfin exporter les données traitées dans un fichier.
Domain Language of Batch
Domain Language of Batch
endOfDayJob
Shedule date:17/03/2009
endOfDay Job du
17/03/2009
1ére tentative de
l’instance du Job du
17/03/2009
JobInstance = Job + JobParameters
Exemple d’un Job
@Bean(name = "jobBatch")
public Job job(@Qualifier("stepBatch") Step stepBatch,
@Qualifier("stepBatchTwo") Step stepBatchBis) {
return [Link]("jobBatch")
.start(stepBatch)
.next(stepBatchBis)
.build();
}
1ére tentative de
l’instance du Job du
17/03/2009
Domain Language of Batch
Domain Language of Batch
Domain Language of Batch
Public interface itemReader<T>{
T read() throws Exception, UnexpectedInputException,
ParseException;
}
Public interface ItemProcessor<I, O>{
O process (I item ) throws Exception;
}
Public interface itemWriter<T>{
void write(List<? extends T> items ) throws Exception;
}
itemReader<>
Lecture d’un fichier CSV
Lit un fichier CSV, TXT avec
FlatFileItemReader contenant une liste de
délimiteurs ou format fixe.
clients.
Lit une base de données via Lecture de grandes
JdbcCursorItemReader
JDBC avec un curseur. quantités de données SQL.
Lit un fichier XML en utilisant
Extraction de données
XmlItemReader JAXB pour le mapper en
depuis un fichier XML.
objets Java.
Lecture d’un fichier JSON
Lit des fichiers JSON et les
JsonItemReader avec des données de
transforme en objets Java.
produits.
Utilise JPA/Hibernate pour Lecture des commandes
JpaPagingItemReader
lire des données paginées. stockées en base via JPA.
Extraction des informations
Lit des documents depuis une
MongoItemReader des utilisateurs depuis
base MongoDB.
MongoDB.
Consomme des messages Lecture des événements en
KafkaItemReader
depuis Apache Kafka. temps réel depuis Kafka.
itemWriter<>
Sauvegarde des clients
FlatFileItemWriter Écrit dans un fichier CSV, TXT.
traités dans un fichier CSV.
Insère ou met à jour des
Insertion en batch de clients
JdbcBatchItemWriter données en base SQL via
dans une base SQL.
JDBC.
Génération d'un fichier JSON
JsonFileItemWriter Écrit dans un fichier JSON.
contenant les commandes.
Stockage de données de
Écrit dans un fichier XML en
XmlFileItemWriter facturation dans un fichier
utilisant JAXB.
XML.
Utilise JPA/Hibernate pour
Mise à jour des commandes
JpaItemWriter insérer ou mettre à jour des
dans une base JPA.
entités.
Insère ou met à jour des Stockage des logs dans une
MongoItemWriter
documents dans MongoDB. base NoSQL.
Publie des messages dans Envoi d’événements en
KafkaItemWriter
Kafka. temps réel à Kafka.
Domain Language of Batch
Public interface JobLauncher {
public JobExecution run(Job, JobParameters)
throws JobExecutionAlreadyRunningException,
JobRestartException;
}
Step Tasklest