Spring Batch Partitioning(3)
-
ORA_HASH를 이용한 Partitioning 구현
ORA_HASH를 이용한 Partitioning 구현오라클의 ORA_HASH를 이용하여서 구현하는 방법은 사용자가 설정한 gridSzie 만큼 분할하여서 HASH VALUES를생성한다. 그리고 분할된 영역별로 병렬로 수행하는 방식이다. - 사용자가 지정한 gridSize 만큼 Partition을 생성한다.- 분할된 HASH 영역별로 Reader, Writer 작업을 수행한다.- 위 그림에서 보면 조회된 테이블 결과에서 HASH_RANGE값은 0~gridSize 만큼 생긴다. PartitionJob.xml 작성 PartitionerHelpler.java 작성package com.batchguide.partitioner; import java.util.HashMap; import java.util.Map; ..
2018.12.26 -
Range Partitioning 예제 - 구현
Range Partitioning 구현 앞에서 설정한 설정 정보를 이용하여 실제로 예제를 구현해보도록 하자. 입력 데이터는 MySQL 테이블에 등록 해두었고 이 데이터를 Oracle 테이블에 등록 해보도록 하자. 구현에 앞서 프로그램 전체적인 구조는 아래 그림을 참고 하도록 하자. - 전체적인 구조는 사용자가 지정한 grid-size 만큼 작업을 분할한다. 예제에서는 5로 설정 하였다. 따라서 위의 그림을 보면 5개의 Slave가 생성된다. - 앞에서 작성한 ColumnRangePartitioner 클래스를 이용하여서 minValue와 maxValue를 구한다. - 그리고 Slave 별로 Reader, Writer 작업을 수행한다. RangePartitionJob.xml 작성 - 분할할 작업수를 grid..
2018.12.18 -
Range Partitioning 예제 - 설정
Range Partitioning 설정 테이블이 특정 컬럼을 지정하여 분할하고자 하는 수 만큼의 작업을 분할하여 대용량 데이터를 처리를 위한 예제이다. 사전준비 예제를 작성하기 앞서 샘플 데이터 입수, 테이블 생성, 샘플 데이터 등록, Partitioning 처리를 위한 자바 클래스를 작성한다. 샘플데이터준비 Kaggle 사이트에서 Black Friday 자료를 다운 받는다. 다운로드사이트: https://www.kaggle.com/sdolezel/black-friday 데이터베이스 테이블 생성 MySQL 테이블 생성 스크립트 CREATE TABLE `black_friday` ( `user_id` varchar(10) NOT NULL, `product_id` varchar(10) NOT NULL, `ge..
2018.12.17