4 つのディメンション テーブルと 1 つのファクト テーブルを含むデータ ウェアハウスの設計があります。
- dimUser id、電子メール、firstName、lastName
- dim住所 ID、都市
- dimLanguage id、言語
- dimDate id、startDate、endDate
- factStatistic id、dimUserId、dimAddressId、dimLanguageId、dimDate、loginCount、pageCalledCount
私たちの問題は次のとおりです。統計の計算 (userId、日付範囲に応じて) と外部キーの入力を含むファクト テーブルを作成したいと考えています。
しかし、自然キーの使用方法を理解していないため、方法がわかりません (私たちが読んだ文献によると、これが問題の解決策のようです)。
自然キーは、ディメンション データを計算するすべての ETL ジョブで必要とされる userId になると思います。
しかし、多くの困難があります:
- ETL ジョブ load() では、重複を削除するために INSERT IGNORE INTO を使用して一括挿入を行います => 生成された代理キーはわかりません
- メタ データ (dimension_name、surrogate_key、natural_key のセットを含む) を作成すると、重複排除のために機能しません。
問題は、重複排除戦略にあるようです。より良いアプローチはありますか?
違いがある場合は、MySQL 5.1 を使用しています。