Spring Batch 개념
FRAMEWORK/Spring 2017. 7. 17. 16:55 |Spring Batch 개념
- 데이타 프로세싱과 관련된 다양한 방법들을 설정으로 관리할 수 있으며 관련한 통계 정보를 제공(commit 개수, Rollbak, restart ..등)
- 다양한 실행 방법 지원 (command line, Quartz..)
- 각종 읽기와 쓰기 기능의 구성요소를 같은 인터페이스들로 추상화 시키고 있고, 그어 맞는 기본 구현 클래스 제공
- 추가 코딩없이 설정만으로 기존 모듈 활용 가능
- 유연한 Exception 처리
시스템 내의 Soc(Separation of Concern)을 위해 논리적으로 티어 구분을 한다.
개념 적으로 구분했지만, 논리적인 컴포넌트 배포를 매핑할 때와 데이터 소스나 타겟과 통합하는데 효율적이다.
- Run 티어 : 스케줄링과 애플리케이션 실행에 관련
- Job 티어 : 일반적으로 배치 잡의 실행을 책임. 연속적으로 배치 Step 을 실행시키고 모든 Step 이 실행되서 정확한 상태에 있고 모든 정책이 정확하게 적용됐는지를 보장
- Application 티어 : 프로그램을 실행하는데 필요한 컴포넌트를 포함, 배치 기능을 수행하는데 적용되는 특정 태스크와 정책을 적용.
- Data 티어 : 데이터베이스, 파일, 큐들을 포함하는 물리적인 데이터 소스와 통합
구성요소
Job
하나의 배치작업을 정의, 예를 들어 "API 서버의 사용로그 테이블의 데이타를 로그 분석 시스템으로 옮기는 배치"
Job Instance
배치가 실제 실행되면, 각각의 실행을 Instance 라고 한다. 예를 들어 Batch Job이 매주 한번씩 수행된다고 할때 각각의 수행되는 Batch Job을 Batch Instance 라고 한다.
Job Execution
배치가 실행될때, 각 배치의 실행시, 실제 수행된 Execution을 정의한다.
예를 들어 Batch job 이 월요일 오전에 수행되었을때, 첫번째 실패하고 두번째에 Retry에 의해 성공했다면 이 각각 다른 Job Execution이 실행되고, 같은 작업을 시도하였기 때문에 같은 Job instance 가 된다.
Job parameter
매번 배치 작업이 수행될때 마다 전달되는 Parameter 이다. 예를 들어 매주 수행되는 배치가 있을때, 시작 시간,데이타를 읽을 범위 들 지정하여 Batch Job Instance 를 생성한다면, 이렇게 넘어가는 인가가 JobParamer 이다
Spring 에서 Batch Job 구성
Step
Spring 에서 Batch Job 은 Step의 모음으로 구성된다. Job 은 Step이 순차적으로 수행되게 된다.
Tasklet
Tasklet은 각 Step 에서 수행되는 로직이다. 개발자가 custom logic 을 만들수 있고 또는 보통 Batch 의 경우 데이타를 ETL(Extract Transform Loading)하는 형태이기 때문에 ,Spring Batch에서 미리 정의해놓은 Reader, Processor, Writer interface 를 사용할 수 있다.
ItemReader - 데이타를 읽는 컴포넌트
ItemProcessor - 읽은 데이타 처리
ItemWriter - 처리한 데이타를 저장
'FRAMEWORK > Spring' 카테고리의 다른 글
스프링 환경설정 java 버전 (0) | 2016.10.05 |
---|---|
Spring scheduler 설정 및 사용 (0) | 2016.04.12 |
스프링 이클립스 연동하기 (0) | 2015.10.20 |
aop 예제 (0) | 2015.08.24 |
aop (0) | 2015.08.23 |