Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- react react-router-dom v6
- react quill custom
- Javascript
- react forwardRef
- react jsx if
- react
- step 테이블
- Spring DTO
- spring builder
- react Page
- javascrpit 기초
- javascript 기초
- JPA Update\
- springbatch chunk
- 텍스트가 많은 경우
- Spring Controller return
- Spring JPA
- JPA Insert
- Docker Windows 설치
- spring security
- 코드 중복제거
- javascript 함수
- editor Quill
- spring
- SpringBatch 스키마
- react link
- Spring Entity
- springbatch
- Spring CORS
- react Quill
Archives
- Today
- Total
천천히 알아보는 코딩공부
[SpringBatch] DB 스키마 설명 및 세팅 본문
Job 관련 테이블
- BATCH_JOB_INSTANCE :
- Job 이 실행될때 JobInstance 정보가 저장되며 job_name과 job_key를 키로 하여 하나의 데이터가 저장
- 동일한 job_name 과 job_key 로 중복 저장될 수 없다
- (주의 : JobInstance는 Job이 실행될 때마다 생성되지 않습니다. Appication이 실행될 때 Argument에 할당받은 고유한 JobParameter값에 따라 새로 생성됩니다.)
CREATE TABLE BATCH_JOB_INSTANCE (
JOB_INSTANCE_ID BIGINT PRIMARY KEY ,
VERSION BIGINT,
JOB_NAME VARCHAR(100) NOT NULL ,
JOB_KEY VARCHAR(2500)
);
JOB_INSTANCE_ID | 실행된 Job을 고유하게 식별될할 수 있는 기본 키입니다. JobInstance의 getId 메서드를 통해 값을 얻어옵니다. |
VERSION | 해당 레코드에 update 될때마다 1씩 증가합니다. |
JOB_NAME | JobBuildFactory에서 Job을 빌드할 당시 get메서드를 사용하여 해당 Job의 이름을 부여하였습니다. 그러니 반드시 NULL이 올 수 없겠죠. 바로 그 값(이름)을 기록합니다. |
JOB_KEY | 동일한 Job이름의 JobInstance는 Job의 실행시점에 부여되는 고유한 JobParameter의 값을 통해 식별됩니다. 그리고 이렇게 식별되는 값의 직렬화(serialization)된 결과를 JOB_KEY라는 값으로 기록됩니다. |
- BATCH_JOB_EXECUTION
- job의 실행정보가 저장되며 job 생성, 시작, 종료 시간, 실행상태, 메시지 등을 관리
CREATE TABLE BATCH_JOB_EXECUTION (
JOB_EXECUTION_ID BIGINT PRIMARY KEY ,
VERSION BIGINT,
JOB_INSTANCE_ID BIGINT NOT NULL,
CREATE_TIME TIMESTAMP NOT NULL,
START_TIME TIMESTAMP DEFAULT NULL,
END_TIME TIMESTAMP DEFAULT NULL,
STATUS VARCHAR(10),
EXIT_CODE VARCHAR(20),
EXIT_MESSAGE VARCHAR(2500),
LAST_UPDATED TIMESTAMP,
JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL,
constraint JOB_INSTANCE_EXECUTION_FK foreign key (JOB_INSTANCE_ID)
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
);
JOB_EXECUTION_ID | JobInstance에 대한 실행횟수(JobExecution)를 고유하게 식별될할 수 있는 기본 키입니다. |
VERSION | DB에 Record가 터치(update)될 때마다 누적됩니다. |
JOB_INSTANCE_ID | 실행된 JobExecution에 대한 실행단위, JobInstance의 키를 기록합니다. |
CREATE_TIME | 실행(Execution)이 생성된 시점을 TimeStamp 형식으로 기록합니다. |
START_TIME | 실행(Execution)이 시작된 시점을 TimeStamp 형식으로 기록합니다. |
END_TIME | 실행이 종료된 시점을 TimeStamp으로 기록합니다. 여기서 말하는 종료는 성공 또는 실패와 상관없이 순수히 끝난 시점을 의미합니다. 실행 도중 일부유형의 오류가 발생했거나 프레임워크 내부에서 값을 저장하기도 전에 실패되었을 경우 값이 비어 있을 수 있습니다. |
STATUS | 실행의 상태를 COMPLETED, STARTED, ETC 와 같은 미리 정의된 Enumeration값으로 기록합니다. |
EXIT_CODE | 실행 종료코드를 기록합니다. |
EXIT_MESSAGE | Status가 실패(Fail)일 경우 실패한 원인에 대하여 추적이 가능한 범위내에서 기술하여 문자열형태로 기록합니다. |
LAST_UPDATED | 실행(Execution)이 마지막으로 영속(persisted)에 놓인 시점을 TimeStamp 형식으로 기록합니다. |
- BATCH_JOB_EXECUTION_PARAMS
- job과 함께 실행되는 JobParameter 정보를 저장
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
JOB_EXECUTION_ID BIGINT NOT NULL ,
TYPE_CD VARCHAR(6) NOT NULL ,
KEY_NAME VARCHAR(100) NOT NULL ,
STRING_VAL VARCHAR(250) ,
DATE_VAL DATETIME DEFAULT NULL ,
LONG_VAL BIGINT ,
DOUBLE_VAL DOUBLE PRECISION ,
IDENTIFYING CHAR(1) NOT NULL ,
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
);
- BATCH_JOB_EXECUTION_CONTEXT
- job 의 실행동안 여러가지 상태정보, 공유 데이터를 직렬화 (Json 형식) 해서 저장
- Step 간 서로 공유 가능함
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
JOB_EXECUTION_ID BIGINT PRIMARY KEY,
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
SERIALIZED_CONTEXT CLOB,
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
);
STEP_EXECUTION_ID | Step에 대한 실행횟수정보를 고유하게 식별될할 수 있는 기본 키입니다. |
SHORT_CONTEXT | SERIALIZED_CONTEXT의 버전을 나타내는 문자열 |
SERIALIZED_CONTEXT | 직렬화(serialized)된 전체 컨테스트 |
application.yml
초기화 설정을 끄기 : never 켜기 : always
spring:
batch:
jdbc:
initialize-schema: never
'Java > SpringBatch' 카테고리의 다른 글
[SpringBatch] Chunk 기반 실행 (0) | 2023.09.14 |
---|---|
[SpringBatch] DB 스키마 설명 및 세팅 (2) (0) | 2023.04.20 |
[SpringBatch] 스프링 배치 실행 순서 (0) | 2023.04.18 |
Comments