はじめに
スター およびスノーフレーク スキーマ データマートやデータウェアハウスアーキテクチャで一般的に見られる論理ストレージ設計です。一般的なデータベースタイプはER(Entity-Relationship)ダイアグラムを使用しますが、ウェアハウスの論理構造は次元モデルを使用してストレージシステムを概念化します。
スタースキーマとスノーフレークスキーマの違い、特徴、欠陥を確認するために読んでください。
スタースキーマとスノーフレークスキーマ:主な違い
スターとスノーフレークスキーマの次元モデルの2つの主要な要素は次のとおりです。
1.ファクトテーブル 。 キューブとも呼ばれる、最も大量のデータを含むテーブル 。
2.ディメンションテーブル 。派生データ構造は、ルックアップテーブルと呼ばれることが多いアドホッククエリまたはディメンションへの回答を提供します 。
選択したディメンションを接続する ファクトテーブル スキーマを形成します。スタースキーマとスノーフレークスキーマはどちらも、データの次元を利用してストレージシステムをモデル化します。
2つのスキーマの主な違いは次のとおりです。
スタースキーマ | スノーフレークスキーマ | |
---|---|---|
要素 | ファクトテーブルディメンションテーブル | ファクトテーブルディメンションテーブルサブディメンションテーブル |
構造 | 星型 | スノーフレーク型 |
寸法 | ディメンションごとに1つのテーブル | ディメンションごとに複数のテーブル |
モデルの方向 | トップダウン | ボトムアップ |
ストレージスペース | より多くのストレージを使用します | 使用するスペースが少ない |
正規化 | 非正規化ディメンションテーブル | 正規化されたディメンションテーブル |
クエリのパフォーマンス | 外部キーが少ないため、必要なJOINが少なくて済みます | 外部キーが多いため、低速でより多くのJOINが必要です |
クエリの複雑さ | シンプルでわかりやすい | 複雑で理解が難しい |
データの冗長性 | 高 | 低 |
ユースケース | データマートで一般的な複数行のディメンションテーブル | データウェアハウスで見つかった複数の行を持つディメンションテーブル |
スノーフレークスキーマは複雑でパフォーマンスが低いため、可能な限りスタースキーマが推奨されるオプションです。スノーフレークスキーマの問題を回避する一般的な方法の1つは、専用ストレージをスタースキーマを使用して複数の小さなエンティティに分解することです。
スタースキーマとは何ですか?
スタースキーマは、データマートおよびより単純なデータウェアハウスを開発するための論理構造です。単純なモデルは、中央のファクトテーブルに接続されたディメンションテーブルで構成されています。
ファクトテーブルは通常、次のもので構成されます。
- 値やカウントなどの定量化可能な数値データ。
- 外部キーによる寸法への参照。
ルックアップテーブルは、ファクトテーブルに直接関連する説明情報を表します。
たとえば、eコマースビジネスの売上をモデル化するために、購入のファクトテーブルに購入の合計価格が含まれている場合があります。一方、ディメンションテーブルには、アイテム、顧客データ、購入の時間または場所に関する説明情報が含まれています。
この例の購入を分析するためのスタースキーマには、4つの次元があります。ファクトテーブルは、外部キーと主キーの概念を介してディメンションテーブルに接続します。したがって、数値データとは別に、ファクトテーブルはテーブル間の関係を定義するための外部キーで構成されます。
スタースキーマの特徴
スタースキーマの主な特徴は次のとおりです。
- 簡素化された高速クエリ 。非正規化によるJOIN操作の数が減ると、情報をより簡単に利用できるようになります。
- 単純な関係。 スキーマは、1対1または1対多の関係でうまく機能します。
- 特異な次元 。 1つの表で各ディメンションについて説明します。
- OLAPフレンドリー 。 OLAPシステムは、スタースキーマを広く使用してデータキューブを設計します。
スタースキーマの欠点
スタースキーマを使用することの欠点は次のとおりです。
- 冗長性 。ディメンションテーブルは1次元であり、データの冗長性があります。
- 整合性が低い 。非正規化のため、情報の更新は複雑な作業です。
- 限定クエリ 。一連の質問は限られており、分析力も絞り込まれます。
スノーフレークスキーマとは何ですか?
スノーフレークスキーマは、大規模なデータウェアハウスで使用される分岐論理構造を持っています。中心から端まで、エンティティ情報は一般的なものからより具体的なものへと変化します。
ディメンションモデルの一般的な要素とは別に、スノーフレークスキーマはディメンションテーブルをさらにサブディメンションに分解します。
前の例のeコマース販売分析モデルは、さらに小さなカテゴリと関心のあるサブカテゴリに分岐します(「スノーフレーク」)。
4つの次元はサブ次元に分解されます。ルックアップテーブルは、接続された一連のオブジェクトを介してさらに正規化されます。
スノーフレークスキーマの特徴
スノーフレークスキーマの主な機能は次のとおりです。
- 小さなストレージ 。スノーフレークスキーマは、それほど多くのストレージスペースを必要としません。
- 高粒度 。テーブルをサブディメンションに分割すると、さまざまな関心のある深さでの分析が可能になります。新しいサブディメンションの追加も簡単なプロセスです。
- 完全性 。正規化により、スキーマのデータ整合性は高くなり、冗長性は低くなります。
スノーフレークスキーマの欠点
スノーフレークスキーマの弱点は次のとおりです。
- 複雑さ 。データベースモデルは複雑であり、実行されるクエリも複雑です。複数の多次元テーブルを使用すると、全体的な設計が複雑になります。
- 処理が遅い 。多くのルックアップテーブルでは複数のJOIN操作が必要であるため、情報の取得が遅くなります。
- 維持するのが難しい 。高レベルの粒度により、スキーマの管理と保守が困難になります。