2017-07-22 6 views
0

ファクト表のDatawarehouse Surrogate Keyにディメンションをロードする際に問題があります。たとえば、探しているSCDディメンションに1002行、SCD2および残りをSCD1とする。 SSISのルックアップ変換を使用して両方を戻すと、1002になるはずの行が1000行だけ表示されます。私はBusinessKeyを検索してDWH代理キーを戻しています。問題はビジネスキーをルックアップジョインとして使用してDWHサロゲートキーを取得しているためです。ルックアップのtranformationは重複するビジネスキーを削除しますが、重複している4つの行が存在するためです。この?それとも、私は完全に間違っているのですか?SSIS内のLookupディメンションからのSCD2を使用したファクト表の読み込み

答えて

1

SSISでの検索は、2回の出現があっても最初の一致と一度だけ一致します。 SSISでのルックアップのこの動作を変更することはできません。

ファクトテーブルをSSISに読み込む前に、SQLレベルでデータを準備することができます(ビューなど)。問合せでは、適切なサロゲート・キーを取得するために、ビジネス・キーと開始日と終了日の間にある特別な基準によって値を(次元に結合することによって)検索できます。

+0

こんにちはMustafa、あなたの答えをありがとう、基本的に私はちょうどインナーファクトテーブルとディメンションテーブルを結合?それは確かにSCDデメンションから2行戻ってくるでしょう。データフローのソース接続でこれを行うだけですか?これは私の最初の質問です、残りの2つは右のサロゲートキーを取り戻すことです、私は現在のフラグを使用する必要はありませんが、私も開始日と終了日を持っていますが、私は現在のフラグがありますか?ありがとうございます – abs786123

+0

最初の質問に答えてください。構築しているビューは実際にソースになりますが、私は左の結合を先取りします。行には一致がありません。-1または-99を指定します。これはNAを意味します。それ以外の場合は、ディメンションと一致するものがない場合は、データが範囲外になります。 2番目の質問に対する回答。ビジネス要件に依存します。ビジネスがディメンションの最後の状態を表示したい場合は、アクティブフラグが存在する代理キーを取得できます。しかし、ある瞬間にどの次元値が存在しているかを知りたい場合は、正しいキーを得るために日付を使用することができます。 –

+0

ありがとうございます、ちょっとだけ質問しますが、通常、事実のすべての外部キーをscd2として一般に分類しますか?私はそのルールを使用しましたが、それが良い考えであるかどうかはわかりません。何かご意見は?再度ありがとう – abs786123

関連する問題