ItemWriter
-
20. ItemWriter (DB)BackEnd/Spring Batch 2021. 12. 31. 18:30
JdbcBatchItemWriter JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고, sql 속성에 실행할 쿼리를 설정합니다. JDBC의 Batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리합니다. 단건 처리가 아닌 일괄처리이기 때문에 성능에 이점을 가집니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; imp..
-
19. ItemWriter (Json)BackEnd/Spring Batch 2021. 12. 31. 17:55
JsonFileItemWriter 객체를 받아 JSON String으로 변환하는 역할을 합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.launch.support..
-
18. ItemWriter (XML)BackEnd/Spring Batch 2021. 12. 31. 17:30
StaxEventItemWriter XML 쓰는 과정은 읽기 과정에 대칭적입니다. StaxEventItemWriter는 Resource, marshaller, rootTagName가 필요합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactor..
-
17. ItemWriter (File)BackEnd/Spring Batch 2021. 12. 31. 17:00
FlatFileItemWriter 2차원 데이터(표)로 표현된 유형의 파일을 처리하는 ItemWriter입니다. 고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터의 행을 기록합니다. Resource와 LineAggregator 두 가지 요소가 필요합니다. LineAggregator Item을 받아서 String으로 변환하여 리턴합니다. FieldExtractor를 사용해서 처리할 수 있으며, 구현체로는 PassThroughLineAggregator, DelimitedLineAggregator, FormatterLineAggregator가 있습니다. FieldExtractor 전달 받은 Item 객체의 필드를 배열로 만들고 배열을 합쳐서 문자열을 만들도록 구현하도록 제공하는 인터페이스입니다..
-
11. 스프링 배치 청크 프로세스 (Chunk)BackEnd/Spring Batch 2021. 12. 24. 17:30
Chunk란 여러 개의 아이템을 묶은 하나의 덩어리, 블록을 의미합니다. 한번에 하나씩 아이템을 입력 받아 Chunk 단위의 덩어리로 만든 후 Chunk 단위로 트랜잭션을 처리합니다. 즉, Chunk 단위의 Commit과 Rollback이 이루어집니다. 일반적으로 대용량 데이터를 한번에 처리하는 것이 아닌 청크 단위로 쪼개어서 더 이상 처리할 데이터가 없을 때까지 반복해서 입출력하는데 사용됩니다. Chunk vs Chunk Chunk는 ItemReader로 읽은 하나의 아이템을 Chunk에서 정한 개수만큼 반복해서 저장하는 타입 Chunk는 ItemReader로부터 전달받은 Chunk를 참조해서 ItemProcessor에서 적절하게 가공, 필터링한 다음 ItemWriter에 전달하는 타입 ChunkOri..