2014-05-13 1 views
0

많은 양의 데이터가 소스에서 대상으로 전송됩니다. 목표에 성공적으로 삽입 한 후에는 모든 행의 상태를 "committed"로 변경해야합니다. 그러나 언제 소스에 직접 쿼리하지 않고 모든 데이터가 목표에 도달했는지 여부를 알 수 있습니까? 예를 들어informatica의 데이터 마이그레이션

- 가정 10 개의 레코드가 소스로부터 타겟으로 이주. 대상에 모든 레코드가 성공적으로 삽입되기 전에 모든 레코드의 상태를 "committed"로 변경할 수 없습니다.

그래서 모든 레코드의 상태를 변경하기 전에 11 번째 레코드가오고 있다는 것을 어떻게 알 수 있습니까? 출처의 전체 레코드에 대한 정보를 제공 할만한 것이 있습니까?

저는 실시간 기반 답변이 필요합니다.

+0

제게 좋은 해결책을주세요. – user3631025

+0

출처는 무엇입니까? 우리는 실시간 세션에 대해 이야기하고 있습니까? 일반적으로 Post-SQL을 사용하여 update 문을 실행할 수 있습니다. – Maciejg

답변

0

처음으로 데이터가 대상에로드되어 있는지 확인하려면 원본 및 대상 테이블을 조인 할 수 있습니다. 업데이트는이 커밋을 실행하기 위해 행을 잠급니다. 목표 테이블의 데이터베이스 레벨 (갱신을위한 잠금이 발생할 수 있도록).

결합 후 대상 열과의 조인을 기반으로로드 된 데이터를 업데이트하십시오.

몇 가지. 세션을 중지해야합니다 (명령 태스크에서 세션을 중지하기 위해 pmcmd 사용) 소스 테이블의 데이터를 업데이트하고 세션을 다시 시작하십시오.

카운터가 20k-30 행을 유지하므로 업데이트가 원활하게 진행됩니다.

관련 문제