반응형
스프링 배치의 DB 스키마
스프링 배치는 DB에 메타데이터를 저장하고, 관리한다.
스프링 배치 메타 데이터
- 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters 등)의 정보들을 저장, 업데이트, 조회할 수 있는 스키마를 제공한다.
- 과거와 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리함으로써 배치운용에 있어 리스크 발생시에 빠르게 대처할 수 있다.
- DB와 연동할 경우 필수적으로 메타 테이블이 생성 되어야 한다.
DB 스키마 제공
/org/springframework/batch/core/
디렉토리에schema-??.sql
형식으로 DB유형별 기본 DB 스키마가 제공된다.
스키마 생성 설정
스키마 생성 방법
- 수동 생성
- 쿼리 복사 후 직접 실행
- 자동 생성
application.properties
에spring.batch.jdbc.inialize-schema
를 설정한다.
스키마 자동 생성시 옵션
ALWAYS
- DB스키마 생성 스크립트를
항상 실행한다
. - RDBMS 설정이 되어 있을 경우
내장 DB 보다 우선적으로 실행
된다.
- DB스키마 생성 스크립트를
EMBEDDED
- 내장 DB일 떄만 실행되며
스키마가 자동 생성
된다. 기본값
이다.
- 내장 DB일 떄만 실행되며
NEVER
- DB스키마 생성 스크립트를
항상 실행하지 않는다
. - 내장 DB일 겨우 스크립트가 생성이 안되기 때문에 오류가 발생한다.
- 운영에서
수동으로 스크립트 생성
후 설정하는 것을 권장한다.
- DB스키마 생성 스크립트를
DB 스키마
스프링 배치의 DB 스키마는 Sequence
제외 6개의 테이블이 존재한다.
Job 관련 테이블
BATCH_JOB_INSTANCE
Job
이 실행될 때JobInstance
정보가 저장되며job_name
과job_key
를 키로 하여 하나의 데이터가 저장된다.- 동일한
job_name
과job_key
로 중복 저장될 수 없다.
BATCH_JOB_EXECUTION
Job
의 실행정보가 저장되며 Job 생성, 시간, 종료 시간, 실행상태, 메시지 등을 관리한다.
BATCH_JOB_EXECUTION_PARAMS
Job
과 함께 실행되는JobParameter
정보를 저장한다.
BATCH_JOB_EXECUTION_CONTEXT
Job
의 실행동안 여러가지 상태정보, 공유 데이터를직렬화
(Json 형식)해서 저장한다.Step
간 서로 공유 가능하다.
Step 관련 테이블
BATCH_STEP_EXECUTION
Step
의 실행정보가 저장되며 생성, 시작, 종료 시간, 실행상태, 메시지 등을 관리한다.
BATCH_STEP_EXECUTION_CONTEXT
Step
의 실행동안 여러가지 상태정보, 공유 데이터를직렬화
(Json 형식) 해서 저장한다.Step
별로 저장되며Step
간 서로 공유할 수 없다.
반응형
'Java & Kotlin > Spring Batch' 카테고리의 다른 글
[Spring Batch] 스프링 배치 실행 - Flow (0) | 2022.05.28 |
---|---|
[Spring Batch] 스프링 배치 실행 - Step (0) | 2022.05.28 |
[Spring Batch] 스프링 배치 실행 - Job (0) | 2022.05.28 |
[Spring Batch] 스프링 배치 도메인 - Step, 나머지 (0) | 2022.05.28 |
[Spring Batch] 스프링 배치 도메인 - Job (0) | 2022.05.28 |
[Spring Batch] 스프링 배치와 구성 (0) | 2022.05.18 |