스프링 배치 메타 데이터
스프링 배치는 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters..)의 정보들을 저장, 업데이트, 조회할 수 있는 스키마를 제공한다.
과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리할 수 있어서 배치운용에 있어서 리스크 발생시 빠르게 대처할 수 있다.
DB와 연동할 경우 필수적으로 메타 데이블이 생성되어야 한다.
DB 스키마 제공
파일 위치 : /org/springframework/batch/core/schema-&.sql
DB 유형별로 모두 제공한다.
스키마 생성 설정
수동 생성 : DB 스키마 파일 위치에 존재하는 파일의 쿼리를 복사 후 실행한다.
자동 생성 - spring.batch.jdbc.initialize-schema 설정
# always : 스크립트 항상 실행한다.
# RDBMS 설정이 되어 있을 경우 내장 DB 보다 우선적으로 실행한다.
spring:
batch:
jdbc:
initialize-schema: always
# embedded : 내장 DB일 때만 실행되며 스키마가 자동 생성된다. 기본 값이다.
spring:
batch:
jdbc:
initialize-schema: embedded
# never : 스크립트가 항상 실행이 되지 않는다.
# 내장 DB일 경우 스크립트가 생성이 안되기 때문에 오류가 발생한다.
# 운영에서 수동으로 스크립트 생성 후 설정하는 것을 권장한다.
spring:
batch:
jdbc:
initialize-schema: never
Batch 메타 테이블
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 간 서로 공유할 수 없다.
'[ Spring ] > Batch' 카테고리의 다른 글
[Batch] 도메인 객체 이해 (0) | 2022.11.23 |
---|---|
[Batch] Job 만들어서 실행해보기 (0) | 2022.10.23 |
[Batch] 스프링 배치 초기화 설정 클래스 (0) | 2022.10.22 |