스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters..)의 정보들을 저장, 업데이트, 조회할 수 있는 메타 데이터를 스키마로 제공한다.
데이터베이스와 연동할 경우 필수적으로 메타 테이블이 생성되어야 하는데 이와 관련된 스키마 설정을 우선 알아보자.
스키마 생성 설정
스프링 배치 메타데이터 스키마를 사용하는 예제 코드 및 예시를 보자.
Gradle 의존성
application.yaml
Java Config
1. yaml에서 설정한 initialize-schema=ALWAYS 설정으로 인해 애플리케이션 시작 시 스프링 배치에 필요한 메타 데이터 테이블들이 H2 메모리 DB에 자동 생성된다.
2. Java Config에서 @EnableBatchProcessing를 통해 JobRepository, JobLauncher, JobExplorer 등 배치 인프라 빈들이 자동 등록되고 이때 생성된 JobRepository는 DB에 생성된 메타데이터 테이블을 사용한다.
3. exampleJob 실행 시 해당 Job/Step 실행 이력 등이 이 메타 데이터 테이블에 기록된다.
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 간 서로 공유할 수 없다.
출처
inflearn.com/course/스프링-배치/dashboard
스프링 배치 강의 | 정수원 - 인프런
정수원 | 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를
www.inflearn.com
'Dev > Spring Framework' 카테고리의 다른 글
『Spring Boot』 application.yml과 Profile (0) | 2024.12.28 |
---|---|
『Spring Batch』 스프링 배치 반복 및 오류 제어 (0) | 2024.12.10 |
『Spring Batch』 스프링 배치 도메인 이해 (0) | 2024.12.07 |
프레임워크와 라이브러리의 차이 (0) | 2024.12.06 |
『MVC』 Bean Validation (0) | 2024.12.03 |