Posts 스프링배치 Chunk 프로세스 이해
Post
Cancel

스프링배치 Chunk 프로세스 이해

1. chunk

기본개념t

  • Cunck란 여러개의 아이템을 묶은 하나의 덩어리를 의미한다.수정
  • 한번에 하나씩 아이템을 입력받아 Chunk 단위의 덩어리로만들어 Cunck 단위로 트랙잭션을 처리한다, Cunck 단위의 Commit과 Rollback이 이루어짐
  • 일반적으로 청크 단위로 쪼개어 더이상 처리할 데이터가 없을때까지 반복해서 입출력하는데 사용된다.

여러개가 모인 하나의 chunk 단위

입력기가 item들을 읽어서 원안에 저장한다. 이원들이 청크가된다

이덩어리의 청크를 출력기에 보낼때는 item의 묶음인 items로 하나의 단위로 묶어서 보낸다.




![chunk 와 chunk의 흐름도](/assets/img/springbatch/chunk2.png) Source로 부터 한건씩얻고 Cunck 크기만큼의 item들을 가지고있다.

chunck를 전달받은 ItemProcessor은 가공되고 변형한다음 Chunk 에 담아놓는다. 그후 items들을 ItemWriter에 전달하게 된다.

  • Cunck < I > 차이점 Cunck< O >
    • Cunck 는 ItemReader로 읽은 하나의 아이템을 chunk에서 정한 개수만큼 반복해서 저장하는 타입
    • Cunck는 ItemReader로부터 전달받은 Cunck를 참조해서 ItemProcessor에서 적절하게 강공, 필터링한 다음 ItemWriter 에전달하는 타입


Chunk 아키텍처

chunk를 사용해 item들을 어떻게 받고, 가공하여 DB까지 처리되는 아키텍쳐

chunk를 사용해 item들을 어떻게 받고, 가공하여 DB까지 처리되는 아키텍쳐 (chunk3.jpg)

  1. source로부터 읽어서 chunk에 저장되고 List에 item들을 담아놓는다.
  2. chunk size만큼 자리수가 찰때까지 반복한다.
  3. 다찬다면, inputs 들을 ItemProcessor로 전달한다, Iterator로 읽으면서 번형, 가공한다.
  4. transform을 item개수만큼 Chunk에 담는다. 그후 최종적으로 ItemWriter에게 전달한다.
  5. 그후 최종적으로 DB에 저장한다.

즉 ItemReader, ItemProcessor는 Chunk 내 개별 아이템을 처리한다.

ItemWriter는 Chunk 크기만큼 아이템을 일괄 처리한다.




작성중…..

2. ChunkOrientedTasklet

3. ItemReader / ItemWriter / ItemProcessor

4. ItemStream

5. 아키텍처

This post is licensed under CC BY 4.0 by the author.