スノーフレークスキーマ
Databricks 無料トライアル
スノーフレークスキーマとは
スノーフレークスキーマは、スタースキーマを拡張した多次元データモデルで、ディメンションテーブルがサブディメンションテーブルに細分化されたものです。スノーフレークスキーマは、データウェアハウスやデータマート、リレーショナルデータベースの多次元分析を使用した BI(ビジネスインテリジェンス)やレポーティングによく使用されています。
スノーフレークスキーマでは、エンジニアがそれぞれのディメンションテーブルを論理的なサブディメンションに細分化します。このため、データモデルは複雑になりますが、特定のデータ形式においてはアナリストが操作しやすくなります。
また、下図のとおり、実体関連図(ERD:Entity-Relationship Diagram)が雪の結晶のように見えることから、このデータウェアハウススキーマは、スノーフレークスキーマと呼ばれています。
スノーフレークスキーマとスタースキーマの比較
スタースキーマと同様に、スノーフレークスキーマの中央にもファクトテーブルがあり、外部キーを介して複数のディメンションテーブルに接続されています。しかし、スタースキーマと異なり、スノーフレークスキーマはより正規化が進んでいます。
スノーフレークスキーマは、高い正規化基準に厳密に準拠しており、ストレージ効率性は高いのですが、非正規化データモデルと比べるとクエリ時のパフォーマンスは劣ります。一方で、スタースキーマのような非正規化データモデルでは、データの冗長性(データの重複)が高く、データの重複を許容する代わりにクエリのパフォーマンスを高速化することができます。
スノーフレークスキーマのメリット
- 高速なデータ検索
- データ品質の確保
- データウェアハウスのためのシンプルで一般的なデータモデル
スノーフレークスキーマのデメリット
- 初期設定時に要する膨大な工数
- 柔軟性に欠けるデータモデル
- 高いメンテナンスコスト