2010年9月13日月曜日

インモン、キンボール、データボルトどれにするか、それが問題だ。いや、いや問題ではありません

データウェアハウスの設計において、現在3つのモデルが存在します。
その3つとは下記になります。

1.インモンモデル
データウェアハウスの父といわれるビル・インモンに提唱されている方法論です。
これはいわゆるエンタープライズデータウェアハウスの考え方で、
会社で1つの大きな第3正規形のデータベースを構築し、部門別や必要に応じて
そこからデータマート(スタースキーマ)を構築して分析を行う方法です。
エンドユーザはデータマートにアクセスするのみです。

2.キンボールモデル
スタースキーマを一躍有名にしたラルフ・キンボールの方法論です。
インモンモデルと違うところはキンボールはデータウェアハウスをスタースキーマの
寄せ集めと考える点です。
元データはあくまでデータステージに格納されているという認識です。
エンタープライズデータウェアハウスはデータステージにDBやファイルで保管されている
イメージです。

3.データボルトモデリング
これはダン・リンスデットによって提唱された方法論で、インモンモデルの拡張版と
考えて良さそうです。データボルトモデルはエンタープライズデータウェアハウスを
第3正規形ではなく、データボルトと呼ばれる設計方法で各オペレーションのデータをすべて
そのまま格納する方法です。
データがそのまま保管できるので、データの再加工やトレースに非常に優れています。

では、いったい上の3つの内どれが一番いいのでしょうか。
それは会社の規模やデータウェアハウスに対する成熟性などによることになります。
例えば、とにかくお金がなくてデータマートが欲しいとなったら、2のキンボールモデルで
ボトムアップ式にシステムを増やしていくのがいいでしょう。
また、データすべてをためる予算はないが会社のデータを分析管理した場合は1になると思います。

でも、私は再集計は上の3つのすべてを組み合わせて構築するのが理想だと考えています。

まず、全体のアーキテクチャはインモンモデルを採用して、エンタープライズデータウェアハウスを
構築して、分析は2のキンボールモデルを構築して分析します。
エンタープライズデータウェアハウスは会社のデータをそのまま保管するためにデータボルトモデルを
利用します。
こうすれば、もしキンボールモデルの設計をやりなおしたい場合は過去のデータがそのまま残っていますので
ETLを修正して再構築すれば、過去のデータから再度分析できます。

うーん、いつかこのシステムを構築したいです。

0 件のコメント:

コメントを投稿