企業や組織が大規模なデータを効率的に利用・分析していく上で欠かせないのが、データマートです。
この記事ではデータマートの基本をおさらいした上で、データマートの実践的な作り方を5つのステップに分けてわかりやすく解説します。
データマートとは?まずは基本を整理
そもそも、データマートとは何でしょうか。
データマート(data mart)を直訳すると、「データの小売店」です。企業などの組織が持つデータの総体を扱うのがデータウェアハウス(data ware house、「データの倉庫」)であるのに対し、データウェアハウスの中から一部のデータだけを取り出したものがデータマートです。実際の現場では、データマートを統合してデータウェアハウスを構築するケースも多いようです。
すべてのデータはデータウェアハウスに格納されているので、データウェアハウスだけあれば良いと思われるかもしれませんが、特定の部門や目的に合ったデータだけを、それに対応した構造で格納したコンパクトなデータマートを作成することで、必要な情報に素早くアクセスすることができます。
データマートはレポーティングやデータ分析などを得意とし、即時に集計や分析を必要とする現場などへの業務システムに適用することで、効率化が期待できます。
データマート・データウェアハウス・データレイクの関係性
大量のデータを扱う組織では、データレイク・データウェアハウス・データマートの3層構造がデータシステム構成の基本になります。
データレイク(data lake、データの湖)では、外部などから収集してきたデータをそのままの形で構造化することなく格納します。データを未加工の状態で保持することで、バックアップとして機能させることができます。また、加工に関しては利用側のシステムで実施することにより、生データの利用に汎用性を持たせたり、未加工から加工へのデータの変遷を明確にすることができます。
データレイクのデータに必要な整理や関連付けを行い、取り扱いやすい形で格納したものがデータウェアハウスです。適切に設計されたデータウェアハウスがあれば、情報へのアクセスや分析は一通りできますが、取り扱うデータが巨大化・複雑化するため、より処理のしやすいデータマートに整理するのです。
データマートの作り方
データの直接活用のゲートウェイとなるデータマートは、実際にはどのように作ればいいのでしょうか。ここからは作成の工程を「設計」「構築」「移入」「アクセス」「管理」の5つのステップに分けて見ていきましょう。
1. 設計
データマートの構築に着手する前に、要求事項を正確に把握して全体の設計を行う必要があります。
まず、「どのような目的でどのように使用されるのか」というビジネス要件と、「業務の中でどのようにデータが収集されるか」という技術要件を洗い出します。
要件が確定したら、次にデータソースを選定します。安定的にデータを入手できなければ、データマートを実務で運用することは難しいので、慎重な選定が求められます。
取り扱うデータソースが確定したら、次はその中からデータマートで取り扱うサブセットを要件に合わせて選択します。
サブセットまで決定すれば、それを実装するためのデータマートの論理構造と物理構造を設計することができます。
2. 構築
データマート全体の設計が完了したら、それに基づいて実際のデータベースを構築していきます。これには、物理的なデータベースシステムの設置と、データベースの論理構造の作成の両方が含まれます。
この段階では、単にデータにアクセスできるようにするだけでなく、エンドユーザーが必要なデータに素早くかつ簡単にアクセスできるように配慮しなければなりません。
まず、物理データベースとストレージ構造を作成します。本質的には一般的なリレーショナルデータベースの構築と同じですが、データマートが実際に利用される環境に最適化された構成で構築します。セキュリティ対応や社内の他のシステムとの統合なども、この段階で組み入れましょう。
物理環境が構築できたら、要件として定義された構造を実現するスキーマ・オブジェクトを作成します。この時も、活用と運用が最適化される方法で作成していきます。
[RELATED_POSTS]3. 移入
データマートの基盤が構築できたら、いよいよそこへ実際のデータを移していきます。
まず、元となるデータソースから、取得すべきデータのマッピングを行います。マッピングにしたがって、データソースから生のデータを抽出しましょう。生データの状態ではノイズが多く、構造化もされていないので、クレンジングと所定のデータ形式への変換を行います。ここまでの作業は、データマート外で行います。
必要な形のデータが得られたら、そのデータをデータマートにロードします。この時に必要なメタデータを作成して格納することで、実際に分析・活用ができるデータベースになります。
4. アクセス
データの移入によって狭義のデータマートは完成しますが、そのデータマートのデータを実際に使用できる状態にする必要があります。
データマートはリレーショナルデータベースとして実装されていますが、エンドユーザーはそのままでは利用できないケースが多いので、SQLではなくビジネス用語でアクセスでき、分析やレポートを出力したり、表やグラフなどでビジュアル化したりできるようにするためのフロントエンドが必要になります。
このフロントエンドとデータベース(バックエンド)をつなぐための中間レイヤーを設定しましょう。こうして構築されたバックエンド・中間レイヤー・フロントエンドの全体を、高速かつ円滑に運用できるような施策が必要になります。
5. 管理
ここまでの工程で実際にエンドユーザーが活用できるデータマート環境が完成しましたが、本番環境ではそれを永続的に利用できるようにするための管理が欠かせません。
これには、データマートへの安全なアクセスを確保し、情報漏洩を防ぐセキュリティ施策や、データが増大していくことに伴うスケーラビリティの確保やデータマートの構成の見直し、変化・増大する要件に対応するシステムの最適化、システム障害発生時でも業務への影響を最小限に抑えるための冗長性・可用性の確保などが含まれます。
実際の業務の中で、パフォーマンスとセキュリティが常に最高の状態を保てるよう、継続的な点検と見直しを行っていきましょう。
データマートをGoogleCloudで構築する
組織が扱う膨大なデータを現場のエンドユーザーが効率的に活用していくためには、データマートが重要な役割を果たします。では、データマートを作成するためのシステム基盤は何がいいでしょうか。
弊社では、データマートを含むデータ分析基盤を Google Cloud 上に構築することをお勧めします。推奨する理由がBigQueryの存在です。BigQuery はデータウェアハウスに該当する Google Cloud のサービスでデータ分析に特化したアーキテクチャをしております。ビッグデータの分析にはBigQueryの利用が欠かせません。
Google Cloud ではBigQueryとシームレスに連携可能なデータ分析のサービスや機能が豊富にあります。これらのサービスはマネージドサービスとなっているので、ハードウェア部分の設計、構築の負担が軽減されます。セキュリティに関してもシステムのアクセスからテーブル単位、レコード単位の管理まで Google Cloud で実現することでき、安全で堅牢なシステムが構築できます。
また、日々機能がアップデートがされていくのも魅力の一つです。昨年リリースされたBigQueryのマテリアライズドビューもデータマートに利用できる有用な機能と言えるでしょう。
データ分析基盤は作って終わりではなく、変化するビジネス要件や進歩する技術やサービスに応じて、日々アップデートさせていくものだと思います。
まとめ
本記事では、データマートを作る際のポイントについてステップごとに紹介致しました。データ分析における、データマートの必要性と有用性についてご参考になりましたでしょうか。弊社では、GoogleCloudを活用してデータの収集及び加工から可視化までのデータ分析基盤の構築支援が可能です。ご検討の際は、是非ご相談ください。