物理設計の考慮事項

ディメンション・モデルを検証したら、物理データベースを設計します。 ディメンション・モデル内のデータの集約、集約ナビゲーション、索引付け、およびパーティション化の処理方法について、戦略を立てます。
物理データベースを設計する際には、以下のメタデータを収集します。
ディメンション・モデルの物理設計を作成する場合、以下のステップを実行します。
  1. 各ファクト表の集約を設計する
  2. パフォーマンス向上のために索引を作成する
  3. モデル内の表をパーティション化する

集約を設計する

分かりやすく言うと、集約とは、詳細な基本レベルのファクト表レコードから、要約データを計算するプロセスのことです。 集約は、ディメンション・データマートでの照会処理速度を上げるための強力なツールです。 集約は主として、階層の一部を成すディメンションの属性を使用して実行されます。

階層に属する各属性は、階層の他の属性に親または子として関連付けられています。 この親子関係により、さまざまなレベルの要約が可能になります。 さまざまなレベルの要約により、ビジネス・ユーザーはレポート内でドリルアップまたはドリルダウンすることができます。 データが集約されればされるほど、詳細な原子レベルのデータよりも短時間で検索できます。 ファクト表は、通常、集約データに比べて大容量のスペースを占有します。

最低レベルの集約 (つまり、最高レベルの詳細さ) を、ファクト表のグレーンと呼びます。 ディメンションの細分度は、データ・ストレージの設計とデータの検索方法に影響を与えます。

詳細な原子レベルのファクト表を集約すれば、照会のパフォーマンスが向上します。 ただし、集約には次のコストが伴います。
  • ストレージ
  • 集約表の処理するプロセスの構築および保守にかかるコスト

集約は、大容量の詳細なファクト表のサイズを削減するための代替策ではありません。 ファクト表内のデータを要約すると、ディメンションおよびメジャーの形式で存在した詳細情報が失われることがしばしばあります。 要約したファクト表の詳細情報がビジネスで必要になっても、そのデータは利用できません。 ユーザーは、集約ファクト表のデータを提供元である、ソースの OLTP システムでその詳細を探す必要があります。 ビジネスの回答を得るためにソースの OLTP システムを使用する必要がある場合は、ディメンション・モデルが必要かどうかを再評価してください。

年初来の集約メジャーを詳細メジャーと一緒に含めることで、集約データと詳細データを混合しないでください。 年初来のメジャーは加算項目であり、データ・タイプを混合すると、計算間違いが発生する可能性があります。

集約表を作成するには、以下のステップを実行します。
  1. 基本レベルの原子的ディメンション・モデルにあるすべてのディメンションとその階層を特定します。 これらのディメンションと階層は、基本レベルの原子的ディメンション・モデルから特定されます。
  2. それらの階層の属性の、ビジネスでのレポート作成時に使用する、考えうるすべての組み合わせを特定します。 階層のすべての属性を特定し、そのうちのどれとどれが一緒に使用される頻度が高いかを判断します。 このステップは、複数の属性を持つ複数の階層で構成されるディメンションが大量にある場合、特に重要です。
  3. 各属性の値の数を計算します。 各属性の値の数は、その属性を集約するかどうかの目安になります。 例えば、多数のメンバーを有する低レベルのメンバーを含める場合、その属性を省略して、値の数が少ない高レベルの属性を選択することができます。
  4. 最終的な属性候補を検証し、集約ディメンション・モデルを構築します。

索引を作成する

索引を作成することにより、照会のパフォーマンスを向上させることができます。 索引の詳細は、『索引』を参照してください。

表をパーティション化する

表をパーティション化する場合、行、列、またはその両方で表を分割します。 表を列で分割することを、垂直分割と言います。 行で分割することを、水平分割と言います。 大きなファクト表をパーティション化すると、個々のパーティションはより管理が容易なため、パフォーマンスが改善されます。 表は、ディメンション・モデル内の取引日のディメンションに基づいてパーティション化します。 例えば、数十億の行からなる巨大なファクト表がある場合、1 カ月のデータごとに専用のパーティションを割り当てるのが理想的です。

データウェアハウス内のデータをパーティション化することで、次のようないくつかの目標を達成できます。
  • データへの柔軟なアクセスを提供する
  • 簡単で効率的なデータ管理サービスを提供する
  • データウェアハウスのスケーラビリティーを確保する
  • データウェアハウスの要素をポータブルにすることで、これらの要素を簡単にデータウェアハウス間で共有したりアーカイブしたりできるようにする
  • 照会の応答時間を改善する
  • 大きな表よりもパーティションの方が保守が容易なため、保守をより簡単にする

フィードバック