2017-02-07 5 views
0

두 개의 다른 데이터베이스가 두 개의 다른 서버에 있습니다.두 개의 다른 서버에있는 서로 다른 두 테이블 간의 레코드를 일치시킵니다.

하나는 SQL Server이고 다른 하나는 Netezza입니다.

SQL Server의 항목이 Netezza의 항목과 동일한 지 확인하고 싶습니다. 나는이 기록을 기록으로하고 싶다.

출력이 SQL Server에 어떤 항목이 있는지 알려주고 싶지만 Netezza에는 존재하지 않습니다.

Informatica PowerCenter를 사용하여 매핑을 만들려고하는데 문제가 있습니다.

+0

각 테이블의 데이터 행 수는 얼마나됩니까? – iamdave

+0

질문에 두 가지 별도의 질문이있는 것 같습니다. ask1) Netezza에없는 SQL 서버의 레코드를 찾습니다 ... ask2) Netezza에서와 동일한 ID를 가지고 있지만 나머지 필드는 SQL 서버에있는 레코드를 찾습니다. 동일하지 않습니다 ... 어떤 질문이 귀하의 요구 사항과 일치하는지 조언 해주십시오 –

+0

Netezza에서 동일한 것이 없으면 NULL을 반환하고 싶습니다. –

답변

1

Joiner 변환을 사용하여 해당 테이블을 조인하십시오. Netezza 테이블을 마스터로 선택하고 SQL 서버 테이블을 Detail으로 선택하고 조인 유형을 Detail Outer Join으로 선택합니다.

이제 joiner의 출력에서 ​​SQL Server의 모든 행과 Netezza 테이블의 일치하는 행만 가져옵니다. 레코드가 Netezza에 없으면 Netezza 필드는 NULL로됩니다. 나중에 식 변환에서 하나의 Netezza 키 필드 만 검사하여 레코드가 Netezza에 있는지 확인할 수 있습니다.

+0

좋은 답변입니다. 데이터 양이 많은 경우 소목 장의 메모리를 늘리거나 데이터를 분류해야 할 수도 있습니다 (분류기 전송 또는 데이터베이스 - 종속적 인 경우). 정렬 된 속성을 사용하도록 소목 장 구성을 구성합니다. –

+0

Joiner 변환에서 'Sorted input'속성을 사용하는 경우에만 Sorter를 추가하지 마십시오. Joiner는이 두 가지 파이프 라인을 모두 정렬해야하므로 여기에서 매우주의해야합니다. 둘 모두를위한 분류기를 추가하면 마스터 파이프 라인을 캐시하기 위해 Joiner에게 맡기는 것보다 많은 캐시를 생성합니다. 이것은 예를 들어, 다음과 같은 경우에만 유용 할 수 있습니다. 세부 소스는 기존 DB 인덱스를 활용하여 정렬하여 읽을 수 있으며 마스터 파이프 라인 만 정렬하면됩니다. – Maciejg

+0

별도의 서버에 어떻게 연결합니까? 또한 많은 테이블이 있다는 것을 명심하십시오, 이것은 하나의 경우가 될 수 없습니다. –