Configuration required to enable mongodb batch in spring boot - mongodb

I am using Spring boot MongoTemplate. I am using insert(Collection, EntityClass) method to insert a list of data as a single batch.
Questions:
Do I have to do any other configuration explicitly to enable batch?
How can I verify if the batch is working or not?
Is insert(Collection, EntityClass) and BulkOperation same?

Related

Spring Batch CouchBase bulk read opration

I am using spring batch and and my database is Couchbase. Is there any way to read documents from Couchbase in batch or in bulk mode?
Have a look at the Spring batch extensions project
https://github.com/spring-projects/spring-batch-extensions/pull/5/commits

Difference between Spring Cloud Task and Spring Batch?

I went through the Introducing Spring Cloud Task, but things are not clear for the following questions.
I'm using Spring Batch
What's the use of Spring Cloud Task when we already have the metadata provided by Spring Batch ?
We're planning to use Spring Cloud Data Flow to monitor the Spring Batch. All the batch jobs can be imported into the SCDF as task and can be scheduled there, but don't see support for MongoDB. Hope MySQL works well.
What is the difference between Spring Cloud Task and Spring Batch?
Spring Cloud Task has a broader scope than Spring Batch. It is designed for any short lived task, including but not limited to (Spring) Batch jobs. A short lived task could be a Java process, a shell script, a Docker container, etc. Spring Cloud Task has its own meta-data tables to track the progress/status/stats of tasks.
In the context of Spring Batch, Spring Cloud Task provides a number of additional features:
Batch informational messages: ability to emit messages based on Spring Batch listeners events. Those messages can be consumed by streaming apps and make it possible to bridge tasks and streaming apps.
DeployerPartitionHandler: an additional partition handler that is suitable to cloud environments to dynamically deploy workers in a remote partitioning setup.

Is there any JPAReader to read from database using spring batch?

How to use JPA-Reader to read from database using spring batch with spring boot? Also need to insert records in bulk using JPA-Writer? How to do it using Spring batch? I am new to spring batch.

Spring Batch Partitiioning DBtoFile Java Configuration Example

I am currently working on Spring Boot and Spring Batch application to read 200,000 records from Database, process it and generate XML output.
I wrote single threaded Spring Batch program which uses JDBCPagingItemReader to read batch of 10K records from Database and StaxEventItemReader to generate this output. Total process is taking 30 minutes. I am wanting to enhance this program by using Spring Batch local Partitioning. Could anyone share Java configuration code to do this task of Spring Batch partitioning which will split processing into multi thread + multi files.. I tried to multi thread java configuration but StaxEventItemReader is single thread so it didn't work. Only way I see is Partition.
Appreciate help.
You are correct that partitioning is the way to approach this problem. I don't have an example of JDBC to XML of how to configure a partitioned batch job, but I do have one that is CSV to JDBC in which you should be able to just replace the ItemReader and ItemWriter with the ones you need (JdbcPagingItemReader and StaxEventItemWriter respectively). This example actually uses Spring Cloud Task to launch the workers as remote processes, but if you replace the partitionHandler with the TaskExecutorPartitionHandler (instead of the DeployerPartitionHandler as configured), that would execute the partitions internally as threads.
https://github.com/mminella/S3JDBC

How to log the operations of Spring Data MongoDB?

We are using Spring Data MongoDB to operate mongodb. I was using Spring Data JPA to manage some relationship database. The SQL can be printed into the log file (log4j or logback). But for the mongoDB operation, there is no log output. Is there any way can let our debug what document (json object) has been insert or updete into the MongoDB base on Spring Data MongoDB module?
Spring data mongodb contains the LoggingEventListener.
Unluckily, the EventListeners do not support all batch operations. If you have batch operations, you may need to add your own costum logging.