안녕하세요
대용량 데이터 INSERT 관련하여 질문드립니다.
질문에 앞서 Process Flow 를 설명드리겠습니다.
2개의 DB 서버
------------------------------
DB1 - 16개의 테이블
DB2 - TB1(테이블), TB2
1. DB1 -> LINK DB -> DB2.TB1 에 INSERT 배치
(배치1 - DB1에는 16개의 테이블을 가공하여 링크드 디비를 이용하여 DB2 의 TB1 에 데이터를 INSERT 를 시켜줍니다.)
2. DB2.TB1 -> DB2.TB2 에 INSERT 배치
(배치2 - DB2 의 TB1에 들어온 데이터를 가공하여 DB2 의 TB2 에 INSERT 합니다.)
요약하자면 데이터를 아래와 같이 넣어줍니다.
1. DB1 -> DB2.TB1
2. DB2.TB1 -> DB2.TB2
----------------------------------
질문)
현재 데이터의 수가 너무많습니다.
1번작업의 경우 30분마다 배치가 돌아서 문제가없습니다.
( 30분에 5000건 )
문제는 2번작업인데, 하루에 한번 새벽시간에 배치를 돌립니다.
TB1 에서 TB2
(하루에 대략 10만건)
그런데, 이전데이터를 넣어줘야해서 2번작업을 배치로 1년치를 해야합니다.
(약 10년치.. 즉, 1년치씩 10번 돌려야함..)
그러면 대략 8000만건을 조회하여, 대략 4000만건을 INSERT 해야합니다.
이것을 1번이 동작하면서 1년치씩 배치작업이 가능할까요?
처음하는 작업이라 걱정이 많이됩니다..
고수분들의 많은 답변부탁드립니다! ㅠㅠ
Comment 1
-
자리비움
2017.09.04 17:21
매일 10년치 데이터를 insert 해야하는 로직을 손보면 되지 않을까요?오늘 배치돌때 지난 10년치 데이터가 수정되지는 않을테니까요.8천만건 조회해서 4천만 insert 하는 건 오래(?) 걸립니다.물론 각종 힌트나 꼼수 등을 동원한다면 좀 더 나아지겠지만요.select, insert 쪽 쿼리 전체를 올려주시면 고수분들께서 도움 주실지도...