3

自然キーとペアになった代理キーを含む代理キー マッピング テーブルの値に基づいて、データ ウェアハウス ステージング テーブルの列を更新するために使用したい SSIS パッケージがあります。具体的には、次の SQL と同じ方法で、キャッシュ ルックアップを使用してファクト ステージング テーブルを更新し、在庫ディメンションの代理キーを含めたいと考えています。

 UPDATE A
      SET A.DWHSurrogateKey = B.DWHSurrogateKey
  FROM SaleStagingTable A INNER JOIN inventoryStagingTable on B.OLTPInventoryKey = A.OLTPInventoryKey

残念ながら、ルックアップ変換から変換先へのデータ フローの性質上、一致した既存の行を更新するのではなく、まったく新しい行が作成されます。これを行うために SSIS を操作することは可能ですか?

いくつかの制約:

  • 私の宛先は ADO .NET 宛先であり、OLE DB 宛先またはソースを使用できません (名前付きパラメーターを使用できるようにする必要があり、OLE DB 接続ではそれを行うことができません)。
  • 複数のディメンションをファクト テーブルにリンクするには、これを行う必要があるため、マッピングされたデータを毎回新しいテーブルにプッシュすることはできません。

これらの人が提案したことを実行できるようにしたいのですが、OLE DB ではなく ADO コネクタを使用します。

http://redsouljaz.wordpress.com/2009/11/30/ssis-update-data-from-different-table-if-data-is-null/

http://www.rad.pasfu.com/index.php?/archives/46-SSIS-Upsert-With-Lookup-Transform.html

4

1 に答える 1

3

このような単純な更新では、SQL 実行タスクを使用して、データ フローをいじる手間を省きます。同様の更新が多数あるが、フィールドとテーブルが異なる場合は、Foreach アイテム列挙子を使用して、列とテーブルの名前を Foreach ループ コンテナーに格納します。次に、アイテム名を取得して動的に生成するスクリプト タスクを追加します。変数に格納できるSQL、次にSQL実行タスクを追加し、SQL変数を使用するように取得します。

于 2013-09-04T16:35:26.313 に答える