본문 바로가기
Dev/Spring Framework

『Spring Batch』 스프링 배치 메타 데이터 스키마

by 세대교체 2024. 12. 9.

 

스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(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