Spring Batch 메타 테이블 데이터

메타 테이블 데이터

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

 

 

BATCH_JOB_INSTANCE

  • Job이 실행되면 JobInstance가 이 테이블에 저장된다.
    • JOB_INSTANCE_ID : BATCH_JOB_INSTANCE 테이블의 PK
    • VERSION : 업데이트 될 때마다 1씩 증가
    • JOB_NAME : Job의 이름
    • JOB_KEY : job_name과 jobParameter를 합쳐 해싱한 해시코드 저장

  • job_key이 같으면 추가적으로 기록되지 않습니다. 즉 같은 Batch Job인 경우 JobParameter가 다른 경우에만 추가적으로 데이터가 저장된다.

 

 

BATCH_JOB_EXECUTION

  • Job의 실행정보가 저장된다.
    • JOB_EXECUTION_ID : BATCH_JOB_EXECUTION 테이블의 PK, JOB_INSTANCE와 1:N 관계
    • VERSION : 업데이트 될 때마다 1씩 증가
    • JOB_INSTANCE_ID : JOB_INSTANCE KEY (외래 키)
    • STATUS: 실행 상태 저장 ( COMPLETED, FAILED, STOPPED, STARTED, ... )
    • EXIT_CODE : 실행 종료 코드 ( COMPLETED. FAILED, UNKNOWN, ... )
    • EXIT_MESSAGE : Status가 FAILED인 경우 원인 저장

  • JOB_EXECUTION은 자신의 부모 관계인 JOB_INSTANCE의 실행 상태 내역을 갖고 있는다.

 

 

BATCH_JOB_EXECUTION_PARAMS

  • Job과 함께 실행되는 JobParameter 정보가 저장된다.
    • JOB_EXECUTION_ID : JobExecution 식별키 (외래 키)
    • TYPE_CD : 타입 정보 (String, Long, Double, Date)
    • 나머지는 파라미터 정보

 

 

BATCH_JOB_EXECUTION_CONTEXT

  • Job의 실행 동안 여러가지 상태 정보나 공유 데이터를 JSON 형태로 직렬화해서 저장한다.
    • JOB_EXECUTION_ID : JOB_EXECUTION 마다 생성된다. (외래 키)
    • SHORT_CONTEXT : Job의 실행 상태 정보, 공유 데이터 등의 정보를 문자열로 저장
    • SERIALIZED_CONTEXT : 직렬화된 전체 컨텍스트를 저장
  • Step간 서로 공유가 가능하다.

 

 

BATCH_STEP_EXECUTION

  • Step의 실행정보가 저장된다.
    • STEP_EXECUTION_ID : Step의 실행 정보 PK
    • VERSION : 업데이트 될 때마다 1씩 증가
    • STEP_NAME : Step의 이름
    • JOB_EXECUTION_ID : JobExecution PK (외래 키)
    • START_TIME : 실행이 시작된 시점
    • END_TIME : 실행이 종료된 시점, Job 실행 중 오류 발생시 값이 저장 안됨
    • STATUS : 실행 상태 (COMPLETED, FAILED, STOPPED, STARTED, ... )
    • COMMIT_COUNT : 트랜잭션 당 커밋되는 수
    • ROLLBACK_COUNT : 실행도중 Rollback이 일어난 수
    • EXIT_CODE : 실행 종료 코드 ( COMPLETED. FAILED, UNKNOWN, ... )
    • EXIT_MESSAGE : Status가 FAILED인 경우 원인 저장

 

 

BATCH_STEP_EXECUTION_CONTEXT

  • Step의 실행 동안 여러가지 상태 정보나 공유 데이터를 JSON 형태로 직렬화해서 저장한다.
    • STEP_EXECUTION_ID : StepExecution PK, (외래 키)
    • SHORT_CONTEXT : STEP의 실행 상태 정보, 공유 데이터 등의 정보를 문자열로 저장
    • SERIALIZED_CONTEXT : 직렬화된 전체 컨텍스트 저장
  • Step 별로 저장되며, Step 간 서로 공유가 가능하다.