論理アーキテクチャの概要 (Analysis Services - 多次元データ)

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services は、さまざまな種類の Analysis Services モデルで使用されるメモリ アーキテクチャとランタイム環境を指定する、サーバー配置モードで動作します。 サーバー モードは、インストール時に決定されます。 多次元およびデータ マイニング モードでは 、従来の OLAP とデータ マイニングがサポートされています。 表形式モード では、表形式モデルがサポートされます。 SharePoint 統合モード とは、ブック内の Excel または Power Pivot データ モデルの読み込みとクエリに使用される、Power Pivot for SharePoint としてインストールされた Analysis Services のインスタンスを指します。

このトピックでは、多次元モードとデータ マイニング モードで動作する場合の Analysis Services の基本アーキテクチャについて説明します。 その他のモードの詳細については、「 表形式モデリング 」および「 表形式ソリューションと多次元ソリューションの比較」を参照してください。

基本アーキテクチャ

SQL Server Analysis Servicesのインスタンスには複数のデータベースを含めることができます。また、1 つのデータベースに OLAP オブジェクトとデータ マイニング オブジェクトを同時に含めることができます。 アプリケーションは、SQL Server Analysis Servicesの指定されたインスタンスと指定したデータベースに接続します。 サーバー コンピューターは、SQL Server Analysis Servicesの複数のインスタンスをホストできます。 SQL Server Analysis Servicesのインスタンスには、"<ServerName\<InstanceName>" という名前が付けられます>。 次の図は、SQL Server Analysis Services オブジェクト間のすべてのリレーションシップを示しています。

AMO 実行中のオブジェクトのリレーションシップ

基本クラスは、キューブの構築に必要な最小限のオブジェクト セットです。 この最小限のオブジェクト セットは、ディメンション、メジャー グループ、およびパーティションです。 集計は省略可能です。

ディメンションは、属性および階層から構築されます。 階層は、順序付けされた属性のセットで形成されます。セット内の各属性が、階層内の 1 つのレベルに対応します。

キューブは、ディメンションおよびメジャー グループから構築されます。 キューブのディメンション コレクション内のディメンションは、データベースのディメンション コレクションに属しています。 メジャー グループは、同じデータ ソース ビューおよびキューブのディメンションの同じサブセットを持つ、メジャーのコレクションです。 1 つのメジャー グループには、物理データを管理するパーティションが 1 つ以上あります。 メジャー グループには、既定の集計デザインを指定できます。 既定の集計デザインを、メジャー グループ内のすべてのパーティションに使用できます。また、各パーティションに独自の集計デザインを使用することもできます。

Server オブジェクト
SQL Server Analysis Servicesの各インスタンスは、AMO では異なるサーバー オブジェクトと見なされます。各インスタンスは、異なる接続によってオブジェクトにServer接続されます。 各サーバー オブジェクトには、1 つ以上のデータ ソース、データ ソース ビュー、データベース オブジェクト、アセンブリ、およびセキュリティ ロールが含まれています。

Dimension オブジェクト
各データベース オブジェクトには複数のディメンション オブジェクトが含まれています。 各ディメンション オブジェクトには 1 つ以上の属性が含まれ、属性は階層で構成されます。

[キューブ オブジェクト]
各データベース オブジェクトには 1 つ以上のキューブ オブジェクトが含まれています。 キューブは、メジャーとディメンションによって定義されます。 キューブのメジャーとディメンションは、そのキューブの基になっているか、またはメジャー定義とディメンション定義から生成されたデータ ソース ビュー内のテーブルおよびビューから派生します。

オブジェクトの継承

ASSL オブジェクト モデルには繰り返される多くの要素グループがあります。 たとえば、要素グループ "Dimensions contain Hierarchyes" は、要素のディメンション階層を定義します。 CubesMeasureGroups の両方に要素グループ "Dimensions contain Hierarchies" が含まれています。

明示的にオーバーライドされない限り、要素はこれらの繰り返される要素グループの詳細を上位レベルから継承します。 たとえば、CubeDimensionTranslations は、先祖要素 CubeTranslations と同じです。

上位レベルのオブジェクトから継承されるプロパティを明示的にオーバーライドするには、オブジェクトで上位レベルのオブジェクトの構造全体およびプロパティを明示的に繰り返す必要はありません。 オブジェクトで明示的に記述する必要があるプロパティは、オーバーライドするプロパティだけです。 たとえば、CubeDimension では、キューブで無効にする必要がある階層、可視性を変更する必要がある階層、またはディメンション レベルでレベルの詳細が指定されていない階層のみを一覧表示できます。

オブジェクトで指定される一部のプロパティによって、子オブジェクトや子孫オブジェクトの同じプロパティの既定値が指定されます。 たとえば、 Cube.StorageModePartition.StorageMode の既定値を提供します。 ASSL では、継承された既定値について次のルールが適用されます。

  • 子オブジェクトのプロパティが XML で NULL の場合、そのプロパティの既定値は継承された値になります。 ただし、サーバーから値をクエリする場合は、XML 要素の NULL 値が返されます。

  • 子オブジェクトのプロパティが子オブジェクトで直接設定されたか、または継承されたかをプログラムで判断することはできません。

Imports キューブには、Packages と Last という 2 つのメジャーと、Route、Source、および Time という 3 つの関連ディメンションが含まれています。

キューブ例 1

キューブの周囲の小さい英数字の値はディメンションのメンバーです。 この例のメンバーは、ground (Route ディメンションのメンバー)、Africa (Source ディメンションのメンバー)、および 1st quarter (Time ディメンションのメンバー) です。

メジャー

キューブ セル内の値は、Packages と Last という 2 つのメジャーを表します。 Packages メジャーはインポートされたパッケージの数を表し、 Sum 関数を使用してファクトを集計します。 最後のメジャーは領収書の日付を表し、 Max 関数を使用してファクトを集計します。

Dimensions

Route ディメンションは、輸入品が宛先に搬送される手段を表します。 このディメンションのメンバーには、ground、nonground、air、sea、road、rail があります。 Source ディメンションは、Africa または Asia など、輸入品の製造場所を表します。 Time ディメンションは、年間の四半期と上半期または下半期を表します。

集計

キューブのビジネス ユーザーは、ディメンション内のメンバーのレベルに関係なく、すべてのディメンションの各メンバーのメジャーの値を決定できます。SQL Server Analysis Servicesは、必要に応じて上位レベルの値を集計するためです。 たとえば、前の図のメジャー値は、次の図に示すように、Time ディメンションの Calendar Time 階層を使用して、標準のカレンダー階層に従って集計できます。

時間ディメンションに沿って編成されたメジャー

1 つのディメンションを使用してメジャーを集計するだけでなく、さまざまなディメンションのメンバーを組み合わせて使用し、メジャーを集計できます。 これにより、ビジネス ユーザーは複数のディメンション内で同時にメジャーを評価できます。 たとえば、ビジネス ユーザーが Eastern Hemisphere と Western Hemisphere から air によって搬送された輸入品を四半期別に分析する必要があれば、キューブ上でクエリを実行して次のデータセットを取得できます。

パッケージ |時間枠 |すべてのソース |東半球 |西半球 |---------- |----------- |------------------ |------------------ |
|All Time|25110|6547|18563|
|前半|11173|2977|8196|
|第1四半期|5108|1452|3656|
|第2四半期|6065|1525|4540|6 月 28 日から 99 日|6 月 20 日~99 日|6 月 28 日から 99 日|
|後半|13937|3570|10367|Dec-29-99|Dec-22-99|Dec-29-99|
|第3四半期|6119|1444|4675|9 月 30 日~99 日|9 月 18 日-99 日|9 月 30 日~99 日|
|第4四半期|7818|2126|5692|Dec-29-99|Dec-22-99|Dec-29-99|

Last |時間枠 |すべてのソース |東半球 |西半球 |---------- |----------- |------------------ |------------------ | |オールタイム|Dec-29-99|Dec-22-99|Dec-29-99|
|前半|6 月 28 日から 99 日|6 月 20 日~99 日|6 月 28 日から 99 日|
|第1四半期|3月30日~99日|3-19-99|3月30日~99日|
|第2四半期|6 月 28 日から 99 日|6 月 20 日~99 日|6 月 28 日から 99 日|
|後半|Dec-29-99|Dec-22-99|Dec-29-99|
|第3四半期|9 月 30 日~99 日|9 月 18 日-99 日|9 月 30 日~99 日|
|第4四半期|Dec-29-99|Dec-22-99|Dec-29-99|

キューブを定義した後、新しい集計を作成したり、既存の集計を変更して、集計を処理時に事前計算するかクエリ時に計算するかなどを指定するオプションを設定することができます。 関連トピック:集計と集計デザイン

メジャー、属性、および階層のマッピング

キューブの例のメジャー、属性、および階層は、キューブのファクト テーブルおよびディメンション テーブルの次の列から派生します。

メジャーまたは属性 (レベル) メンバー ソース テーブル 基になる列 サンプル列の値
パッケージメジャー 適用なし ImportsFactTable パッケージ 12
Last メジャー 適用なし ImportsFactTable Last (最後へ) May-03-99
Route ディメンションの Route_Category レベル nonground、ground RouteDimensionTable Route_Category Nonground
Route ディメンションの Route 属性 air、sea、road、rail RouteDimensionTable ルート Sea
Source ディメンションの Hemisphere 属性 Eastern Hemisphere、Western Hemisphere SourceDimensionTable Hemisphere Eastern Hemisphere
Source ディメンションの Continent 属性 Africa,Asia,AustraliaEurope,N. America,S. America SourceDimensionTable Continent ヨーロッパ
Time ディメンションの Half 属性 1st half、2nd half TimeDimensionTable Half 2nd half
Time ディメンションの Quarter 属性 1st quarter、2nd quarter、3rd quarter、4th quarter TimeDimensionTable Quarter 3rd quarter

通常、1 つのキューブ セルのデータは、ファクト テーブルの複数行から派生します。 たとえば、エア メンバー、アフリカ メンバー、および第 1 四半期メンバーの交差部分にあるキューブ セルには、 ImportsFactTable ファクト テーブル内の次の行を集計することによって派生する値が含まれています。

Import_ReceiptKey RouteKey SourceKey TimeKey パッケージ Last (最後へ)
3516987 1 6 1 15 Jan-10-99
3554790 1 6 1 40 Jan-19-99
3572673 1 6 1 34 Jan-27-99
3600974 1 6 1 45 Feb-02-99
3645541 1 6 1 20 Feb-09-99
3674906 1 6 1 36 Feb-17-99

前の表では、各行の RouteKey、SourceKeyTimeKey 列の値が同じであり、これらの行が同じキューブ セルに寄与することを示しています。

ここで示す例は、非常に単純なキューブを表します。つまり、キューブに 1 つのメジャー グループがあり、すべてのディメンション テーブルがスター スキーマのファクト テーブルに結合されています。 別の一般的なスキーマとして、スノーフレーク スキーマがあります。このスキーマでは、1 つ以上のディメンション テーブルがファクト テーブルに直接結合されるのではなく、それぞれ別のディメンション テーブルに結合されます。 関連トピック:ディメンション (Analysis Services - 多次元データ)

ここで示す例には、1 つのファクト テーブルだけが含まれています。 キューブに複数のファクト テーブルがある場合、各ファクト テーブルからのメジャーはメジャー グループに編成され、メジャー グループは定義済みのディメンション リレーションシップによって、特定のセットのディメンションに関連付けられます。 これらのリレーションシップは、データ ソース ビューの参加テーブルとリレーションシップの粒度を指定することによって定義します。 関連トピック:ディメンションリレーションシップ

参照

多次元モデル データベース