おわりにはじめにこんにちは。前回は「新しくログを作成してみる」という話でした。今回は「DWH(データ・ウェア・ハウス)を検討してみる」という話です。例として大規模なECサイトを運営していると仮定します。前回と違って「大規模な」という文言がついています。DWHは大規模なデータでないとその実力を発揮できないからです。DWHを導入するべきか否かも含めて論じていければと思います。DWH(データ・ウェア・ハウス)とはDWHはデータを蓄積する、利用するためのシステムです。データを蓄積するということでは一般的なデータベースと同じように思われる方も多いでしょう。DWHは大量のデータを蓄積すること、それを集計することに特化しています。一般的なデータベースではデータに対して更新や削除などの処理が頻繁に走ることが考慮されています。データはひたすら蓄積されていくものとしてみなされています。データ数が数億、数十億というオーダーになっても、検索に対してデータを素早く必ず返すように設計されています。これがDWHの最大のメリットになります。DWHには今まで蓄積してきたログをまとめてインポートする方法もセットになっています。前回、前々回で蓄積してきたログは無駄になることはありません。それらを別のログと結合することにより新たな価値を発見することもできます。fluentdなどから直接ログをインポートすることも可能なので、リアルタイムでログを集計することも可能です。DWHのコストについていざDWHの導入を検討しようとしても漠然として何を考慮にいれればよいか難しいことが多いです。コストがどれくらいかかるのかを把握してみましょう。どのようなDWHを利用するにしろ非常にコストがかかります。そのコストはどれくらいになるのか不明なケースが多いです。年間に数百万円以上のコストがDWHのシステムにかかると感じています。そのシステムの管理には人的なリソースも当然必要になります。DWHはあるだけでは意味がなく、ちゃんと利用しなければなりません。DWHを利用したKPIの管理システムを作るとなるとかなりの工数がかかります。最近ではDWHと連動したBIツールを利用することも可能ですが、それでもBIツールの利用料金を払う必要があります。蓄積してきたログから日々のKPIを追うことができる環境はそれ以上の価値を生む可能性があるのです。1種類のログのデータが1億件を超えることを想定されるあたりが転換点の一つであると思います。1億件と聞くと大量と思われるかもしれません。1000日で1億件達成すると仮定すると1日あたり10万件の蓄積となります。1ユーザが1日に10件の同種のアクションログを残すと仮定すると1日あたり1万ユーザで達成してしまいます。ユーザ数を把握することは非常に大切になります。1億件が目安となる理由については、一般的なデータベースとDWHの差を実感できるためです。DWHは負荷なく素早く対応することが可能です。DWHを導入しない場合は?コスト、サービスの規模の観点からDWHの導入を見送ることも選択の1つであると思います。一般的なデータベースをログ集計に転用してしまうのも手です。インデックスやシャーディングなどをしっかり対応すればある程度の件数のデータならばさばくことも可能です。DWHとは違うため、色々注意することも多いです。以前、私も一般的なデータベースにログを保存していた経験があり、その際には以下の様な問題が置きました。システムの運用を続けていくにつれて件数が肥大化してしまいました。1つのテーブルに数億件を超えるログが貯められてしまい、データにアクセスすることができなくなってしました。ログの数はユーザ数や稼働日数によるので事前にしっかりと見積もる必要があります。あまりにも負荷の高い集計を行ってしまったがためにシステムにも負荷をかけてしまうということがありました。一般的なデータベースは直接つながっているケースが大半のためです。一般的なデータベースをDWH代わりに利用することもできますが、やはり色々注意することが多い印象です。おわりに3回にわたっての連載でしたが、データ分析を社内で始めるためのお手伝いになれば幸いです。応用的な分析についてはまた後ほど紹介できるかと思います。STUDIO株式会社では『DWH』を使った分析基盤の構築も行っています。興味を持たれた場合はご連絡お願いいたします。