私たちの組織は現在、新しいデータウェアハウスを構築中です。実際には、ETL処理など、DWコミュニティから借用したいくつかの手法を使用して、データの適合、「キンバル」スタイルの非正規化ディメンションなどを使用できます。全体として、データウェアハウジングは、組織にとってまだかなり新しいものですが、私たちが進むにつれて、概念を学んでいます。
問題:データのソースが複数あり、事実のソースが競合することがよくあります。たとえば、マスターパーソンインデックスがあります。このインデックスでは、ETL中にスコアベースのマッチングアルゴリズムを使用して、インバウンドの人を既存の人とマッチングします。これにより、インバウンドレコードが完全に一致しなくても、他のものに基づいてスコアを付けることができます。郵便番号の半径のように。
質問は次のとおりです。2つ以上のソースからのファクトの複数のバージョンを処理するための標準的な方法は何ですか?
データウェアハウスの主なアイデアの1つは、私たちが行っている事実の実行履歴を保持することであることを理解しています。あるインバウンドソースによってレコードが維持されている場合、それはすべて問題なくダンディです。私たちはその事実の履歴を長期にわたって保持します。この問題は、おそらく毎日更新される2つの異なるソースに2つの異なる事実がある場合に発生します。たとえば、ソースAは名前がメアリースミスであると言い、ソースBは名前がメアリージェーンであると言ってこの値を毎日変更します。マッチングアルゴリズムに基づいて、同じ人物であると確信していますが、履歴スタイルテーブルにより、各データソースから「変更」として名前を読み取っているため、基本的に毎日両方の名前を行き来し続けます。
表の例:
first_name last_name source last_updated
Mary Smith A 5/2/12 1:00am
Mary Jane B 5/2/12 2:00am
Mary Smith A 5/3/12 1:00am
Mary Jane B 5/3/12 2:00am
Mary Smith A 5/4/12 1:00am
Mary Jane B 5/4/12 2:00am
...