problem스프링 배치를 실행 시키면 배치는 아래와 같이 관련된 테이블을 생성하는데,생성이 되지 않아 / 찾지 못해 생기는 에러이다. solution1. 자동생성application.properties 에 해당 옵션을 설정해주면 자동으로 관련 테이블이 생성된다.spring.batch.initialize-schema=always하지만 스프링 5.0 부터는 @EnableBatchProcessing 을 사용하면 위 옵션을 막아 생성이 안된다. 2. 직접 생성 위 방법으로 안된다면 직접 생성을 해주어야 한다.아래 링크를 확인하여 직접 생성해준다. https://soobysu.tistory.com/146 [오류노트] Spring Batch [ Could not obtain sequence value ]pro..
problem 저번 글에 addBatch에 대한 글을 적었는데 기초에 대한 정리 글이 없어서 적어본다. https://soobysu.tistory.com/131 [Spring Batch] addBatch로 다량 쿼리문 한번에 실행 (bulk insert) 결과 10만건 데이터 > JPA 27분 , addBatch 28초 Problem 엔터티 indexes 를 설정하고 검색최적화를 위해 더미데이터를 DB에 저장 하려고 하는데 10만건의 데이터를 넣는데 굉장히 많은 시간이 걸렸다. 어떻 soobysu.tistory.com solution 스프링 배치 구성 잡 런처 -> 잡 실행 시키는 주체 잡 -> 작업의 단위 ( 한개이상의 스텝으로 구성 되어있다 ) 스텝 -> 행위 ( 데이터 읽기 read , 데이터 작업..
결과 10만건 데이터 > JPA 27분 , addBatch 28초 problem 엔터티 indexes 를 설정하고 검색최적화를 위해 더미데이터를 DB에 저장 하려고 하는데 10만건의 데이터를 넣는데 굉장히 많은 시간이 걸렸다. 어떻게 하면 데이터를 더 빠르게 db에 저장 할 수 없을까 ? JPA를 통해 데이터를 DB에 보내면 save() 또는 saveAll() 해주면 엔터티마다 트랜젝션을 생성하고 커밋한다. 즉 건당 오버헤드(overhead)가 발생한다. solution 오버헤드가 일어나는곳을 한번에 묶어서 처리하면 되지 않을까 ? (중복제거) addBatch로 한번에 묶어서 커밋을 해보자. addBatch는 쿼리 실행을 하지 않고 쿼리 구문을 메모리에 올려두었다가, 실행 명령(executeBatch)이..