ディメンション - 概要

適用対象: Azure Analysis Services Power BI Premiumを SQL Server Analysis Servicesする

すべてのMicrosoft SQL Server SQL Server Analysis Services ディメンションは、データ ソース ビューのテーブルまたはビューの列に基づく属性のグループです。 ディメンションはキューブとは独立して存在し、複数のキューブで使用でき、1 つのキューブで複数回使用でき、SQL Server Analysis Servicesインスタンス間でリンクできます。 キューブとは無関係に存在するディメンションをデータベース ディメンションといい、キューブ内のデータベース ディメンションとデータベース ディメンションのインスタンスをキューブ ディメンションといいます。

スター スキーマ デザインに基づくディメンション

ディメンションの構造は、主に、基になるディメンション テーブルの構造によって決まります。 最も単純な構造をスター スキーマといいます。このスキーマでは、各ディメンションが、主キーと外部キーのリレーションシップによってファクト テーブルに直接リンクされている 1 つのディメンション テーブルに基づいています。

次の図は 、AdventureWorksDW2012 サンプル データベースのサブセクションを示しています。このデータベースでは、 FactResellerSales ファクト テーブルが DimResellerDimPromotion の 2 つのディメンション テーブルに関連しています。 FactResellerSales ファクト テーブルの ResellerKey 列は、DimReseller ディメンション テーブルの ResellerKey 主キー列との外部キーリレーションシップを定義します。 同様に、FactResellerSales ファクト テーブルの PromotionKey 列は、DimPromotion ディメンション テーブルの PromotionKey 主キー列との外部キーリレーションシップを定義します。

Logical schema for fact dimension relationship

スノーフレーク スキーマ デザインに基づくディメンション

ディメンションを定義するには複数のテーブルからの情報を必要とするため、より複雑な構造が必要になることがよくあります。 この構造は、スノーフレーク スキーマといいます。このスキーマでは、各ディメンションが、最終的には主キーと外部キーのリレーションシップによってファクト テーブルにリンクされる、相互にリンクされた複数のテーブルの列の属性に基づいています。 たとえば、次の図は、 AdventureWorksDW サンプル プロジェクトの Product ディメンションを完全に記述するために必要なテーブルを示しています。

Tables for AdventureWorksAS Product dimension

製品を完全に記述するには、製品のカテゴリとサブカテゴリを Product ディメンションに含める必要があります。 ただし、その情報は DimProduct ディメンションのメイン テーブルに直接存在しません。 DimProduct から DimProductSubcategory への外部キーリレーションシップ。DimProductCategory テーブルとの外部キーリレーションシップにより、製品ディメンションに製品カテゴリとサブカテゴリの情報を含めることができます。

スノーフレーク スキーマと参照リレーションシップの対比

状況によっては、スノーフレーク スキーマを使用して 1 つのディメンション内の属性を複数のテーブルから定義するか、2 つの異なるディメンションを定義して、そのディメンション間の参照ディメンション リレーションシップを定義するか、選択が必要になる場合があります。 次の図は、このようなシナリオを示しています。

Logical schema for sample referenced dimension

前の図では、 FactResellerSales ファクト テーブルに DimGeography ディメンション テーブルとの外部キーリレーションシップはありません。 ただし、 FactResellerSales ファクト テーブルには DimReseller ディメンション テーブルとの外部キーリレーションシップがあり、 DimGeography ディメンション テーブルとの外部キーリレーションシップがあります。 各リセラーに関する地理情報を含むリセラー ディメンションを定義するには、 DimGeography ディメンション テーブルと DimReseller ディメンション テーブルからこれらの属性を取得する必要があります。 ただし、SQL Server Analysis Servicesでは、2 つの異なるディメンションを作成し、2 つのディメンション間に参照ディメンションリレーションシップを定義することで、それらをメジャー グループにリンクすることで、同じ結果を得ることができます。 参照ディメンションリレーションシップの詳細については、「 ディメンションリレーションシップ」を参照してください。

このシナリオで参照ディメンション リレーションシップを使用することの利点の 1 つとして、1 つの地理ディメンションを作成した後、追加のストレージ領域を必要とすることなく、この地理ディメンションに基づいて、複数のキューブ ディメンションを作成できることが挙げられます。 たとえば、地理キューブ ディメンションの 1 つを販売店ディメンションにリンクし、別の地理キューブ ディメンションを顧客ディメンションにリンクすることができます。 関連トピック:ディメンションリレーションシップ参照リレーションシップの定義、および参照されるリレーションシップのプロパティ

ディメンションの処理

ディメンションを作成した後、ディメンション内の属性および階層のメンバーを表示するには、あらかじめこのディメンションを処理しておく必要があります。 ディメンションの構造が変更されたり、その基になるテーブルの情報が更新された場合、ディメンションをもう一度処理しないと、変更内容を表示できません。 構造の変更後にディメンションを処理する際は、そのディメンションが含まれたキューブも処理する必要があります。これを行わないと、キューブを表示できません。

セキュリティ

階層、レベル、メンバーなど、ディメンションのすべての下位オブジェクトは、SQL Server Analysis Servicesのロールを使用してセキュリティで保護されます。 ディメンションのセキュリティは、そのディメンションを使用するデータベース内のすべてのキューブ、または特定のキューブにのみ適用できます。 ディメンションのセキュリティの詳細については、「ディメンション に対するアクセス許可の付与 (Analysis Services)」を参照してください。

参照

ディメンションのストレージ
ディメンションの翻訳
書き込み可能ディメンション