論理アーキテクチャの概要 (Analysis Services - 多次元データ)
SQL Server 2008 R2 では、Analysis Services は 2 つの異なるモードで操作できます。これらのモードは、従来の OLAP およびデータ マイニングをサポートする標準的なインストール モードと、SharePoint サーバーでホストされている Analysis Services の特別なインスタンスを使用して、Microsoft PowerPivot for Excel 2010 で作成されたブックをサポートする、SharePoint 統合モードです。
このトピックでは、標準的なモードで動作する場合の Analysis Services の基本アーキテクチャについて説明します。SharePoint 統合モードの詳細については、「SharePoint 統合モードの Analysis Services (PowerPivot for SharePoint)」を参照してください。PowerPivot クライアントの詳細については、「PowerPivot for Excel」を参照してください。
基本アーキテクチャ
Analysis Services のインスタンスには、複数のデータベースを含めることができます。また、1 つのデータベース内に OLAP オブジェクトとデータ マイニング オブジェクトを同時に格納できます。アプリケーションは、Analysis Services の指定インスタンスおよび指定データベースに接続します。サーバー コンピューターは Analysis Services の複数のインスタンスをホストできます。Analysis Services のインスタンスには "<ServerName>\<InstanceName>" という名前が付けられます。次の図は、ここで説明した Analysis Services オブジェクト間のリレーションシップをすべて示しています。
基本クラスは、キューブの構築に必要な最小限のオブジェクト セットです。この最小限のオブジェクト セットは、ディメンション、メジャー グループ、およびパーティションです。集計は省略可能です。
ディメンションは、属性および階層から構築されます。階層は、順序付けされた属性のセットで形成されます。セット内の各属性が、階層内の 1 つのレベルに対応します。
キューブは、ディメンションおよびメジャー グループから構築されます。キューブのディメンション コレクション内のディメンションは、データベースのディメンション コレクションに属しています。メジャー グループは、同じデータ ソース ビューおよびキューブのディメンションの同じサブセットを持つ、メジャーのコレクションです。1 つのメジャー グループには、物理データを管理するパーティションが 1 つ以上あります。メジャー グループには、既定の集計デザインを指定できます。既定の集計デザインを、メジャー グループ内のすべてのパーティションに使用できます。また、各パーティションに独自の集計デザインを使用することもできます。
Server オブジェクト
AMO では、Analysis Services の各インスタンスが別個のサーバー オブジェクトとして認識されます。各インスタンスは、それぞれ異なる接続によって Server オブジェクトに接続されます。各サーバー オブジェクトには、1 つ以上のデータ ソース、データ ソース ビュー、データベース オブジェクト、アセンブリ、およびセキュリティ ロールが含まれています。Dimension オブジェクト
各データベース オブジェクトには複数のディメンション オブジェクトが含まれています。各ディメンション オブジェクトには 1 つ以上の属性が含まれ、属性は階層で構成されます。[キューブ オブジェクト]
各データベース オブジェクトには 1 つ以上のキューブ オブジェクトが含まれています。キューブは、メジャーとディメンションによって定義されます。キューブのメジャーとディメンションは、そのキューブの基になっているか、またはメジャー定義とディメンション定義から生成されたデータ ソース ビュー内のテーブルおよびビューから派生します。
オブジェクトの継承
ASSL オブジェクト モデルには繰り返される多くの要素グループがあります。たとえば、"Dimensions contain Hierarchies" という要素グループでは要素のディメンション階層を定義します。Cubes と MeasureGroups のどちらにも、"Dimensions contain Hierarchies" という要素グループがあります。
明示的にオーバーライドされない限り、要素はこれらの繰り返される要素グループの詳細を上位レベルから継承します。たとえば、CubeDimension の Translations は、先祖要素である Cube の Translations と同じです。
上位レベルのオブジェクトから継承されるプロパティを明示的にオーバーライドするには、オブジェクトで上位レベルのオブジェクトの構造全体およびプロパティを明示的に繰り返す必要はありません。オブジェクトで明示的に記述する必要があるプロパティは、オーバーライドするプロパティだけです。たとえば、CubeDimension では、Cube で無効にする必要がある場合、表示と非表示を切り替える必要がある場合、または一部の Level 詳細が Dimension レベルで指定されない場合にのみ、Hierarchies を一覧表示します。
オブジェクトで指定される一部のプロパティによって、子オブジェクトや子孫オブジェクトの同じプロパティの既定値が指定されます。たとえば、Cube.StorageMode は Partition.StorageMode の既定値を指定します。ASSL では、継承される既定値に Decision Support オブジェクト (DSO) 8.0 で使用されるのと同じルールを適用します。継承される既定値のルールは次のとおりです。
子オブジェクトのプロパティが XML で NULL の場合、そのプロパティの既定値は継承された値になります。ただし、サーバーから値をクエリする場合は、XML 要素の NULL 値が返されます。
子オブジェクトのプロパティが子オブジェクトで直接設定されたか、または継承されたかをプログラムで判断することはできません。
例
Imports キューブには、Packages と Last という 2 つのメジャーと、Route、Source、および Time という 3 つの関連ディメンションが含まれています。
キューブの周囲の小さい英数字の値はディメンションのメンバーです。この例のメンバーは、ground (Route ディメンションのメンバー)、Africa (Source ディメンションのメンバー)、および 1st quarter (Time ディメンションのメンバー) です。
メジャー
キューブ セル内の値は、Packages と Last という 2 つのメジャーを表します。Packages メジャーは輸入されるパッケージ数を表し、Sum 関数はファクトを集計するために使用されます。Last メジャーは受入日を表し、Max 関数はファクトを集計するために使用されます。
ディメンション
Route ディメンションは、輸入品が宛先に搬送される手段を表します。このディメンションのメンバーには、ground、nonground、air、sea、road、rail があります。Source ディメンションは、Africa または Asia など、輸入品の製造場所を表します。Time ディメンションは、年間の四半期と上半期または下半期を表します。
集計
キューブのビジネス ユーザーは、ディメンション内のメンバーのレベルに関係なく、すべてのディメンションのメンバーごとにすべてのメジャーの値を決定できます。これは、Analysis Services が必要に応じて上位レベルで値を集計するためです。たとえば、前の図のメジャー値は、次の図に示すように Time ディメンションの Calendar Time 階層を使用して、標準カレンダー階層に従って集計できます。
1 つのディメンションを使用してメジャーを集計するだけでなく、さまざまなディメンションのメンバーを組み合わせて使用し、メジャーを集計できます。これにより、ビジネス ユーザーは複数のディメンション内で同時にメジャーを評価できます。たとえば、ビジネス ユーザーが Eastern Hemisphere と Western Hemisphere から air によって搬送された輸入品を四半期別に分析する必要があれば、キューブ上でクエリを実行して次のデータセットを取得できます。
Packages |
Last |
|||||||
---|---|---|---|---|---|---|---|---|
All Sources |
Eastern Hemisphere |
Western Hemisphere |
All Sources |
Eastern Hemisphere |
Western Hemisphere |
|||
All Time |
25110 |
6547 |
18563 |
Dec-29-99 |
Dec-22-99 |
Dec-29-99 |
||
1st half |
11173 |
2977 |
8196 |
Jun-28-99 |
Jun-20-99 |
Jun-28-99 |
||
1st quarter |
5108 |
1452 |
3656 |
Mar-30-99 |
Mar-19-99 |
Mar-30-99 |
||
2nd quarter |
6065 |
1525 |
4540 |
Jun-28-99 |
Jun-20-99 |
Jun-28-99 |
||
2nd half |
13937 |
3570 |
10367 |
Dec-29-99 |
Dec-22-99 |
Dec-29-99 |
||
3rd quarter |
6119 |
1444 |
4675 |
Sep-30-99 |
Sep-18-99 |
Sep-30-99 |
||
4th quarter |
7818 |
2126 |
5692 |
Dec-29-99 |
Dec-22-99 |
Dec-29-99 |
キューブを定義した後、新しい集計を作成したり、既存の集計を変更して、集計を処理時に事前計算するかクエリ時に計算するかなどを指定するオプションを設定することができます。関連項目 :集計と集計デザイン
メジャー、属性、および階層のマッピング
キューブの例のメジャー、属性、および階層は、キューブのファクト テーブルおよびディメンション テーブルの次の列から派生します。
メジャーまたは属性 (レベル) |
メンバー |
基になるテーブル |
基になる列 |
サンプル列の値 |
---|---|---|---|---|
Packages メジャー |
N/A |
ImportsFactTable |
Packages |
12 |
Last メジャー |
N/A |
ImportsFactTable |
Last |
May-03-99 |
Route ディメンションの Route_Category レベル |
nonground、ground |
RouteDimensionTable |
Route_Category |
Nonground |
Route ディメンションの Route 属性 |
air、sea、road、rail |
RouteDimensionTable |
Route |
Sea |
Source ディメンションの Hemisphere 属性 |
Eastern Hemisphere、Western Hemisphere |
SourceDimensionTable |
Hemisphere |
Eastern Hemisphere |
Source ディメンションの Continent 属性 |
Africa,Asia,AustraliaEurope,N.America,S.America |
SourceDimensionTable |
Continent |
Europe |
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 つのキューブ セルのデータは、ファクト テーブルの複数行から派生します。たとえば、air メンバー、Africa メンバー、および 1st quarter メンバーの交差部分にあるキューブ セルには、ImportsFactTable ファクト テーブルの次の行の集計によって派生する値が格納されます。
Import_ReceiptKey |
RouteKey |
SourceKey |
TimeKey |
Packages |
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 列、SourceKey 列、および TimeKey 列の値が同じであるということは、これらの行が同じキューブ セルに影響を与えることを示しています。
ここで示す例は、非常に単純なキューブを表します。つまり、キューブに 1 つのメジャー グループがあり、すべてのディメンション テーブルがスター スキーマのファクト テーブルに結合されています。別の一般的なスキーマとして、スノーフレーク スキーマがあります。このスキーマでは、1 つ以上のディメンション テーブルがファクト テーブルに直接結合されるのではなく、それぞれ別のディメンション テーブルに結合されます。関連トピック :ディメンション (Analysis Services - 多次元データ)
ここで示す例には、1 つのファクト テーブルだけが含まれています。キューブに複数のファクト テーブルがある場合、各ファクト テーブルからのメジャーはメジャー グループに編成され、メジャー グループは定義済みのディメンション リレーションシップによって、特定のセットのディメンションに関連付けられます。これらのリレーションシップは、データ ソース ビューの参加テーブルとリレーションシップの粒度を指定することによって定義します。関連トピック :ディメンション リレーションシップ