日付型ディメンションの作成
Microsoft SQL Server Analysis Services では、時間ディメンションとは、属性が年、半期、四半期、月、日などの時間間隔を表すディメンションの種類を指します。 時間ディメンションの期間は、分析やレポートの粒度を時間ベースで指定します。 時間ディメンションの属性は階層化され、粒度は履歴データのビジネス要件とレポート要件によって主に決定されます。 たとえば、ビジネス インテリジェンス アプリケーションの財務データと販売データでは、ほとんどの場合、月または四半期の粒度が使用されます。
通常、Analysis Services のキューブには、さまざまな形式の時間ディメンションが組み込まれています。 データの粒度とレポート要件によっては、各キューブに、複数の時間ディメンションまたは同じ時間ディメンションの複数の階層が含まれている場合があります。 ただし、すべてのキューブに時間ディメンションを組み込む必要があるわけではありません。 利用状況に基づくディメンションでは、時間ではなく利用状況に基づいてコストが設定されるので、利用状況に基づいてコストを設定する場合など、一部の OLAP アプリケーションでは時間ディメンションを使用する必要がありません。
ディメンション構造
時間ディメンションのディメンション構造は、基になるデータ ソースが時間間隔情報をどのように格納するかによって決まります。 ストレージにおけるこの違いに基づいて、次の 2 種類の基本的な時間ディメンションが生成されます。
時間ディメンション
時間ディメンションは、ディメンションの属性がディメンション テーブルによって提供されるという点で、他のディメンションと似ています。 ディメンション メイン テーブルの各列は、特定の時間間隔に関する属性を定義します。他のディメンションと同様に、ファクト テーブルには、時間ディメンションのディメンション テーブルへの外部キー リレーションシップが含まれています。 時間ディメンションのキー属性は、ディメンション メイン テーブル内で詳細レベルが最も低いもの (日付など) または整数キーに基づいています。
サーバー時間ディメンション
時間関連の属性をバインドするディメンション テーブルがない場合は、Analysis Services で時間間隔に基づいたサーバー時間ディメンションを定義できます。 サーバー時間ディメンションで表される階層、レベル、およびメンバーを定義するには、ディメンションを作成するときに標準時間間隔を選択します。サーバー時間ディメンションの属性には、特殊な時間属性バインドが含まれています。 Analysis Services では、Year、Month、Day など、日付に関係する属性の型を使用して、時間ディメンションの属性のメンバーを定義します。
サーバー時間ディメンションをキューブに組み込んだら、キューブ ウィザードの [ディメンションの使用法の定義] ページでリレーションシップを指定して、メジャー グループとサーバー時間ディメンション間にリレーションシップを設定します。
カレンダー
時間ディメンションまたはサーバー時間ディメンションでは、時間間隔属性は階層にグループ化されます。 これらの階層は、通常、カレンダーと呼ばれます。
多くの場合、ビジネス インテリジェンス アプリケーションでは、複数のカレンダー定義が必要となります。 たとえば、人事部門は、標準カレンダー (1 月 1 日から始まって 12 月 31 日に終わる 12 か月構成のグレゴリオ暦カレンダー) を使用して従業員に関するデータを追跡する一方で、 会計カレンダー (組織で採用されている会計年度を定義する 12 か月構成のカレンダー) を使用して支出を追跡する場合があります。
これらのさまざまなカレンダーは、ディメンション デザイナーで手動で作成できます。 ただし、ディメンション ウィザードに用意されている複数の階層テンプレートを使用すると、時間ディメンションまたはサーバー時間ディメンションを作成するときに何種類かのカレンダーを自動的に生成することができます。 次の表は、ディメンション ウィザードによって生成できる各カレンダーについて説明したものです。
カレンダー |
説明 |
||
---|---|---|---|
標準カレンダー |
1 月 1 日に始まって 12 月 31 日に終わる、12 か月構成のグレゴリオ暦カレンダーです。 ディメンション ウィザードでは、時間ディメンションまたはサーバー時間ディメンションのどちらを作成するかにかかわらず、ディメンションの時間間隔を表す属性を定義した後で標準カレンダーの階層が生成されます。 ディメンション ウィザードを使用してサーバー時間ディメンションを作成する場合は、標準カレンダーの開始日を 1 月 1 日以外の日付に設定することもできます。 |
||
会計カレンダー |
12 か月構成の会計カレンダーです。 このカレンダーを選択する場合は、組織で採用されている会計年度の開始月日を指定する必要があります。
|
||
レポート カレンダー (またはマーケティング カレンダー) |
4 週間から成る月 2 つと 5 週間から成る月 1 つが 3 か月 (四半期) 単位で繰り返される、12 か月構成のレポート用カレンダーです。 このカレンダーを選択する場合は、開始月日を指定するだけでなく、3 か月のパターンを、各月が何週間から成るかを表す 4-4-5、4-5-4、または 5-4-4 から選択する必要があります。
|
||
製造カレンダー |
4 週間の 13 期間から成るカレンダーです。このカレンダーは、3 期間から成る 3 四半期と 4 期間から成る 1 四半期に分割されています。 このカレンダーを選択する場合は、組織で採用されている製造年の開始週 (1 ~ 4) と開始月だけでなく、どの四半期に 4 期間が含まれているかも指定する必要があります。
|
||
ISO 8601 カレンダー |
国際標準化機構 (ISO) が定める Representation of Dates and Time (日付および時刻の表記に関する標準規格) (8601) に準拠したカレンダーです。 このカレンダーでは、7 日から成る各週に整数の番号が付けられています。 新しい年は、グレゴリオ暦での新しい年の始まりから前後に何日かずれている場合があります。 このカレンダーの最初の週は、木曜日が含まれているグレゴリオ暦での最初の週になります。 そのため、この週の最初の曜日である日曜日は、前年の最後の週に含まれる場合があります。
|
サーバー時間ディメンションを作成して、そのディメンションで使用する時間間隔とカレンダーを指定すると、指定した各カレンダーに適した時間間隔属性がディメンション ウィザードによって追加されます。 たとえば、時間間隔として年を使用し、会計カレンダーとレポート カレンダーの両方を含んでいるサーバー時間ディメンションを作成すると、ウィザードによって、FiscalYear と ReportingYears という属性がそれぞれ標準の Years 属性と共にディメンションに追加されます。 サーバー時間ディメンションには、日と週が含まれているディメンションの場合の DayOfWeek 属性など、選択した時間間隔の組み合わせに対する属性も追加されます。 ディメンション ウィザードでは、1 つのカレンダー タイプに属する属性を組み合わせることによって、カレンダー階層が作成されます。 たとえば、会計カレンダーの階層は、会計年度、会計半期、会計四半期、会計月、会計日などのレベルで構成されます。
ビジネス インテリジェンス ウィザードを使用したタイム インテリジェンスの追加
時間ディメンションを定義し、定義したディメンションをキューブに追加したら、ビジネス インテリジェンス ウィザードを使用して、期間対日付メジャー、期間対期間メジャー、ローリング平均値メジャーなどのタイム インテリジェンス機能を追加することができます。 詳細については、「ビジネス インテリジェンス ウィザードを使用したタイム インテリジェンス計算の定義」を参照してください。
注 |
---|
ビジネス インテリジェンス ウィザードを使用して、タイム インテリジェンスをサーバー時間ディメンションに追加することはできません。 ビジネス インテリジェンス ウィザードによってタイム インテリジェンスをサポートする階層が追加されたら、この階層を時間ディメンション テーブルの列にバインドする必要があります。 サーバー時間ディメンションは、対応する時間ディメンション テーブルを持たないため、この追加の階層をサポートできません。 |