web-dev-qa-db-ja.com

SSISインポートデータまたは一致しない場合はデータを挿入

あるテーブルから別のテーブルにデータをインポートする必要がある状況があります。ここでの課題は、他のテーブル値(外部キーの種類)への参照であるいくつかの列があるテーブルです。これらの参照列を一致させる必要があり、フィールドが一致する場合はそれぞれのIDをマップする必要があります。そうでない場合は、その値を参照テーブルに挿入し、ソーステーブルのデータソースにIDをマップして、すべてのデータをインポートする必要があります。

私の問題を詳しく説明します:

ETL with Lookups

これが私のETLの外観です。現在、私は「ルックアップ一致」で実行を進めていますが、「ルックアップが一致しない」場合は、それぞれのテーブルに新しいレコードを作成する必要もあります。 (そして、これは私がしているすべての8つのルックアップのために行う必要があります)。これらすべてを順番に実行し、最終段階ですべてのデータをインポートする方法がわかりません。

1
Mihir Chittora

これが私がやったことです:

  1. 一致しないフィールドを検索して挿入するための新しいデータフローを作成しました。
  2. 実際のデータフローを挿入しました。
1
Mihir Chittora

デビッドが上記の要件を指摘しているので少しあいまいですが、私が正しく理解している場合は、ソースシステムのルックアップ値を持つデータをインポートし、それらのルックアップ値がターゲットシステムにない場合は追加しますターゲットシステムでそれら。これは、データフロータスク内でルックアップトランスフォームを使用して実現できます。

具体的には、ルックアップにLookup No Match出力を追加できます。次に、フローはOLE DB DestinationまたはSQLタスクに接続して、一致しなかったデータを追加できます。

Lookup with a No Match Output

Robert Sheldonがこれに関する優れたチュートリアルを書いており、Simple Talk Webサイト https://www.simple-talk.com/sql/ssis/implementing-lookup-logic-in-sql-server -integration-services /

0
Nigel Ainscoe