728x90
스프링배치의 경우 작업 이력을 남기기 위한 기본 테이블을 미리 생성을 해주어야 한다.
테이블의 정보는 아래와 같다.
테이블 구조

테이블 설명
번호 | 분류 |
테이블 명 | 설명 |
1 | JOB |
BATCH_JOB_INSTANCE | Job이 실행될 때 생성되는 JobInstance에 관한 정보를 저장 |
2 | BATCH_JOB_EXECUTION | JobInstance의 실행단위에 대한 실행횟수(1번 또는 1번이상)를 나타내는JobExecute에 관한 정보를 저장 매번 Job이 실행될 때마다 새로운 레코드가 쌓임 |
|
3 | BATCH_JOB_EXECUTION_PARAMS | JobParameter에 대한 모든 정보를 기록 JobParameter값에 따라 JobInstance가 생성되며 동일한 JobParameter값으로 JobApplication을 실행하면 BATCH_JOB_INSTANCE테이블에 기록되지 않음 |
|
4 | BATCH_JOB_EXECUTION_CONTEXT | 작업의 ExecutionContext와 관련된 모든 정보를 기록. 1개의 JobExecution에 각 JobExecutionContext가 있으며 특정 작업 실행에 필요한 모든 작업 레벨 데이터를 포함 |
|
5 | BATCH_JOB_EXECUTE_SEQ | 시퀀스 관리 테이블 | |
6 | BATCH_JOB_SEQ | 시퀀스 관리 테이블 | |
7 | STEP |
BATCH_STEP_EXECUTION | JobExecution에 대한 Step객체 정보를 기록하며 Job내부에서 각각 실행되는 Step 정보를 순서대로 확인 |
8 | BATCH_STEP_EXECUTION | Step의 ExecutionContext와 관련된 모든 정보를 보유 StepExecution당 1개의 ExecutionContext가 있으며 특정 단계 실행을 위해 유지해야하는 모든 데이터가 포함되며 일반적으로 JobInstance가 중지 된 위치에서 다시 시작할 수 있도록, 실패(Fail)이후 지점에 State를 나타냄 |
|
9 | BATCH_STEP_EXECUTION_SEQ | 시퀀스 관리 테이블 |
테이블 생성 방법(MySQL 기준)
IntelliJ기준으로 Ctrl + Shift + N을 눌러 File검색창을 띄운 뒤 schema-mysql로 검색을 하면 schema-mysql.sql파일이 나올 것이다. 해당 파일을 열어보면 위 테이블에 대한 ddl구문이 들어 있으니 내가 사용할 MySQL DB에 ddl구문을 실행 시켜 테이블을 생성해주면 된다.
'Spring' 카테고리의 다른 글
application.yml 여러개로 나누기 (0) | 2022.12.14 |
---|---|
stream API와 for-loop 성능차이 (0) | 2022.02.07 |
SpringBatch (0) | 2022.02.07 |
application.yml로 환경 나누기 (0) | 2022.01.28 |