SQL 2008/SSIS で最初のデータ ウェアハウスを構築しており、ファクト テーブルの読み込みに関するベスト プラクティスを探しています。
現在、私の DW には、タイプ 1 SCD のディメンション (オフィス、従業員、製品、顧客など) が約 20 あります。私の dw 構造には、既に適用したものがいくつかあります。
- Null なし (ステージング中に、テキストの場合は空白に、数値の場合は 0 に置き換えられます)
- 各次元に入力された不明な主要メンバー (SK ID 0)
- ステージから実動テーブルへの SCD タイプ 1 ロードの UPSERT
- ディメンションの読み込みに SELECT DISTINCT
私のファクト ロード SSIS プロジェクトでは、ディメンションをロードするための現在の方法は、各 DIM に対して複数のルックアップ (20 以上) を行い、FACT テーブルにデータを入力することです。
私が設定したルックアップのために:
- フルキャッシュ
- 「一致するエントリがありません」の失敗を無視する
- 各 SK の "ISNULL(surrogate_idkey) ? 0 : surrogate_idkey" を使用した派生変換。ルックアップが失敗した場合、デフォルトで SK ID 0 (不明なメンバー) になります。
- 一部のディメンション ルックアップには複数のビジネス キーがあります
これは最善のアプローチですか?上記の私の説明を助けるために添付された写真。