データマートとは、データ分析基盤の中において特定の分析ごとに整理されたデータのまとまりのことを指します。
データマートを整備することにより、分析や基盤の運用が容易になります。また、ユーザーにとっては目的に必要十分なデータに容易にアクセスできるため、データ集計に時間をかけずに分析に取り組むことができます。
本記事ではデータマートについて定義や構築方法を解説していきます。
目次
1. データマートは特定の分析に”必要十分”なデータを提供する
一般的にデータマートはデータウェアハウスからデータを抽出して作成されます。
1.1 データマートの定義
データマートは特定の分析に必要十分なデータを提供します。データウェアハウスでもデータはエンティティごとに整理されています。しかし、その名の通り倉庫のようにたくさんのデータが保管されており、データベースやデータウェアハウスに精通していないビジネス部門のメンバーには、自分が必要とするデータがどこにあるかわかりません。また、自分が必要とするデータを探すために、他のデータを荒らしてしまうといった懸念もあります。データマート層を構築することによってそういった懸念を晴らすことができます。
データ”マート”という名前の通り、我々が肉を買いに肉屋さんに、野菜を買いに八百屋に行くように、分析に応じて必要十分なデータを提供します。これにより、機密情報を不用意に閲覧・参照されることを防ぐことができます。また、不要なデータによって分析のパフォーマンスが低下する懸念もなくなります。
1.2 ビューやマテリアライズドビューで作成されることも多い
データマートはGoogle BigQueryやSnowflakeなどのデータウェアハウス製品の中で作成されることがほとんどですが、テーブルではなくビュー※1やマテリアライズドビュー※2で作成されることもあります。ビューでデータマートを構築することにより、ストレージの費用がかからないことに加え、データの更新の設定が容易になるなどのメリットがあります。しかし、複数のビューを入れ子構造にすると、自在にビューの削除や定義の更新ができなくなるのでユースケースに従ってビューの利用可否は判断しましょう。
※1 ビュー:1つまたは複数のテーブルから必要なデータを抽出した仮想テーブルのことであり、実態を持たない参照するたびにSQLクエリが発行される
※2 マテリアライズドビュー:実態を持ちながら、ビューと同じ機能を持つ。
2. データマート構築のメリット
データ分析基盤においてデータマートを整備することによるメリットを解説します。
2.1 ユーザーが容易に分析に取り組むことができる
データマートを整備することでユーザーが容易に分析に取り組むことができます。データウェアハウスではデータはスタースキーマやスノーフレークスキーマといった形に正規化されて保存されることが多く、運用側にとって管理しやすい形式となっています。
しかし、テーブルが正規化されている分、分析を行うにあたり、データを集めてくる手間がかかります。データマートとして事前に必要データを集めて非正規化し、ユーザーに提供することでユーザーはデータを集める工数をかけることなく分析に集中して取り組むことができます。
2.2 分析によるDWHへの影響を制限できる
データマートを整備することによる2つ目のメリットは個々の分析によるデータウェアハウステーブルへの影響を制限できることです。
もし、特定の分析で直接データウェアハウステーブルを参照し、その分析の都合の良いようにテーブルを集計してしまえば、他のテーブルはその集計の影響を受けてしまいます。
データマートテーブルは特定の分析に向けて作成されるため、データマートテーブルの加工・集計を独自に行ってもデータウェアハウステーブルには影響はありません。
2.3 分析時の処理を軽くすることができる
3つ目は分析時の処理を軽くすることができることです。データマートに事前に分析に必要な粒度にデータを集計しておくことで、BIツールで可視化する際のデータ量や処理を必要最小限にすることができ、応答が早くなります。
3. データマートの構築3STEP
本章ではデータマートを構築する流れを解説していきます。データレイクやデータウェアハウスとは異なり、データ分析のユーザーニーズから逆算して構築することがポイントです。
STEP1 ユースケースの特定
データマートを構築する最初のステップとして、ユーザーのデータ分析ニーズをヒアリングし、ユースケースを整備しましょう。ユースケースとはビジネスプロセスの中においてデータ分析・可視化が”いつ・どこで・誰に・何のために使用されるか”のことです。
ユースケースを定義することで、分析に必要なデータが明確になることに加え、ビジネス価値を創出する分析を行うことができます。ビジネス部門のメンバーはデータ活用のニーズや課題を言語化・顕在化できるとは限りません。データ活用に限らず課題をヒアリングし、データサイエンティストがデータの課題に落とし込むことで潜在課題まで洗い出すことができるでしょう。
STEP2 ユースケースに基づいた必要データ定義
データ分析のユースケースに基づいて必要なデータを整備しましょう。テーブル定義書を作成し、データウェアハウスからそれらを抽出するETLプロセスや更新頻度の定義まで行いましょう。テーブル定義書では下記の項目を定義しておけば、スムーズに実装に移れるでしょう。
- テーブル定義項目
- カラム名
- データ型
- データソーステーブル
- データソーステーブルでのカラム名
- 単位
- サンプルデータ
STEP3 定義に基づいたテーブル・ビューの実装
必要なデータを定義できた後は、実際に構築しましょう。
ビューで作成する場合はソーステーブルが更新され次第自動的にデータマートビューも更新されるのでビュー定義を作成しましょう。テーブルで作成する場合はテーブルを作成後、データを更新するためのETLロジックを実装しましょう。
4. まとめ
データマートについての概要や整備の流れを解説してきました。データマートはデータ分析基盤において基盤の管理者とユーザーをつなぐ役割を果たします。データマートを整備して多くの社員が自発的にデータ分析を行う環境を創出しましょう。
データーマートの構築においてご不明点がある場合は、ぜひデータビズラボへお問い合わせください。
コメント