본문 바로가기

Spring/Batch4

Chunk Size and Parallel Spring Batch -- 결론 -- 1. Chunk Size 가 클수록 Batch 의 실행시간이 빨라(짧아)지는 것은 아니다. 2. 병렬 처리의 속도가 더 빠르다. Case) 1억 건의 파일을 DB에 저장해야 한다 Chunk Size 를 최소화해서 여러번 Commit 한다 → Commit 리소스 비용이 크기 떄문에 비효율적 , 커밋을 되도록 줄인다보통 금융권 기준으로 2~3000 으로 설정하는 것 같다고 함. Chunk Size 를 1억으로 설정하면 OOM 이 발생할 수 있다. ( 메모리에 올려두고 작업하기 때문에 ) ChunkSize 에 따른 속도 비교 → 약 1만건(10,209) 의 데이터를 가지고 테스트 // Chunk Size Test @RequiredArgsConstructor @Configuration publi.. 2024. 4. 22.
Spring Batch 5.x DB 사용하기 기존 Tasklet 방식에 이어 Chunk 방식을 이용한 간단한 예제를 작성해 보려고 한다. 스프링 배치 아키텍처이다. Tasklet 에서는Item 과 관련된(노란색) 부분은 사용하지 않았다. Chunk 방식에서는 Item 을 사용하려고 한다. DB 에서 데이터를 가져올 case 1. ItemReader -> DB 에서 데이터 조회 2. ItemProcessor -> 데이터 가공 3. ItemWriter -> DB 에 다시 INSERT 이렇게 순서로 진행할 예정이다. . MySQL DB 에 BATCH 테이블이 정상적으로 생성되어있다고 가정. JPA 를 이용해서 Entity 2개를 만들어주었다. Person 테이블에서 가공 후 PersonTemp 테이블에 넣어줄 예정. @Entity @NoArgsConst.. 2024. 4. 20.
Spring Batch 5.x 기본 연습 - tasklet Spring Batch 5 는 이전과 많은 변화가 있다. 새롭게 생성하기 전이나 마이그레이션하기 전에 어떤게 변했는지 참고해본다. https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide Spring Batch 5.0 Migration Guide Spring Batch is a framework for writing batch applications using Java and Spring - spring-projects/spring-batch github.com 💡 이전에는 @EnableBatchProcessing 어노테이션을 통해서 스프링 배치의 스프링 부트 자동설정을 활성화할 수 있었습니다. 하지만 이제는.. 2024. 4. 19.
스프링 배치 (Spring Batch)로 Hello World 를 출력 스프링 배치를 사용하는 이유는 아래와 같다. - 풍부한 기능 : 로깅/ 추적 , 트랜잭션이나 롤백같은 개념 등 필수적인 기능을 제공한다 - 일관성된 코드 - 기존 서비스가 스프링 프레임워크로 되어있을 경우 호환 가능 JobRepository : 배치 처리 정보를 담고있는 저장소 JobLauncher : Job을 실행시켜주는 역할 Job : 배치처리 과정을 하나의 단위로 만들어 놓은 것 ex) 이메일 발송 등 Step : Job의 배치처리를 정의하고 순차적인 단계를 캡슐화한다 ex ) 이메일 발송의 세부적인 작업 ItemReader : Step 에서 Item을 읽어오는 인터페이스 ItemProcessor : Reader 에서 읽어온 Item 데이터를 처리하는 역할 ItemWriter : 처리된 Data 를.. 2023. 1. 12.