ふと『なぜシステムでDBを持っているのに、わざわざDWHを持つ必要があるの?』と疑問に思ったので、 データウェアハウス(DWH)の必要性について調べてみました。 まだ使ったことがない人間の調査ですので、お気づきの点がございましたらコメント等いただけると助かります。
疑問
データベース
とデータウェアハウス
はどちらもデータベースですが、あえてデータウェアハウス
を特別な呼び方で区別するのはなぜでしょうか?
データウェアハウスとは?
データウェアハウス
とは履歴データの検索、分析、保管に特化した性能(機能)を備えたデータベースだと解釈しました。
データベースとデータウェアハウスの比較
一般的なデータベースは、データベースが接続されているシステムの目的を迅速に達成するために機能します。例えば会員情報を管理するデータベースであれば、 会員登録(氏名、生年月日、連絡先)、会員情報の変更(住所変更等)、会員情報の取得(照会等)、会員情報の削除(退会)等の処理を迅速に実施することが必要になります。通常はデータベースに対し複数人が不規則なタイミングでアクセスすることが想定されますので、アクセス数が急激に増加したときなどにユーザーが不快な待ち状態にならないように準備しておきます。
これをデータベースの観点で考えるとトラフィックの最適化を目的に選定、設計されるのが理想になります。
一方、データウェアハウス
は、システムを管理する人が意思決定のための情報を収集する際に機能します。例えば会員数の変化、年齢分布や男女比の変化、アクセスする曜日や時間帯の傾向、購買履歴など、管理者が取るべき行動を選択する際のヒントとして様々な情報が収集されます。そういった経営判断のための情報は一つのデータベース上にまとまっているわけではなく、複数のデータベースにそれぞれの情報に適したフォーマットで保存されています。意思決定者はそれらの分散した情報を直接的に参照するだけでなく、複数の情報に対し総合的・横断的に分析された結果を用いて意思決定を実施します。使われる回数はユーザー向けシステム程多くない可能性がありますが、ビジネス判断に必要となる情報を生成するために、情報の検索、分析を迅速に実施する必要があります。
これをデータベースの観点で考えると時系列データの検索・分析を目的に選定、設計されるのが理想になります。
また、一般的なシステムのデータベースは最新情報の管理が中心であるのに対し、データウェアハウスは主に時間変化を分析するための履歴(時系列)情報であるため、データウェアハウスに蓄積されるデータの量はデータベース上に記録される情報量よりも膨大になります。
データ分析時の注意点
- データ分析時のデータアクセスが、ユーザーシステム側のパフォーマンスに影響を与えてはいけない。
比較表
個別システムのDB | DWH | |
---|---|---|
要求機能 | トランザクションをコントロールする | 時系列データの検索・分析 |
重視する点 | システムの可用性等 不規則に発生するDBへの入出力に対応する |
検索・分析に対する処理速度 |
選定基準 | 選定基準が状況に応じ変化する - データの内容 - データサイズ - アクセス頻度 |
選定基準が変化しにくい - 検索処理速度 - 分析処理速度 - 価格 |
まとめ
それぞれの目的で収集された複数のデータを、総合的・横断的に分析しビジネス判断に活用することが求められている状況において、様々なデータを分析に適した形に変換・保存し実際に分析を実施する際に容易に取り出せるような環境としてデータウェアハウスは機能する。