0

したがって、データ ウェアハウスには次の 2 つのディメンションがあります。

dim_machine
-------------
machine_key
machine_name
machine_type


dim_tool
------------
tool_key
tool_name
machine_type

確認したいのは、両方のディメンションの machine_type フィールドに同じデータがあることです。2 つの間にスノーフレークする 3 番目のディメンションを作成する必要がありますか、それとも別の方法がありますか?

4

2 に答える 2

3

データ ウェアハウスは非​​正規化構造であるため、データが次元で繰り返されるのは正常なことです。整合性は、運用システムと ETL プロセスで提供する必要があります。以下のモデルのようなものがあるとします。

代替テキスト

ツールを配布するビジネス プロセスは、どのツールをどのマシンにインストールできるかを認識している必要があります。間違ったツールが何らかの理由でマシンにインストールされているとします。ツールとマシンのタイプが一致しないために ETL プロセスを中断するよりも、その事実に一致するようにデータをインポートし、ビジネス プロセスのバグを発見するレポートを実行する方が適切です。

たとえば、このようなクエリ (レポート) は不一致を発見し、非常に役立つことがわかります。

select
      'tool-machine mismatch' as alarm
    , full_date
    , machine_name
    , machine_type
    , tool_name
    , matching_machine_type
    , employee_full_name
from fact_installed_tools as f
join dim_machine          as m on m.machine_key  = f.machine_key
join dim_tool             as t on t.tool_key     = f.installed_tool_key
join dim_date             as d on d.date_key     = f.date_key
join dim_employee         as e on e.employee_key = f.employee_key
where machine_type != matching_machine_type ;
于 2010-10-11T16:37:05.360 に答える
2

どの問題を解決しようとしているのか正確にはわかりませんか?これは、ETL プロセスに単純に組み込むようなものに思えます。両方のディメンションについて、ソース データをマシンタイプの同じターゲット リストにマッピングします。マッピングされていない新しい値が表示された場合は、エラーを発生させます (または、デフォルトのプレースホルダー値を設定し、後でデータを確認します)。

完全に異なるオプションは、可能なすべての機械/ツールの組み合わせを保持する「ミニディメンション」(Kimball の用語) です。2 つのディメンションが密接に関連しており、検索で一緒に使用されることが多い場合は、2 つのディメンションを統合して単純化すると便利です。ただし、その場合でも、マシン タイプに適合するようにソース データをチェックおよびクリーニングすることになると思います。

于 2010-10-11T14:08:08.523 に答える