본문 바로가기

Spring/짧은 정보

스프링 배치

728x90

[[ Spring Batch ]]

 

● 개념

일괄처리( ETL : 추출 - Extract, 변환 - Transformation, 적재 - Load )

스프링 배치는 Job와 Step을 기준으로 배치를 수행하기 쉽게 하고, 대용량 처리에 편리하도록 Chunk 지향처리 제공

 

● Chunk

각 커밋 사이에 처리되는 row 수

즉. 한 번에 하나씩 데이터를 읽어 Chunk라는 덩어리를 만든 후 Chunk 단위로 트랜잭션을 다루는 것

 

● Job

하나의 배치 작업

Job Instance : 배치가 실행 되면 각각의 실행을 의미

( ex. Batch Job이 하루에 한번 씩 수행 시, 각각의 수행되는 Batch Job을 Batch Instance 라고 함 )

Job Execution : Job Instance 에 대한 한 번의 실행을 의미

( ex. Batch Job이 월요일에 실패하고 화요일에 Retry에 의해 성공되었다면, 각각은 다른 Job Execution이지만 같은 Job Instance가 됨 )

 

● Step

Batch Job은 Step의 모음으로 구성

Job은 Step이 순차적으로 수행

 

● 배치를 주기적으로 동작하게 해주는 스케줄러

- Quartz 스케줄러 : 세밀한 제어 필요 시 사용

- 스프링 스케줄러 : 단순 스케줄링 작업에 사용

 

● 스케줄러 시간 설정 방식

cron

초 : 0 ~ 59

분 : 0 ~ 59

시 : 0 ~ 23

일 : 1 ~ 31

월 : 1 ~ 12

요일 : 1 ~ 7( 일 ~ 토 )

년 : 1000 ~ 9999

* : 모든 값

? : 특정 값 없음

- : 범위 지정

, : 여러 값 지정

/ : 초기값과 증가치 설정

 

ex.

0 15 10 * * ? * : 모든 연도, 아무 요일, 매월, 매일, 10:15

0 10,44 14 ? 3 4 : 3월, 매주 수요일, 아무 날짜, 14:10, 14:44

'Spring > 짧은 정보' 카테고리의 다른 글

JWT  (0) 2021.11.13
Spring Project 생성  (0) 2020.10.05