Spring Batch3
Writer: 서양훈

Spring Batch - 메타데이터 스키마

이번에는 Spring Batch 에서 사용되는 메타데이터 보관하는 스키마에 대해 알아보겠습니다.

우리는 mysql 기준으로 Spring Batch 에서 사용되는 메타데이터를 보관 해야 하니

schema-mysql.sql

해당 파일을 검색하면 여러 스키마를 볼수 있습니다.

이렇게 메타데이터가 존재하는 이유는 이전 과거 또는 현재 배치 실행에 있어서 상태정보를 저장시켜서

체계적인 관리 및 처리를 하기 위함입니다.

각각의 테이블 정보는

https://docs.spring.io/spring-batch/docs/3.0.x/reference/html/metaDataSchema.html

Formula

여기서 확인이 가능합니다.

그럼 Job 을 실행시켜 저장되는 각각의 메타데이터를 알아보도록 하겠습니다.

Formula

총 9개 테이블이 존재하지만 여기서는 대표적인 테이블만 보도록 하겠습니다.

BATCH_JOB_INSTANCE

Formula

Job 을 실행하면 Job_instance 에 관련 메타데이터를 저장하는 테이블입니다.

Job 실행전 먼저 BATCH_JOB_INSTANCE 테이블 이미 실행된 JOB_NAME, JOB_KEY 값인지 확인 합니다.

즉 JOB_NAME, JOB_KEY 은 묶어서 유니크로 지정되어 있기 때문에 같은 Job 이름 Job 파라미터를 지정 할 수 없습니다.

BATCH_JOB_EXECUTION

Formula

Job 실행에 있어서 배치 시간, 상태코드 등 상태정보를 저장 하는 테이블 입니다.

핵심 컬럼만 보겠습니다.

BATCH_JOB_EXECUTION_PARAMS

Formula

실행시 특별히 파라미터를 지정하지 않아 빈값으로 나왔지만 파라미터를 지정 하게 된다면 저장 되는 값 입니다.

BATCH_STEP_EXECUTION

Formula

Step 실행에 있어서 배치 시간, 상태코드 등 상태정보를 저장 하는 테이블 입니다.

여기서 부터는 후에 청크 기반의 itemReader, ItemWriter, ItemProcessor 설명때 자세히 설명 드리겠습니다.