データウェアハウスという言葉は、1990年代半ばにはバズワード(流行語)化していたが、現在ではメディアで語られる機会はめっきり減ってしまったように思える。しかし、これはデータウェアハウスというテクノロジの重要性が減少したことを意味するのではない。
少なくとも中規模以上の企業のIT基盤において必須とも言える構成要素になっているのだ。しかし、データウェアハウスについて必ずしも正しい理解がされていないことも多いようだ。ここでは、基本に立ち返り、データウェアハウスの定義と価値についておさらいしておこう。
データウェアハウスの定義
データウェアハウスとは何なのだろうか? 単に、情報系向けの大容量データベースをデータウェアハウスと呼んでしまうことがあるが、これは正しい理解とは言えない。また、ビジネス・インテリジェンス(BI)とデータウェアハウスが混同されることもある(両者の関係については後で触れる)。
データウェアハウスとは、以下の特性を有する情報系(意思決定支援)アプリケーション向けデータベースである。
(1)業務系(トランザクション処理)アプリケーションの処理履歴を生データとして保存する
(2)長期的な履歴データを保存する
(3)複数サブジェクト(たとえば、販売、在庫、人事、経理)のデータを保存する
ここで最も本質的な特性となるのは、(1)だ。多くの情報系アプリケーション向けデータベースでは、ディスクスペースの節約のためにデータをサマリーして保管するが、このようなデータベースはデータウェアハウスとは呼べない。トランザクション履歴を生データのままで保管することで、多様な情報分析のニーズに応えられるというメリットが生じる。
たとえば、スーパーマーケットの売上履歴データベースにおいて、売上データを商品別、顧客別にサマリーして保管していたとする。ここで、売り場のレイアウト変更を最適化するためにバスケット分析(どの商品とどの商品を同時に購買する顧客が多いかの分析)が必要になったとする。サマリ情報だけを保管するデータベースではこの新たな要件に対応できず、データベースの再設計/再構築が必要となる。
データウェアハウスでは、最初からすべてのトランザクション履歴をそのままで保管しているため、当初は明らかでなかった新しい分析のニーズが生じた場合でも、再設計/再構築なしに対応できる。
もちろん、生データの保管により必要なディスクスペースは多大なものとなる。たとえば、民間企業における最大のデータウェアハウスの事例として知られるWal-Martのデータウェアハウスの容量は数百テラバイトに達すると言われている。
これほどではなくても、数テラバイト級のデータウェアハウスの事例は数多い。ディスクのコストは低下しており、ディスク代を節約するあまり柔軟性を欠く情報システムを構築するよりは、生データ保管による柔軟性を優先した方が望ましいケースが増えているのである。
なお、大量の生データを保管し、いかなる分析の要件にも応えるという必要性からデータウェアハウスの設計では可能な限り正規化されたスキーマを使用することが重要だ。特定目的のデータベースであれば、非正規化されたスキーマを使用することで、特定のアクセスパターンにおける性能を向上する手法がよく使われるが、データウェアハウスではこのような手法は一般的ではない。
特定のアクセスパターンにおける性能を向上するということは、その代償として他のアクセスパターンにおける性能を犠牲にするということであり、データウェアハウスの本来の価値を損なう結果になるからだ。