Tiny Star

2025/05 6

[대용량 이관] DB 성능 튜닝 (InnoDB Buffer Pool)

300만 데이터가 있는 테이블의 count만 했을 뿐인데 20초 이상 소요되는 문제가 발생했다.[MariaDB 최신 버전으로 컨테이너 생성]만 하고 그 외 설정을 하지 않았기 때문에 설정을 추가해보려고 한다. .cnf 설정# InnoDB 설정innodb_buffer_pool_size = 2Ginnodb_log_file_size = 512Minnodb_log_buffer_size = 64Minnodb_flush_log_at_trx_commit = 2innodb_flush_method = O_DIRECTinnodb_io_capacity = 2000innodb_file_per_table = 1 항목설명 innodb_buffer_pool_size테이블, 인덱스, row 데이터를 메모리에 캐싱데이터를 디스크에서..

[대용량 이관] bookRatingStep 개선

[bookRatingStep]을 만들었다. 300만 데이터 넣는데에 211초가 걸렸고, 문득 성능 테스트하는데 노트북 사양을 full 로 쓰면 조금 아이러니한 느낌이 들어서 메모리를 제한해보고 테스트해보기로 했다. 수정사항1. 메모리 설정-Xms512m -Xmx1g -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log옵션설명-Xms512mJVM의 초기 힙 메모리 크기를 512MB로 설정-Xmx1gJVM의 최대 힙 메모리 크기를 1GB로 제한-XX:+PrintGCDetailsGC가 발생할 때 어떤 세대에서 얼마나 수집되었는지 상세하게 로그 출력-XX:+PrintGCDateStampsGC 로그에 날짜와 시간 정보 포함-Xloggc:gc.logGC 로그를 ..

[대용량 이관] Book Job/Step 구성

20만건 정도의 book 데이터를 이관하는 것부터 시작했다. 구성보다는 에러를 해결한 내용이 위주이다...ㅎ Book Job, Step 구성@RequiredArgsConstructor@Configurationpublic class BatchConfiguration { private final Step stepBook; @Bean public Job bookJob(JobRepository jobRepository) { return new JobBuilder("bookJob", jobRepository) .start(stepBook) .build(); }}@Configurationpublic class BookStep ..

[대용량 이관] ItemWriter 선택 (JPA vs JDBC vs MyBatis)

파일 형식에 따라 Reader가 달라지기 때문에 이건 차치하고, 어떤 Writer를 써야할지 고민했다.MyBatisBatchItemWriter만 사용해봤는데, 실무에서 이걸 사용했던 이유는 테이블명이 기간에 따라 변경되기도 하고, if 문을 활용한 분기처리를 위한 동적매핑이 필요했기 때문이다.현재는 동적 매핑이 필요하지 않고 단순 Insert 처리만 하면 되기 때문에 굳이 이걸로 구현해야할까?란 생각이 들었기에 JdbcBatchItemWriter를 고려하게 됐다. JpaItemWriter는 [Spring Batch ItemWriter 성능 비교]를 보고 속도상 제외했다. 하지만!실제로 속도차이가 많이 나는지 궁금해서 테스트해보기로 했다. 구성공통 설정 (Entity)// BookRating.java@N..

[대용량 이관] 데이터 찾기 (Kaggle)

대용량 데이터 이관을 진행하기에 앞서, 어떤 데이터를 이관하면 좋을지 찾아봤다.이관량 자체가 목적이라면 랜덤 데이터 생성해서 넣을 수도 있으나, 추후 파일(CSV, JSON 등)을 활용한 배치작업이 필요할 수도 있기 때문에 구조까지 고려해서 작업해보려고 한다. (이미지 클릭 시 Kaggle 페이지로 연결됩니다.) Yelp Dataset이 데이터 세트는 Yelp의 사업체, 리뷰 및 사용자 데이터의 일부입니다. 원래는 학생들이 Yelp 데이터를 조사하거나 분석하고 그 결과를 공유할 수 있는 기회인 Yelp 데이터 세트 챌린지를 위해 마련되었습니다. 최신 데이터 세트에는 미국과 캐나다 8개 대도시 지역의 사업체 정보가 포함되어 있습니다. 용량 기준으로 데이터를 찾고 있었는데 대부분 용량이 큰 데이터는 '리..

[데이터] Kaggle (캐글)

프로젝트에 활용할 데이터셋을 찾다가 Kaggle(캐글) 이라는 사이트를 알게되었다. Kaggle데이터 과학자와 머신러닝 엔지니어들이 모여 서로 문제를 풀고, 데이터를 분석하고, 학습하는 플랫폼Kaggle은 수십만 개의 데이터를 자유롭게 검색하고 활용할 수 있는 데이터 저장소 제공CSV부터 이미지, JSON까지 다양한 형식의 데이터셋이 있고, 무료로 이용 가능 데이터셋 예시 주제 예시 데이터셋 건강/의료코로나 확진자 현황, 의학 이미지스포츠월드컵 경기 결과, NBA 선수 스탯경제/금융주식 시장, 암호화폐 가격게임포켓몬 정보, 롤 챔피언 통계일상/기타넷플릭스 영화 목록, 음식 영양 정보 ⭐ 실제 업무용 데이터뿐만 아니라, 흥미로운 주제의 캐주얼한 데이터도 많아서 초보자도 쉽게 접근 가능 사용하는 법 ..

IT 2025.05.05
top