🌱 spring/🚛 spring batch
-
Spring Batch - Job Flow🌱 spring/🚛 spring batch 2022. 12. 16. 01:03
📌 Spring Batch Job Flow 실전에서 사용할 수 있는 Spring Batch 내용 Step 실제 Batch 작업을 수행하는 역할 Batch로 실제 처리하고자 하는 기능과 설정을 모두 포함하는 장소 Job 내부의 Step들 간의 순서 혹은 처리 흐름을 어떻게 제어❓ (Step 들을 어떻게 관리 ?) Next StepNextJobConfiguration.java 샘플코드 @Slf4j @Configuration @RequiredArgsConstructor public class StepNextJobConfiguration { private final JobBuilderFactory jobBuilderFactory; private final StepBuilderFactory stepBuilderF..
-
메타데이터 테이블🌱 spring/🚛 spring batch 2022. 12. 16. 00:53
📌 메타 테이블 알아보기 BATCH_JOB_INSTANCE BATCH_JOB_INSTANCE SELECT * FROM BATCH_JOB_INSTANCE; JOB_INSTANCE_ID : 테이블의 PK JOB_NAME : 수행한 Batch job name BATCH_JOB_INSTANCE 테이블은 Job Parameter에 따라 생성되는 테이블이다. Job Parameter ❓ Spring Batch 가 실행될 때 외부에서 받을 수 있는 파라미터 ex) 특정 날짜를 Job Parameter로 넘긴 경우 Spring Batch는 해당 날짜 데이터로 데이터를 조회 / 가공 / 입력 등의 작업을 할 수 있다. 같은 Batch Job 이라도 Job Parameter가 다르다면 BATCH_JOB_INSTANCE 에..
-
MySQL 환경 - Spring Batch🌱 spring/🚛 spring batch 2022. 12. 16. 00:47
📍 MySQL 환경에서 Spring Batch 실행 실제로 Spring Batch 는 어플리케이션 코드만 작성하면 되는 것이 아니다!! 메타 데이터 테이블 들이 필요하다 메타 데이터 데이터를 설명하는 데이터 데이터에 관한 구조화된 데이터로, 다른 데이터를 설명해 주는 데이터 Spring Batch의 메타데이터 이전에 실행한 Job이 어떤 것들이 있는지 최근 실패한 Batch Parameter에는 어떤 것들이 있는지 최근 성공한 Job은 어떤 것들이 있는지 다시 실행하면 어디서 부터 시작하면 될지 어떤 Job에 어떤 Step들이 있는지 Step들 중 성공한 Stpe과 실패한 Step들은 어떤 것들이 있는지 등등 Batch 어플리케이션을 운영하기 위한 메타데이터가 여러 테이블에 나눠져 있다. 메타 데이터의 ..
-
Spring Batch🌱 spring/🚛 spring batch 2022. 12. 16. 00:37
❓배치 어플리케이션 배치(Batch)는 일괄처리 라는 뜻을 가지고 있다. 매일 전 날의 데이터를 집계해야 한다고 가정 집계 과정을 어디서 수행해야 할까?? 웹 어플리케이션으로만 생각한다면 Tomcat + Spring MVC 를 생각한다. 하지만 이렇게 큰 데이터를 읽고 가공 후 저장한다면 해당 서버는 CPU, I/O 등의 자원을 다 써버려서 다른 Request 처리를 못하게 된다. 집계 기능은 하루에 1번 수행 이를 위해 API를 구성하는 것은 낭비 ❗ 데이터가 너무 많아 처리 중에 실패가 나는 경우? 실패한 위치부터 다시 실행할 수 있다면 얼마나 좋을까 이미 집계 함수를 누군가 실행했는데 다른 누군가 또 실행시켜서 데이터가 2배가 된다면? 같은 파라미터로 같은 함수를 실행할 경우 이미 실행한 적이 있다..