상세 컨텐츠

본문 제목

[SpringBoot - 인프런] Batch Meta Data

Spring

by 조킴 2022. 8. 22. 22:28

본문

반응형
  • 스프링 배치 메타 데이터
    • 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들 ( Job, Step , JobParameters .. ) 의 정보들을 저장 업데이트, 조회할 수 있는 스키마 제공
    • 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리 함으로서 배치 운용에 있어 리스크 발생시 빠른 대처 가능
    • DB와 연동할 경우 필수적으로 메타 테이블이 생성되어야한다.
  • DB 스키마 제공
    • 파일위치 : org/springframework/batch/core/***
    • DB 유형별로 제공
  • 스키마 생성 설정
    • 수동생성 : 스크립트를 가져와 쿼리 복사 후 직접 실행
    • 자동생성 : spring.batch.jdbc.initialize-schema 설정
      • ALWAYS
        • 스크립트 항상 실행
        • RDBMS 설정이 되어 있을 경우 내장 DB보다 우선적으로 실행
      • EMBEDDED
        • 내장 DB일 때만 실행되며 스키마가 자동 생성됨, 기본값
      • NEVER
        • 스크립트 항상 실행 안됨
        • 내장 DB 일경우 스크립트가 생성이 안되기 때문에 오류 발생
        • 운영에서 수동으로 스크립트 생성 후 설정하는 것을 권장함
  • 배치 테이블 설명
    • 구성
      • JOB_INSTANCE
        • Job이 실행될 때 JobInstance 정보가 저장되며 job_name과 job_key를 키로 하여 하나의 데이터가 저장
        • 동일한 job_name과 job_key로 중복 저장될 수 없다.
      • JOB_EXECUTION
        • job의 실행정보가 저장되며 Job 생성, 시작, 종료시간, 실행상태, 메시지 등을 관리한다.
      • JOB_EXECUTION_CONTEXT
        • Job과 함께 실행되는 JobParameter 정보 저장
      • JOB_EXECUTION_PARAMS
        • Job의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화 (Json 형식) 해서 저장
        • Step 간 서로 공유 가능하다.
      ⇒ Step과 관련된 테이블
      • STEP_EXCUTION
        • Step의 실행정보가 저장되며 생성, 시작, 종료시간, 실행상태, 메시지 등을 관리한다.
      • STEP_EXCUTION_CONTEXT
        • Step의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화 해서 저장
        • Step별로 저장되며 Step 간 서로 공유할 수 없다.
    • ⇒ Job과 관련된 테이블
반응형

관련글 더보기