データ分析とインテリジェンス

[データ整備/整理] データマートを作るかどうかの判断材料

なくてもいいなら作らない

データマートは環境さえ整っていれば気軽に作ることはできる。それゆえにすぐに大量に増えてしまう。

作ったら終わりではなく管理には人手がいる。管理しないと本当に必要なテーブルが見つけづらくなるし、作ってしばらく経ってしまうと定義を調べるのも消していいのかどうか確認するのも手間がかかる。しかもその手間が生み出すのはせいぜいストレスでしかない。

データマートを作ることは手段の1つであり、作らないで済むならそれでもいいはずだ。そこでデータマートを作った方がいい/作らない方がいいの判断をするのに何を材料にしてきたか、という話を書いてみる。

データマートを作るかどうかの判断材料

いままでデータマートを作るかどうか決めるのに何を考えていたかを思い起こしてみると以下があった。

  • 定期的な自動更新が必要か
  • クエリを渡して解決するか
  • ダッシュボードが必要か
  • ずっと残す必要があるか
  • 必要になったらすぐ作れるか

定期的な自動更新が必要か

定期的に作成するレポートやKPI監視用のデータは自動更新しておく方がいいのでデータマートを作る。

ただし、簡単に作れるからとレポートをたくさん作ってもどうせ全部は見ない。増やすと同時に減らすことも考える。

クエリを渡して解決するか

最新版を定期的でないがたまに見たい、ならクエリを渡せば済むかもしれないので確認する。

パラメータを変更して実行するだけのクエリを作る必要はあるが、使われなくなればそれで終わりなので管理も不要。オリジナルを手元に残しておけば動かなくなっても復旧はしやすい。

勝手に条件を変えられたりしたら気づけないが、このあたりはルール化することで回避する。

ダッシュボードが必要か

ダッシュボードを作るならばデータマートは必須だ。その理由はBIではデータを加工しないでデータマートを作るに書いた。

ただし「こういうダッシュボードを作って欲しい」と詳しく聞いたら「ある期間のデータを日別でグラフで見たいから」ということもある。その場合はCSVで書き出してそれをグラフで見られるようにすれば済む。

クエリの再現が必要か

時間が経つと内容が変わってしまうテーブルを使っていると、同じクエリでも後で実行すると結果が変わってしまう。

同じクエリで同じ結果を再現する必要があるならば、その時点のデータで必要な分だけをデータマートとして残しておくかを検討する。

例えば直近の購入状況でキャンペーンのリストを作成したとする。あとで効果検証を行うために同じクエリで同じリストを作れる必要がある。しかし、キャンセルが反映されると購入金額がずれる。そのような場合はその時点での購買履歴のうちクエリの実行に必要な分だけをデータマートとして残しておく。あるいはその時抽出したIDリストだけでもいい。

データマートでなくファイルストレージに置いたりcsvファイルにすることもある。どれにするかはデータ量やリストの受け渡しの必要性など状況次第。

必要になったらすぐ作れるか

必要だと思ったらクエリを実行すればすぐ作れるならその時に作ればいい。適度な期限(1日とかでいいと思う)で消えるようにしておけば使わないデータマートが溜まっていくこともない。

しかし、利用するテーブルが大きくクエリが複雑で作るのに時間がかかる場合はデータマートを作る。

データマートにこだわらない

データマートを作ることにはこだわらないという点で一貫している(つもりでいる)。最初からデータマートを作ろうとは考えない。やりたいことのためにどうするのがよいかを考えて、データマートがよさそうなら作る。

「そういえばどうやってたかなー」とふと思い立って一気に書いたので何か抜けているかもしれない。「この場合はどうする」をちゃんと理由も書いてまとめたらガイダンスとして使えそうな予感。

カテゴリー:データ整備