EDW テーブル (履歴レコードを維持する) からディメンションをロードする必要があり、タイプは Key-Value-Parameter です。
以下のように EDW でレコードを取得した場合、私のシナリオは問題ありません
Key1 Key2 Code Value EffectiveDate EndDate CurrentFlag
100 555 01 AAA 2010-01-01 11.00.00 9999-12-31 Y
100 555 02 BBB 2010-01-01 11.00.00 9999-12-31 Y
これは、次のようにピボットして DM にロードする必要があります。
key1 と key2 の組み合わせにより、DM の自然キーが作成されます
SK NK 01 02 EffectiveDate EndDate CurrentFlag
1 100-555 AAA BBB 2010-01-01 11.00.00 9999-12-31 Y
私のssisパッケージは、これをすべて適切にピボットします... DIMで受信NKを検索します..新しい場合は挿入されます..それ以外の場合は、発効日をさらに検索して、同じ自然キーの受信が属性に新しい(変更)があるかどうかを判断します.. その場合、終了日を設定して現在のレコードを更新し、新しい属性値で新しいレコードを挿入し、他の属性の最近のレコード値を取得します。
私の問題は、単一の抽出で同じ属性を持つ同じ自然キーが2回来る場合、最初のルックアップで、自然キーで..両方のレコードを通過させ、挿入しようとします..失敗する場所です。NKで個別のレコードを取得した場合、2番目は選択されず、パッケージを再度実行する必要があります。
したがって、同じNKが単一の抽出で2回来る場合、このシナリオを処理するためのルックアップまたは代替方法をどのように構成できますか? Dimテーブルに存在しない場合は最初のレコードを挿入でき、2番目のレコードは上に挿入されたものへの参照。
これが何を説明しようとしているのかわからない。スクリーンショットを添付して、作業デスクに戻します (月曜日)。
ありがとう