プログラマ38の日記

主にプログラムメモです。

DWH: データモデリング(7.先週との比較値、先月との比較値、前年との比較値などは、BIツールの機能を利用する。(機能がないならデータマートを作ろう))

この記事は、前回書いたデータモデリングの9つのことの7つ目です。

 

crmprogrammer38.hatenablog.com

 

ハイエンドのBIツールは、複数のファクトの検索結果をBIツール側で結合する機能を持っています。

その機能を利用すると、データマートをたくさん用意する必要がなくなります。

 

ただし、ファクトの粒度が異なっている場合、値がどう表示されるかはBIツールの特性によるので注意が必要です。

(例えば、月別のファクトと、日別のファクトをBIツールで結合する場合、月別のファクトの値を、日別で見ると月別の値が日別に展開されてしまったり、値が表示できなかったりします)

 

ファクト毎のデータの粒度については、BIツールを使う側に理解を深めてもらうことも必要となります。

例えば、次のような3つのファクトデータを企業が持っているとします。

f:id:crmprogrammer38:20170302133200p:plainf:id:crmprogrammer38:20170302133401p:plainf:id:crmprogrammer38:20170302133803p:plain

・気温ファクトは日別・地域別に気温を持っています。

・売上ファクトは、日別・商品別・店舗別・地域別に売上金額を持っています。

・売上予算ファクトは、年月別・店舗別・地域別に売上予算額を持っています。

※地域は店舗の属性としてデータを持つ場合もありますが、あえてファクトに持たせています。

 データを見る人は、売上ファクトと売上予算ファクトを対比させて数値を見るには、年月別・店舗別・地域別でデータを見ることを理解しておく必要がありますが、業務を把握していれば当たり前のように理解してもらえると思います。

 気温ファクトと売上ファクトでデータを見る場合は、気温はあくまで参考とする数値なので、売上ファクトの粒度でデータを見つつ、気温と対比させるように使えると思います。(例年よりも寒いから、この商品が売れている、売れていないというデータの見方も可能になります)

 そして、これらのデータを前年、前々年と比較しながら営業活動に生かしていくことになります。

 

上記の、複数のファクトを定義できるBIツールではデータモデルは以下のようになります。

f:id:crmprogrammer38:20170302140803p:plain

1つのディメンションから複数のファクトにリレーションを張ることで、そのディメンションの粒度でそろえてBIツール側で結合してくれます。

あとはBIツールの利用者がディメンションから分析軸、ファクトから数値を選ぶことで自由にデータを見ることができるようになります。

 もし仮に、上記のデータモデルを満たす気温・売上・売上予算データマートを作ろうとすると、売上予算ファクトをさらに、日別・商品別に按分したり、気温ファクトは、商品別・店舗別に同じ値で展開したりすることが考えられます。が、難しさがあります。(もちろん必要ならデータマートを作成します。ただし、データを作る処理が必要なので、費用と時間がかかります。そして、そのデータマートにさらに別のファクトの数値を追加しようとするととても難しくなります)