본문 바로가기

Batch6

6. Spring Batch 청크 프로세스 활용 Step4 - JdbcBatchItemWriter / JpaItemWriter / ItemWriterAdapter 지금까지 ItemReader 구현체들을 통해서 DB에 있는 데이터들을 갖고오는 과정들을 진행했다면, 이번 시간에는 DB에 있는 데이터들을 갖고와서 DB에 저장하는 방법에 대해서 정리해 볼 생각이다. ​ ItemWriter와 같은 경우에도 ItemReader 구현체와 같이 여러 종류의 ItemReader의 구현체가 있지만, DB와 관련된 ItemWriter에 대해서만 정리해보자. ​ 1. JdbcBatchItemWriter JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고, sql 속성에 실행할 쿼리를 설정 JDBC의 batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리 단건 처리가 아닌 일괄처리이기 때문에 성능에 이점을 가진다 Jdbc.. 2022. 10. 3.
5. Spring Batch 청크 프로세스 활용 Step3 - ItemReaderAdapter 지금까지 Cursor 기반, Paging 기반 ItemReader에 대해 알아보는 시간을 갖었다. 추가적으로 배치 Job안에서 이미 존재하는 Dao 또는 다른 서비스를 ItemReader안에서 사용하고자 할때 위임 역할을 하는 것이 ItemReaderAdapter이다. ​ 해당 내용은 간단해서 바로 소스 코드 작성하면서 이해해보자. ​ 1) CustomerService 클래스 생성 public class CustomerService { public int cnt = 0; public T customRead() { return (T) ("item" + cnt++); } } 2) ItemReaderAdapterConfiguration 클래스 생성 @Configuration @RequiredArgsConstr.. 2022. 10. 3.
4. Spring Batch 청크 프로세스 활용 Step2 - Paging 기반의 ItemReader 지난 시간에는 Spring Batch 청크 프로세스 활용편으로 Cusor Based / Paging Based의 차이점과 Cursor 기반인 JdbcCursorItemReader와 JpaCursorItemReader에 대해 알아봤습니다. 이번 시간에는 Paging 기반인 JdbcPagingItemReader와 JpaPagingItemReader에 대해 알아보겠습니다. ​ JdbcPagingItemReader Paging 기반의 JDBC 구현체로서 쿼리에 시작 행 번호(offset)와 페이지에서 반환 할 행 수(limit)를 지정해서 SQL을 실행 스프링 배치에서 offset과 limit을 PageSize에 맞게 자동으로 생성해 주며 페이징 단위로 데이터를 조회할 때 마다 새로운 쿼리가 실행 페이지마다 새.. 2022. 10. 3.
3. Spring Batch 청크 프로세스 활용 Step1 - Cursor 기반의 ItemReader 지난 시간에 스프링 배치 청크 프로세스에 대한 전체적인 이해, ChunkOrientedTasklet 객체에 대한 설명, 그리고 ChunkProvider, ChunkProcessor에 대해 알아보는 시간을 갖었다. 이번 시간에는 ChunkProvider가 요청하는 ItemReader에 대해서 알아보자. ​ 우선, ItemReader는 아래와 같이 5개의 구현체가 있습니다. 1) Flat Files - FlatFileItemReader 2) XML - StaxEventItemReader 3) Json - JsonItemReader 4) DB - JDBC ItemReader, JPA ItemReader ​ 인프런 강의에는 전부 설명이 나와있지만, 현재 회사의 경우에는 DB - JDBC ItemReader, J.. 2022. 10. 3.