2017-02-07 2 views
0

2つの異なるデータベースに2つの異なるデータベースがあります。2つの異なるサーバー上の2つの異なるテーブル間のエントリをレコードごとに一致させます

1つはSQL Serverで、もう1つはNetezzaです。

SQL Server上のエントリが自分のNetezza上のエントリと同一であるかどうかを確認したいと考えています。私はこの記録を記録したい。

出力がSQL Serverに存在するが、Netezzaには存在しないエントリを教えてもらいたい。

Informatica PowerCenterを使用してマッピングを作成しようとしていますが、私は困惑しています。

+0

各テーブルのデータの行数はいくつですか? – iamdave

+0

あなたの質問には2つの別々の質問があるようです... ask1)Netezzaに存在しないSQLサーバ上のレコードを探す... ask2)Netezzaと同じIDを持つSQLサーバのレコードを探しますが、残りのフィールドは同一ではない...あなたの要求に一致する質問があれば助言してください。 –

+0

Netezzaで何も同じものがなければ、NULLを返したいと思います。 –

答えて

1

ジョイナ変換を使用してこれらのテーブルを結合します。 [Netezzaテーブルをマスタとして、SQLサーバーテーブルを詳細として選択し、詳細外部結合として結合タイプを選択します。

joinerからの出力では、SQL Serverからすべての行を取得し、Netezzaテーブルから一致する行のみを取得します。レコードがNetezzaに存在しない場合、NetezzaフィールドはNULLになります。後で式変換で1つのNetezzaキーフィールドのみをチェックして、レコードがNetezzaに存在するかどうかを判断できます。

+0

良い答え。データ量が多い場合は、ジョイナでメモリを増やしたり、データを並べ替えたり(ソートトランスやデータベースでは依存する)、ソートされたプロパティを利用するようにジョイナを構成する必要があります。 –

+0

ジョイナ変換で 'ソートされた入力'プロパティを使用する唯一の理由がある場合は、Sorterを追加しないでください。この場合、両方のパイプラインがソートされているとJoinerが期待しているので、ここでは非常に注意する必要があります。また、両方のソーターを追加すると、マスターパイプラインをキャッシュするためにジョイナに残すよりも多くのキャッシュが作成されます。これは、例えば、ディテールソースはソート済み(既存のDBインデックスを利用)で読み込むことができ、マスタパイプラインのソートのみが必要です。 – Maciejg

+0

別々のサーバーにどのように接続しますか?また、テーブルがたくさんあることに注意してください。これは単一のケースには当てはまりません。 –

関連する問題