[Spring Batch] MySQL

dev-log·2021년 11월 19일
0

Spring Batch

목록 보기
3/7

Spring Batch를 mySQL을 이용해 실행해보려 한다.

H2

이전 글에서 간단하게 Spring Batch가 수행되는 것을 확인했다.
따로 DB를 명시하지 않았기 때문에 단순한 어플리케이션 코드만 작성하면 된다고 생각할 수 있지만 실제로는 그렇지 않다.

Spring Boot의 기본 DB인 H2를 사용해 Spring Batch가 실행된 것이다.

MySQL

H2 DB가 아닌 MySQL이나 Oracle을 사용하기 위해서는 DB에 Spring Batch Meta Data Table을 직접 생성해줘야 한다.
(H2는 이와 같은 테이블을 Boot Application이 실행될 때 자돟ㅇ으로 생성해준다.)

  • Meta Data Table

    메타 데이터란 데이터의 데이터로 다른 데이터를 설명해주는 데이터이다.

Spring Batch의 메타 데이터는 아래와 같은 내용들을 담고 있다.

  • 이전에 실행한 Job이 어떤 것들이 잇는지
  • 최근 실패한 Batch Parameter가 어떤 것들이 있고, 성공한 Job은 어떤 것들이 있는지
  • 다시 실행한다면 어디서 부터 시작하면 될지
  • 어떤 Job에 어떤 Step들이 있었고, Step들 중 성공한 Step과 실패한 Step들은 어떤 것들이 있는지

등등 Batch 어플리케이션을 운영하기 위한 메타데이터가 여러 테이블에 나눠져 있다.

정리하면 메타 데이터는 Spring Batch 어플리케이션을 운영하기 위한 데이터를 가지고 있으며, 여러개의 테이블에 나눠져 담겨있게 된다.

이 테이블들이 있어야만 Spring Batch가 정상 작동한다.

  • Meta Data Table 생성

IDE에서 file검색으로 'schema-'를 검색해 Spring Batch에서 생성해 놓은 Spring Batch 메타 테이블을 스키마를 찾는다.

각자 사용하고자 하는 DB에 맞는 스키마를 사용하면 된다.

MySQL을 사용할 것이므로 schema-mysql.sql을 선택해서 복사한 후 MySql에서 붙여넣기 한 후 실행한다.

  • MySQL 환경으로 실행하기

프로젝트의 src/main/resources/application.yml에 mysql Datasource 설정을 추가한다.

위와 같이 Batch Job이 mysql로 정상적으로 수행되는 것을 확인할 수 있다.

Reference

https://jojoldu.tistory.com/325
https://minholee93.tistory.com/entry/Spring-Batch-MySQL?category=924031

profile
배운 걸 기록하는 곳입니다.

0개의 댓글