はじめに
データマートとは、特定の分析や、BIレポートの作成に最適化されたデータを提供する仕組みのことを言います。 昨今のデータ分析の現場では、データマートが頻繁に使用されるようになり、欠かせないものとなっています。
データマートの設計において、特に陥りやすい課題が、 通常のデータベースのテーブル設計手法と混同してしまう点です。 そもそも、両者の役割は異なり、これらを混同することにより、システムへの影響も懸念されます。
1.データマートとデータベースの役割の違い
データマートの役割
前述の通り、データマートとは、特定の分析や、BIレポートの作成に最適化されたデータを提供する仕組みで、 その役割には以下のようなものがあります。
役割 | 説明 |
---|---|
パフォーマンスの最適化 | BIツールなどに必要なデータを最適な形で提供 |
問題解決や意思決定のサポート | 迅速な意思決定のためのもの。特定の目的や部署に特化した集計やKPIのデータを提供 |
効率的なデータ管理 | 必要なデータだけに焦点を絞り、効率的にデータを管理 |
データベースの役割
一方で、一般的なデータベースの役割は異なります。 データベースはそれを使用するシステムのデータの整合性を保ちつつ効率的に管理、保管することにあります。 そのため、冗長性の排除と一貫性を保持した正規化、CRUD操作の正確性を担保したトランザクション管理などが求められます。
2.データマートとデータベースの設計手法の違い
データマートの設計手法
データマートの設計は、エンドユーザが扱いやすいデータの提供を目的としています。
また、クエリのパフォーマンスを優先事項として、データの非正規化設計を行います。
データベースの設計手法
一般的なデータベースにおけるテーブル設計は、ご存知の通り、
データの一貫性と整合を保持することを目的としています。
そのために、段階的な正規化を行い、テーブルを分割する設計を行います。
3.混同すると発生しうる問題
混同すると発生しうる問題の1つは、パフォーマンスの低下です。 データマートを正規化して設計してしまうことで、 クエリが複雑になり、パフォーマンスの低下につながる可能性があります。
また、データマートの設計で正規化を意識してしまうことにより、 設計が複雑になり、設計作業における生産性の低下にもつながります。
最後に
以上の通り、データマートとデータベースのテーブル設計との混同はシステムのパフォーマンスや、開発の生産性にも大きく影響します。
データマートの役割、目的をしっかりと理解し、それに応じた設計を行っていく必要があります。