Spring Batch Chunk 지향 처리

2021. 3. 22. 23:59Java/Spring

Chunk란

Spring Batch에서 Chunk란 데이터 덩어리로 작업할 때 각 커밋 사이에 처리되는 row 수를 의미합니다. 즉 Chunk 지향 처리란, 한 번에 하나씩 데이터를 읽어 Chunk라는 덩어리를 만든 뒤, Chunk 단위로 트랜잭션을 다루는 것을 의미합니다. 여기서 Chunk 단위로 트랜잭션을 수행하기 때문에 실패할 경우에는 해당 Chunk 만큼만 롤백이 되고, 이전에 커밋된 트랜잭션 범위까지는 반영이 된다는 것입니다.

Chunk 지향 처리의 구조

  • Reader에서 데이터를 하나 읽어옵니다.
  • 읽어온 데이터를 Processor에서 가공합니다.
  • 가공된 데이터들을 별도의 공간에 모은 뒤, Chunk 단위만큼 쌓이게 되면 Writer에 전달하고 Writer는 일괄 저장합니다.
  • Reader와 Processor는 하나의 데이터를 다루고, Writer에서는 Chunk단위로 처리됩니다.

Page Size vs Chunk Size
Page Size와 Chunk Size는 서로의미하는 바가 다릅니다. Chunk Size는 한 번에 처리될 트랜잭션 단위를 얘기하며, Page Size는 한 번에 조회할 Item의 양을 이야기합니다.

참고: https://jojoldu.tistory.com/331

728x90

'Java > Spring' 카테고리의 다른 글

Spring MVC  (0) 2021.11.02
Spring MVC와 WebFlux의 차이  (0) 2021.10.29
Spring + Hibernate Validator Custom Message  (0) 2020.09.15
Spring Integration  (0) 2020.09.15
Spring WebFlux  (0) 2020.09.13