2014-12-12 3 views
-1

다음과 같은 시나리오가 있습니다.데이터 집합의 동시 처리

두 개의 SQL 데이터베이스가 있습니다. 첫 번째 DB에서 여러 행을 읽고, 행에서 XML 필드를 추출하고, XSLT 및 기타 논리로 변환 한 다음 두 번째 DB에 삽입해야합니다. XSLT 변환은 다소 비쌉니다 (행당 약 300 밀리 초).이 변환을 동시에 처리하면 마이그레이션 속도가 빨라진다 고 가정합니다.

질문 : 첫 번째 DB에서 읽기 프로세스를 관리하는 방법은 무엇입니까? 컬렉션에 모든 행을 대량으로 읽고 동시 처리를 수행하는 것은 나쁜 생각처럼 보입니다. 여기에 어떤 패턴이 있습니까?

답변

2

Spring batch의 완벽한 후보와 비슷합니다.

DB에서 판독기에 대한 독자, XSLT 변환을 수행하고 프로세스를 병렬화하는 프로세서를 정의 할 수 있습니다. 또한 청크로 읽기를 지원하므로 전체 데이터 세트를 메모리에 둘 필요가 없습니다.

+0

다시 한번 감사드립니다. Spring Batch를 사용했는데 효과적입니다. 나는 해결책 [여기] (https://github.com/vic0nt/spring-batch-multithreaded)을 출판했다. – vicont