データウェアハウスと何が違うの?
具体的な利用シーンは?
こんな疑問に答えていきます。
- BIツールを利用していて画面描画速度に課題を感じている人
- DWHを利用していて運用に限界を感じている人
目次
データマート(DM)とは?
分析システムやBIツールに存在する1画面、もしくは1グラフ、1集計表のために特化したデータベース(またはテーブル)のことをデータマートと呼びます。
通常、データベース上には最適化したテーブルしか作成しません。ユーザが画面にアクセスするたびにクエリを発行して該当するデータを抽出するのが慣例となります。
しかし、分析する場合はその都度クエリを発行していると非常に時間がかかったり、最悪の場合サーバーが停止する場合もあります。
これは大量のデータが原因であったり、複雑な検索、集計、結合が原因であったりします。
その場合は必要最低限のデータに絞り、検索、集計、結合が済んだ状態のデータのみ格納するテーブルを用意します。
BIツールなどの分析システムで手軽にグラフを作っていると、いろんなものを組み合わせて分析したくなります。組み合わせが複雑になると、処理が重くなるため、重くならない専用のデータベースを用意することになります。それがデータマートです。
参考
データベースソフト自体をデータマートの役割として運用することもあれば、データベースソフト内の特定のテーブルをデータマートとして設計することもあります。
DWHとデータマートの違い
DWHとデータマートの違いは専門性です。
DWHでも分析するために高速処理が可能ではありますが、DWHは何かと組み合わせることが苦手です。
DWHでは一番細かい粒度の明細情報を保持するのに対して、データマートでは特定の粒度までのサマリで保持したり、特定の期間に絞って保持したりします。
参考
データウェアハウス(DWH)を構築せず、データマートのみで運用する場合もある。
データマートが必要になる場面
1.計算処理が複雑な場合
明細データと様々な種類の平均や標準偏差などの計算結果を横並びにして見比べたい場合や、データマートが必要になります。
2.明細データが多すぎる場合
単純にデータが多すぎる場合にもデータマートの構築を検討すべきです。グラフや集計表に必要のない部門のデータや見ることのない過去のデータなどを取り除いた状態のデータマートを構築します。
3.様々な種類のデータを組み合わせて分析する場合
手元のデータと組み合わせたり、売上データと物流データを組み合わせたり、全体の平均や標準偏差を算出して明細情報と組み合わせたりなど、種類の違ったデータを組み合わせる場合は膨大な処理時間がかかってしまうため、こういった場合もデータマートの構築を検討します。
データマートの作成イメージ
もう少し具体的にデータマートの内容を説明します。
BIツールや分析をしていると、毎回同じ検索方法やクエリを発行することが頻繁にあります。その場合、デフォルト検索の項目を用意したり、データベースのビューを作成したりします。
こうして作成したデフォルト検索がきいているBIの画面や、ビューが重いことはありませんか?
こうした時にデータマートを用意します。
具体的には、データベース上にデフォルト検索によって絞り込まれた状態のテーブルを作成します。または、ビューの結果をテーブルにそのまま移行します。
このテーブルのことをデータマートと呼びます。
検索やビューによる処理はデータベースに非常に負荷がかかるため、検索が終わった状態をテーブルとして用意することで、その処理時間をなくしてしまうことがデータマートの目的です。
参考
データウェアハウス(DWH)に比べてデータマートの設計はとても難しいです。
データ分析基盤の基本的な作り方を熟知した上で、特定のチャートに合わせたデータの持たせ方を考えなければならないためです。チャートによって最適なデータの持ち方は変化しますし、製品によっても変化します。
- データベースの知識
- チャートの特徴
- 製品知識
最適なデータマートを作成するには上記の知識が必要不可欠です。
データマートの活用事例
DWHとデータマートのサーバ自体を分ける
サーバを分けることにより、加工処理と参照処理がが同時に発生するようなことを減らすことができます。通常は夜間にDWHのデータを構築するバッチを運用しますが、夜間中に間に合わない程の処理料である場合は、データマート用のサーバを構築することにより、日中帯も加工処理を行わせることができます。
また、障害時にも分析システムを止めることなく稼働させることが可能です。
データマートのみの分析システム構築
データ量が少ないなど、これから分析基盤を構築する場合は、データマートの構築からスモールスタートする場合もあります。しかし、近いうちにデータの量が多くなりDWHを構築することが多いです。
データマートまとめ
最後にここまで記載した情報を振り返ります。
データマートとは特定の画面やグラフ、集計表のために特化されたデータベースである
以下3つの場合にはデータマートの導入を検討する
- 計算処理が複雑な場合
- 明細データが多すぎる場合
- 様々なデータを組み合わせて分析する場合
ちなみに、データマート(DM)=Data mart(※直訳でデータの市場)という意味です。特定のデータが見れる市場のようなイメージからこの名前がついたそうです。
最後までご覧いただきありがとうございました!