Oracle OLAP 11gキューブの構築

このチュートリアルでは、Analytic Workspace Manager 11g(AWM 11g)ツールを使用してOLAPキューブを作成します。 具体的には、次のタスクを実行します。

約60分

トピック

このチュートリアルでは、以下のトピックについて説明します。

このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によっては応答時間が遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にある各アイコンの上にカーソルを置いてください。

概要

AWM 11gは、Oracle 11gを使用したデータウェアハウスで多次元データを作成、開発、管理するためのツールです。 このチュートリアルでは、この使いやすいGUIツールを使用して、OLAPデータのコンテナであるアナリティック・ワークスペース(AW)を作成し、OLAPディメンションとキューブを追加します。

Oracle OLAPでは、キューブがディメンションや集計ルールなどの特性が類似したストアド・メジャーと計算済みメジャーを収集する便利な手段を提供しています。 特定のAWには1つ以上のキューブが含まれ、各キューブのディメンション境界は異なるものでも構いません。 同じAWに含まれる複数のキューブは、1つまたは複数のディメンションを共有できます。 つまり、キューブは管理者によるAWデータの構築および保守を支援する論理オブジェクトに過ぎません。

キューブ、メジャー、ディメンションを作成したら、既存のスター・ソース、スノーフレーク・ソース、正規化リレーショナル・ソースに対してディメンションとストアド・メジャーをマッピングし、データをロードします。 その後、簡単なSQLを使用してOLAPデータへの問合せを実行します。

トピック・リストに戻る

シナリオ

このチュートリアルでは、ソース・データとしてOLAPTRAINスキーマを使用します。 OLAPTRAINは、架空の電気店のデータを含むベース・トランザクション・システムから抽出されたスター・スキーマです。 このスター・スキーマには、データのリレーションシップを表す"ディメンション"表と、実績の評価に使用されるメトリックが含まれる"ファクト"表が含まれています。

次に分析に使用する表を示します。これらの表には事前にETL(異種データの抽出、変換、ロード)プロセスが適用されています。

説明
CHANNELS 顧客購入に対する流通チャネルを含む表
CUSTOMERS 誰が商品を購入したか、またどのGeographyディメンションに対して商品が販売されたかを含む表
PRODUCTS 企業が販売している商品を含む表
TIMES 商品が販売された期間を含む表
SALES_FACT 販売額(ドル)、数量、価格、流通チャネル、商品項目、日付、顧客

論理データ・モデルの設計

リレーショナル表について確認したら、それぞれのディメンションに対して使用できるレベル、階層、属性を特定します。 また、ビジネス要件定義プロセスにおいて、必要なストアド・メジャーと計算済みメジャーを特定します。 その結果生成される論理モデルに基づいて、OLAPデータ・モデルを設計します。

ディメンションの特定

ソース・データ表をおもなインプットとして使用し、次のディメンションがOLAPデータ・モデルの要件として特定されました。

レベルの特定

OLAPモデルを設計する際、キューブにロードするサマリーのレベルも決めます。 ソースに含まれるデータを必ずしもキューブとして再現する必要はありません。 キューブをファクト表へ結合することで、いつでも詳細データの問合せを実行できます(すべてのデータはOracleデータベースに格納されているため)。

サマリー管理と分析の目的に対するビジネス要件によって、OLAPキューブ内の各ディメンションに対してもっとも詳細なレベルが決定されます。 キューブへのデータ・ロードはどのレベルでも実行できます。 ビジネス要件分析を実行した後で、OLAPデータ・モデルの一部として、それぞれのディメンションに対して次のサマリー・レベルが特定されました。

Timeディメンションには、最上位レベルから順にAll Years、Calendar Year、Calendar Quarter、Monthという4つのレベルが含まれます。 対象となるのは2005年から2007年までのデータです。

それぞれのディメンションに、サマリーの最高レベルとして"All"(総計)レベルが追加されていることに注意します。 この最高レベルを追加することで、アプリケーション・ユーザーがOLAPデータを分析する際の柔軟性が高くなります。

階層の特定

階層によってそれぞれのディメンション内のレベルが体系化されます。 階層を特定するには、確認された分析タイプをサポートするように、正しいサマリー順でレベルをグループ化します。 1つのディメンションに、階層をいくつでも作成できます。

このOLAPデータ・モデルでは、各ディメンションに必要とされる階層は1つだけです。 階層レベルは、上の表のとおりに設計されています。

メジャーの特定

分析要件には、ストアド・メジャーと計算済みメジャーの両方が含まれています。 2つのメジャーがファクト表から取得され、残りのメジャーはOLAPの計算済みメジャーとして作成および管理されます。

 
    前年度売上累計
    売上累計の対前年度比
    売上の対前年度比
    前期売上
    売上の対前期比
    製品レベルの売上ランク
    親製品レベルの売上ランク
    親階層での製品売上シェア
    全体の製品売上シェア

トピック・リストに戻る

このチュートリアルを始める前に、次のことを確認してください。

1.

Oracle Database 11gとOLAPオプション(パッチ・レベル11.1.0.7以上)がインストールされていること。

 

2.

Analytic Workspace Manager 11g(バージョン11.1.0.7A以上)をOTNからダウンロードし、Windowsマシン上のディレクトリに解凍していること。

 

3.

Installing the Oracle OLAP 11g Sample Schema』の手順に従って、OLAPTRAINスキーマをダウンロードしてインストールしていること。

注: サンプル・スキーマのインストール・パッケージには次の2つのステップが含まれます。

1. OLAPTRAINベース・スキーマのインストール

2. OLAPTRAINスキーマへのSALESTRACK分析作業領域のインストール

最初のステップ(OLAPTRAINベース・スキーマのインストール)のみを実行します。

 

4.

a. AWMをインストールしたロケーションに、olaptrain_templates.zipをダウンロードします。

b. ファイルを解凍します。

次のディレクトリ構造が生成されます:<your_path>\templates\calcs

...\templatesディレクトリ内のファイルと ...\templates\calcsディレクトリは、このチュートリアルの後半で使用します。

トピック・リストに戻る

アナリティック・ワークスペースの作成

アナリティック・ワークスペースは、多次元データ・オブジェクトとOLAP DMLで記述されたプロシージャを含むコンテナであり、 AWMツールを使用して作成されます。 次の手順を実行します。

1.

<your_path>\awm\bin\awm11.1.0.7.0A.jarをダブルクリックするか、またはデスクトップ上のショートカットを利用して、AWM 11gを起動します。

2.

Databases」を右クリックして、「Add Database to tree」を選択します。

 

3.

DescriptionフィールドにOracle11gを、Connection Informationフィールドに<hostname>:1521:<SID>を入力し、「Create」をクリックします。

 

4.

Oracle11gの隣のプラス(+)サインをクリックします。

 

5.

Usernameにolaptrainを、Passwordにoracleを入力します。 「OK」をクリックします。

 

6.

Schemas」→「OLAPTRAIN」の順に開きます。 「Analytic Workspaces」を右クリックし、「Create Analytic Workspace」を選択します。

 

7.

NameにSALESTRACKと入力し、「Create」をクリックします。

 

8.

アナリティック・ワークスペースが作成されました。

 

トピック・リストに戻る

ディメンションとレベルの定義

ディメンションは、データを特定して分類する、一意のメンバーで構成されたリストです。 これによってキューブの境界が形成され、それに伴ってキューブ内のメジャーも形成されます。 ディメンションにはレベル、階層、属性が含まれます。 ディメンションを作成する際に同時にレベルを定義できますが、後からレベルを定義することもできます。

ディメンションは、'ユーザー'タイプまたは'期間'タイプのいずれかとして定義できます。 ビジネス分析は履歴データに対して実行されるため、期間を完全に定義しておくことが不可欠です。 期間タイプのディメンションの場合、ソース・データに期間終了日と時間枠の列が含まれる必要があります。 これらの必須属性によって、以前の期間との比較などのOLAP時系列分析がサポートされます。 この情報が提供されない場合、標準的なディメンションとして期間を定義することができますが、時系列分析はサポートされません。

1.

Dimensions」フォルダを右クリックして、「Create Dimension」を選択します。

 

2.

Create Dimensionダイアログ・ボックスにデフォルトで表示されるGeneralタブで、NameにCHANNELを入力し、Dimension Typeとして「User Dimension」を選択します。

 

3.

Levelsタブで、次の3つのレベルを入力します。

  • ALL_CHANNELS
  • CLASS
  • CHANNEL

注: LabelフィールドとDescriptionフィールドは、自動的に入力されます。

 

4.

Implementation Detailsタブで「Use Keys from Data Source」を選択します。

次に、「Create」をクリックします。

 

5.

ディメンションとそのレベルが作成されました。

 

トピック・リストに戻る

階層の定義

ビジネス分析では、通常データはさまざまなレベルで要約されます。 たとえば、トランザクション・データベースの日次スナップショットがデータベースに含まれているとします。 この場合、基本レベルとなるのは1日ですが、 1ヶ月、四半期、1年というレベルでデータが要約される可能性もあります。

階層は、データの編成方法として順序付けされたレベルを使用した論理構造です。 階層はデータ集計の定義に使用されます。たとえば、期間ディメンションにおいては、階層を使用して月次レベルから四半期レベルや年次レベルへとデータを集計できます。 また階層内のレベルが集計された合計を表すかどうかに関係なく、階層を使用してナビゲーション・ドリル・パスを定義できます。

ディメンションには、1つまたは複数の階層が含まれます。 複数の階層を定義する場合は、必ず1つの階層をデフォルト階層として定義する必要があります。

1.

Hierarchies」フォルダを右クリックして、「Create Hierarchy」を選択します。

 

2.

Create Hierarchyウィンドウで、NameにSALES_CHANNELと入力します。 「>>」Add Allボタンをクリックしてすべてのレベルを選択し、「Create」をクリックします。

 

3.

新しいSALES_CHANNEL階層が、Hierarchiesフォルダの項目として表示されます。

 

トピック・リストに戻る

属性の定義と確認

属性はディメンション内の個別メンバーに関する情報を提供します。 データ表示のラベル付けやデータの選択に使用されます。 すべてのディメンションには、作成時に長い説明と短い説明という2つの属性が定義されています。 期間ディメンションには時間枠と終了日の属性も定義されています。 これらに加えて、独自のユーザー属性を作成することもできます。

ここでは、CHANNEL_TYPE属性を作成するとともに、先ほど作成したCHANNELディメンションの説明属性を確認します。 次の手順を実行します。

1.

Attributes」フォルダを右クリックして、「Create Attribute」を選択します。

 

2.

Create Attributeダイアログで、次の値を選択または入力します。

a. Name = CHANNEL_TYPE

b. Attribute Type = User

c. "Apply Attributes to"ボックス内:

  • Channel」ディメンションをドリルします。
  • Channelディメンションのチェック・ボックスに対する選択を解除します。
  • CHANNEL」レベル(最下位レベル)のチェック・ボックスだけを選択します。

注: Channel Type属性は、Sales Channel階層内の最下位レベルに対してのみ適用されます。

Create Attributeダイアログ・ボックスは、次のように表示されます。

Create」をクリックします。

 

3.

Attributes」フォルダを開き、Channelディメンションの属性を表示します。

 

4.

LONG_DESCRIPTION」属性を選択します。 右側のペインを確認すると、先ほど作成したユーザー属性とは異なり、説明属性が階層内のすべてのレベルに対して定義されていることが分かります。

 

トピック・リストに戻る


OLAPデータ・オブジェクトを作成したら、これらのオブジェクトをOracle Database内の表とビューに対してマッピングします。 ディメンション表のキー列をOLAPディメンションのMember属性にマッピングします。 また、ディメンション表に含まれる適切な属性列を、関連するOLAPのディメンション属性にマッピングします。

後でMaintain Analytic Workspaceウィザードを使用して、アナリティック・ワークスペースにデータをロードします。

1.

CHANNEL」ディメンションを開き、「Mappings」をクリックします。

結果:ナビゲータの右側にSchemasペインとMappingペインという2つのペインが表示されます。次に示すとおり、Table Mappingビュー(右側のペイン)のSource Columnフィールドは、最初は空白になっています。

 

2.

上の図のとおり、Type of Dimension TableにStar Schemaが選択されていることを確認します。

 

3.

Schemaペインで、「OLAPTRAIN」→「Tables」→「CHANNELS」の順に開きます。 次の図のとおり、Schemaペインからソース列をドラッグし、MappingペインのCHANNELレベルとCLASSレベルにドロップします。

階層内のALL_CHANNELSレベルには、ソース・データ列が含まれていません。 "All/Total"階層レベルには、定数または1行のSQL関数を入力します。 ALL_CHANNELSレベルに、次の定数を入力します(テキスト・リテラルには一重引用符が必要です)。

  • Member = 'ALL_CHANNELS'
  • Description attributes = 'All Channels'

その結果、マッピングは次のように表示されます。

注: "All/Total"値が定義されることで、階層の最上部には、そのディメンションに含まれるデータの要約を表すノードが必ず1つだけ存在するようになります。

 

4. Mappingペインの右下にある「Apply」をクリックします。

結果: Channelディメンションにデータをロードする準備が整いました。 すぐにディメンション・データをロードすることもできますが、このチュートリアルでは後からこのステップを実行します。

 

トピック・リストに戻る

Analytic Workspace Managerのテンプレート機能を利用すると、OLAPデータ・オブジェクトの定義をXMLファイルに保存できます。 保存されたテンプレートを使用すると、既存のオブジェクトとまったく同じように、新しいアナリティック・ワークスペース、ディメンション、キューブ、メジャーを作成できます。またこの際、マッピングを含むかどうかを選択できます。 テンプレートにデータは含まれておらず、オブジェクト定義だけが含まれています。

テンプレートを使用すると、次を実行できるようになります。

ソース管理システムへのオブジェクト定義の配置

ここでは、あらかじめ保存されたテンプレートを使用して、GEOGRAPHY、PRODUCT、TIMEという3つのディメンションを作成します。 次の手順を実行します。

1.

Dimensions」フォルダを右クリックして、「Create Dimension From Template」を選択します。

 

2.

Create Dimensions From Templateダイアログ・ボックスで、olaptrainテンプレート・ファイルをインストールした\templatesディレクトリへ移動します。

例: c:<your_path>\templates

templatesディレクトリから「GEOGRAPHY.XML」を選択し、「Create」をクリックします。

 

3.

Dimensionsフォルダに、新しいGEOGRAPHYディメンションが表示されます。 「Levels」、「Hierarchies」、「Attributes」をドリルして、それぞれの要素を表示します。

 

4.

PRODUCTディメンションを作成するには、ステップ1と同様に「Dimensions」フォルダを右クリックして、「Create Dimension From Template」を選択します。

5.

Create Dimension From Templateダイアログ・ボックスで「PRODUCT.XML」ファイルを選択し、「Create」をクリックします。

 

6.

Dimensionsフォルダに、新しいPRODUCTディメンションが表示されます。

 

7.

次に、TIMEディメンションを作成します。「Dimensions」フォルダを右クリックして、「Create Dimension From Template」を選択します。

8.

Create Dimension From Templateダイアログ・ボックスで「TIME.XML」ファイルを選択し、「Create」をクリックします。

結果: Dimensionsフォルダに、新しいTIMEディメンションが表示されます。

 

9.

ナビゲータで、「TIME」→「Attributes」の順にドリルします。

TIMEディメンションには、END_DATEとTIME_SPANという2つの特別な属性が作成されていることに注意します。 このディメンションは"Time"タイプとして定義されているため、これらの属性は自動的に作成されます。 特定のOLAP時系列分析機能を有効化するには、これらの属性を適切なソース・データ列にマッピングする必要があります。 これらの属性は、このチュートリアルの後半で時系列計算式を作成する際に使用します。

 

10.

Geography、Product、Timeの3つのテンプレートのすべてにマッピングが含まれています。 Timeディメンションのマッピングを表示するには、ナビゲータ内でTIMEの下の「Mappings」をクリックします。

その他の場合と同様、"All/Total"階層レベルは定数または1行のSQL関数にマッピングされています。

ナビゲータでディメンション・ノードのMappingsタブをクリックすると、それぞれのディメンションのマッピングを確認できます。

 

トピック・リストに戻る

Oracle OLAPでは、キューブが同じディメンションを使用するメジャーを収集するための便利な手段を提供します。 つまりキューブは、管理者によるAWの構築および保守を支援するオブジェクトに過ぎません。

キューブを利用すると、共通の特性を持つメジャーの定義が簡単になります。次にその例を挙げます。

たとえば、境界としてチャネル、地理、製品、期間というディメンション値を持ち、中身として売上(ドル)、売上個数、売上と販売数量に基づく計算済み範囲メジャーを含むキューブを使用して、売上データを体系化することができます。

各種の売上メジャーの体系化に使用されるキューブを作成するには、次の手順を実行します。

1.

Cubes」フォルダを右クリックして、「Create Cube」を選択します。

 

2.

Create CubeウィンドウのGeneralタブで、次の情報を指定します。

a. Name: SALES_CUBE

b. 「>」Addアイコンを使用して、次の順番にディメンションを移動します。

  • CHANNEL
  • TIME
  • GEOGRAPHY
  • PRODUCT

結果: Create Cubeウィンドウは、次のようになります。

注: キューブ内に表示されるディメンションの順番によってディスク上にデータが保存される方法が決定されるため、パフォーマンスにも影響が及びます。 一般には、キューブ内の最初のディメンションにディメンション・メンバー数のもっとも少ないものを指定し、最後のディメンションにはメンバー数のもっとも多いものを指定します。 これは、OLAPTRAINスキーマにも当てはまります。

 

3.

Storage」タブを選択します。 次に示すとおり、デフォルトで選択されているUse compressionをそのままにし、すべてのディメンションに対してSparseオプションを有効化します。

注:

  • スパース性とは何でしょうか。 キューブ内に空白のセルが多数含まれる場合、このキューブは"スパース"であると言われます。 このような状況は、ディメンション・データ・モデルでは非常によく見られます。 もっとも一般的なのは、すべてのディメンションがスパースとしてマークされているケースです。 1つ以上のディメンションにスパース・マークが付けられている場合、OLAPはこのキューブに対して、自動的にスパース性を管理する特別な索引を作成します。
  • キューブのサイズを大幅に削減し、データ・ロードと問合せの両方のパフォーマンスを向上するため、圧縮機能が使用されます。 ほとんどのディメンション・データはスパースであるため、圧縮オプションはデフォルトで選択されています。

 

4.

Aggregation」タブを選択します。 次に示すとおり、Precomputeサブタブで、Cost-based aggregationの値に30を指定します。

注:

  • コスト・ベースの集計はOracle Database 11g OLAPの新機能です。 キューブに対して圧縮オプションを選択している場合、この機能を使用できます。 パーセント値を指定すると、その入力値に基づいて、もっともコストのかかる集計値がデータベースによって事前に計算され、保存されます。
  • 値に30を指定すると、デフォルト設定(20)よりも大きい割合のキューブ・データが集計され、保存されます。

 

5.

Partitioningタブで、「Partition cube」オプションを選択します (Dimensionオプション、Hierarchyオプション、Levelオプションが有効化されます)。

次に、以下の値を選択して、Timeディメンションを年次レベルでパーティション化します。

a)Dimension = TIME

b)Hierarchy = CALENDAR

c)Level = CALENDAR_YEAR

 

6.

Create Cubeダイアログ・ボックスの最下部で、「Create」をクリックします。

結果: ナビゲータのCubesの下に、SALES_CUBEノードが表示されます。

 

トピック・リストに戻る

キューブ内には、ストアド(またはベース)メジャーと計算済みメジャーの2種類のメジャーを作成できます。 特定のキューブに属するすべてのメジャーは、そのキューブに定義された特性を共有します。

ストアド・メジャー

ベース・メジャーには、ビジネスに関して収集された事実が格納されます。 OLAPデータ・モデルにベース・メジャーを作成したら、ディメンションの場合と同様に、ソース・データに対してマッピングします。

計算済みメジャー

Oracle OLAPテクノロジーの強力な機能の1つが、データベースに保存されているデータの計算値を簡単かつ効率的に生成する機能です。 どのようなOLAP実装であっても、計算済みメジャーの数がストアド・メジャーの数を大幅に上回ります。

OLAPの計算済みメジャーは、ベース・メジャーまたはその他の計算済みメジャーから導き出されます。これらは、ユーザーがデータを問い合わせたときに動的に計算されます。 計算式はキューブ・ビューの列として自動的に公開されるため、ユーザーはごく単純なSQLを使用して、豊富な分析機能を非常に簡単に利用できるようになります。

AWMでは、グラフィカルなCalculation Builderを使用して、非常に簡単に計算済みメジャーを定義できます。 Calculation Builderには、一般的な多くのビジネス計算タイプに対して複数のサンプルが事前に定義されています。 計算タイプを選択してサンプルを変更するだけで、必要とする的確な計算式を作成できます。

ここでは、2個のストアド・メジャーと10個の計算済みメジャーを作成します。 3個の計算済みメジャーにはCalculation Builderを使用し、7個の計算済みメジャーにはXMLテンプレート・ファイルを使用して作成します。

1.

ナビゲータで、「SALES_CUBE」をドリルします。 「Measures」フォルダを右クリックして、「Create Measure」を選択します。

 

2.

Create Measureダイアログで、NameにSALESを入力し、「Create」をクリックします。

 

3.

ステップ1、2と同じ方法で、2つ目のメジャーQUANTITYを作成します。

ナビゲータで、「Measures」をドリルします。 次の画面が表示されます。

 

4.

ナビゲータで「Calculated Measures」フォルダを右クリックして、「Create Calculated Measure」を選択します。

 

5.

Create Calculated Measureウィンドウで、次の内容を入力または選択します。

a)Name = SALES_YTD(Nameフィールドの入力は自動的に大文字になります。LabelフィールドとDescriptionフィールドは自動的に入力されます。)

b)Calculation Type = Period to Date

c)Calculationセクションで、次の内容を選択します。

  • 最初のハイパーリンク = Ancestor At Level

    結果: Ancestor At Levelハイパーリンクの隣に新しいハイパーリンクが表示されます。

  • 2番目のハイパーリンク = TIME.CALENDAR_YEAR

結果: Create Calculated Measureウィンドウは、次のようになります。

d)「Create」をクリックします。

 

6.

Calculated Measures」ノードをドリルします。 結果: SALES_YTD計算済みメジャーが表示されます。

 

7.

前年度の売上累計に対する計算済みメジャーを作成します。 こうすることで、前年に対する比較が容易になります。

Calculated Measures」フォルダをもう一度右クリックして、「Create Calculated Measure」を選択します。Create Calculated Measureウィンドウで、次の内容を入力または選択します。

a)Name = SALES_YTD_PY

b)すべてのLabelおよびDescriptionフィールド = Sales Ytd Pr Year

c)Calculation Type = Parallel Period

d)Calculationセクションで、次の内容を選択します。

  • SALES」ハイパーリンク(2番目のハイパーリンク)をクリックします。

結果: Select Measureウィンドウが表示されます。

  • 次に示すとおり「SALES_YTD」を選択し、「OK」をクリックします。

    結果: Calculationセクションに、選択したメジャーが表示されます。

  • 次に示すとおり、「TIME.CALENDAR.ALL_YEARS」ハイパーリンクをクリックし、リストから「TIME.CALENDAR. CALENDAR_YEAR」を選択します。

e)「Create」をクリックします。

結果: ナビゲータのCalculated Measuresノードの下にSALES_YTD_PY計算済みメジャーが表示されます。

 

8.

売上累計の対前年度比を計算する3番目のメジャーを作成します。 「Calculated Measures」フォルダを右クリックして、「Create Calculated Measure」を選択します。

9.

Create Calculated Measureウィンドウで、次の内容を入力または選択します。

a)Name = SALES_YTD_PY_PCT_CHG

b)すべてのLabelおよびDescriptionフィールド = Sales Ytd Pr Yr Pct Chg

c)Calculation Type = Percent Difference From Parallel Period

d)Calculationセクションで、「SALES」ハイパーリンクをクリックします。

e)Select Measureウィンドウで「SALES_YTD」を選択し、「OK」をクリックします。

f)「TIME.CALENDAR.ALL_YEARS」ハイパーリンクをクリックし、リストから「TIME.CALENDAR. CALENDAR_YEAR」を選択します。

Calculationセクションは次のようになります。

g)Expressionフィールドで、式の初めの部分に次の構文を追加して100を掛けます。 100 *

計算式は次のようになります。

注: 追加の構文によって、計算値が100分率の整数として表示されます。

h)「Create」をクリックします。

結果: Sales Cubeに追加したメジャーが表示されます。

 

10.

次に、XMLテンプレートを使用して計算済みメジャーを作成します。 「Calculated Measures」フォルダを右クリックして、「Create Calculated Measure From Template」を選択します。

 

11.

Create Calculated Measure From Templateウィンドウで、次の手順を実行します。

a. olaptrainテンプレート・ファイルをインストールした...\templates\calcsディレクトリへ移動します。

例: c:<your_path>\templates\calcs

b. 「SALES_PY.XML」を選択します。

c. 「Create」をクリックします。

結果: 新しい計算済みメジャーがナビゲータに表示されます。


12.

ナビゲータで、新しい計算済みメジャーを選択します。

結果: 次に示すとおり、Sales Prior Year計算メジャーの定義が右側のペインに表示されます。


13.

ステップ10、11を繰り返し、次のXMLファイルを使用してさらに8個の計算済みメジャーを作成します。

  • SALES_PY_PCT_CHG.XML
  • SALES_PP.XML
  • SALES_PP_PCT_CHG.XML
  • SALES_ RANK_PROD_LVL.XML
  • SALES_ RANK_PROD_PRNT.XML
  • SALES_SHARE_PRNT_PROD.XML
  • SALES_SHARE_TOT_PROD.XML
  • HOW_IS_SALES_YTD.XML

 

14.

ナビゲータで「Calculated Measures」ノードを選択し、キューブに含まれる計算済みメジャーのリストを表示します。

すべてのメジャーが作成されました。

 

15.

次のように、ナビゲータで「How Is Sales Ytd」計算済みメジャーをクリックし、計算の定義を表示します。

注:

  • Calculation TypeにExpressionが指定されています。 この特別な計算タイプを使用すると、OLAPデータ・モデルの開発者がExpressionボックスに適切なOLAP計算構文を入力することで、カスタム計算式を作成できます。
  • この例では構文に"CASE"文が含まれており、一連の条件を評価して条件に一致する最初の式が返されます。 CASE文は、現在の売上累計を前年度と比較して実績を評価したテキスト値を返すように設計されています。
  • このメジャーやその他の計算メジャーは、このチュートリアルの後半で使用します。
  • OLAPでの計算の詳細については、Oracle University提供のinClassコースOracle Database 11g: OLAP Essentialsが提供されています。 このコースについて、詳しくはこのチュートリアルの最後にある追加情報を参照してください。

 

トピック・リストに戻る

OLAPキューブを作成したら、これをOracle Databaseのリレーショナル・データソースにマッピングします。 キューブをマッピングするには、適切なソース・データ列をドラッグして、OLAPキューブ要素の対象フィールドにドラッグします。

ここでマッピングするのは次のフィールドです。

後でMaintain Analytic Workspaceウィザードを使用して、アナリティック・ワークスペースにデータをロードします。

1.

SALES_CUBEの下の「Mappings」ノードをクリックします。

Table Mapping Viewが有効化されていることを確認します。

 

2.

Schemaペインで、「OLAPTRAIN」→「Tables」の順にドリルします。

 

3.

次の表を見つけて使用します。

  • SALES_FACT
  • CHANNELS
  • CUSTOMERS
  • PRODUCTS
  • TIMES

次のイメージに示すとおり、それぞれのソース表から適切な列をドラッグし、関連するSALES_CUBEのSource Columnフィールドにドロップします。

注: 各ディメンションに含まれるJoin Conditionをマッピングするには、次の手順を実行します。

  • まず、ファクト表からSource Columnフィールドに外部キー列をドラッグします。
  • 次に、ディメンション表からSource Columnフィールドにプライマリ・キー列をドラッグします。
  • Source Columnフィールドに2番目の列をドラッグすると、等号("=")が自動的に挿入されます。

マッピングが完了すると、Source Columnフィールドは次のようになります。

 

4.

Apply」をクリックします。

 

トピック・リストに戻る

キューブMVに対するクエリー・リライトの有効化(省略可能)

Oracle Database 11gでは、マテリアライズド・ビューの拡張機能として、OLAPキューブをキューブ化されたマテリアライズド・ビュー(キューブMV)として表すことができます。 SQLのサマリー・リクエストを満たすために既存のキューブMVが使用でき、また使用すべきである場合、問合せオプティマイザは自動的にこれを認識します。 キューブMVはかなりの大きさのサマリー領域に相当するため、管理の簡素化だけでなく、問合せパフォーマンスの向上というメリットが得られます。

OLAPシステムの要件に、SQLベースの既存BIアプリケーションでのサマリー管理が含まれていない場合、このオプション・タスクをスキップして構いません。

注:

OLAPキューブに対してクエリー・リライトとMVリフレッシュを有効化するには、次の手順を実行します。

1.

ナビゲータで、「SALES_CUBE」をクリックします。

 

2.

右側のペインで、「Materialized Views」タブをクリックし、次のオプションを選択します。

  • Enable Materialized View Refresh of the Cube
  • Enable Query Rewrite

注:

MVのリフレッシュ

  • MVリフレッシュの有効化を選択したら、このキューブに対してのリフレッシュ方法とリフレッシュ・モードを指定します。 キューブMVのリフレッシュ方法には、Complete、Force、Fastがあります。
  • デフォルトのリフレッシュ・モードはOn Demandです。

クエリー・リライト

  • クエリー・リライトの有効化を選択すると、Applyをクリックした時点で、データベースによってこの機能をサポートするキューブMVオブジェクトが自動的に作成されます。
  • キューブに対するクエリー・リライトが有効化されると、関連付けられたディメンションに対するMVリフレッシュも自動的に有効化されます。

 

3.

その他のオプションをデフォルト値のままにして、「Apply」をクリックします。

結果: 次の情報ボックスが表示されます。

情報ボックスが閉じると、キューブMVが有効化され、マテリアライズド・ビュー・サブシステムによって使用できるようになります。

注: クエリー・リライトとキューブMVの有効化およびトラブルシューティングについて、詳しくはこちらのホワイト・ペーパーを参照してください。

トピック・リストに戻る


Maintenance Wizardを使用すると、1つのステップでデータのロードと集計を実行できます。 ロードは、アナリティック・ワークスペースに含まれるすべてのマッピング済みオブジェクトに対しても、個別のディメンションやメジャーに対しても実行できます。 また、ジョブをすぐに実行するか、Oracleのジョブ・キューに入れるか、またはSQLスクリプトとして保存するかを選択できます。

デフォルトでは、キューブにデータをロードすると、そのキューブのディメンションに対する処理も実行されます。 ディメンション・データをすでにロードしている場合、メジャー・データのみをロードするよう指定することもできます。

次の手順では、キューブにすべてのデータをロードし、ジョブを直ちに実行します。 その後、AWMを使用してデータを表示します。

1.

ナビゲータで、「SALES_CUBE」を右クリックし、「Maintain Cube SALES_CUBE」を選択します。

 

2.

Maintenance Wizardで、「Finish」をクリックしてロード・プロセスを開始します。

注: デフォルト・オプションが適用され、すべてのキューブ・オブジェクトが直ちに構築されます。

結果: 次の情報ボックスが表示されます。

 

3.

構築が完了すると、Build Logウィンドウが表示されます。

Build Logで右にスクロールしてから下にスクロールすると、それぞれのキューブ・パーティションがどのように処理されたかが分かります。 Build Logを確認したら、「Close」をクリックします。

注: ナビゲータで「Reports」ノードをクリックすると、参照可能なログがいくつか表示されます。

 

5.

AWMを使用してOLAPデータを表示できます。

ナビゲータで「SALES」メジャーを右クリックし、メニューから「View Data SALES」を選択します。

結果: デフォルトのディメンション・メンバーの売上データがクロス集計とグラフに表示されます。

 

6.

Data Viewerで、「All Years」をドリルします。 次のデータがクロス集計に表示されます。

注: 暦年2008年のデータはリレーショナル・スキーマに保存されていないため、CY2008は空白になっています。 CY2008という期間はOLAPデータ・モデルに構築されているため、後続のデータ・ロード時に新しいデータが自動的に更新されます。

 

7.

Fileメニューから「Query Builder」ツールをクリックします。

 

8.

Itemsタブで、次の手順を実行します。

a)「Sales Pr Year」と「Sales Pr Year Pct Chg」を選択します。

b)「>」Add Selected Itemsボタンをクリックして、これら2つのメジャーをSelectedリストへ移動します。

 

9.

Layout」タブをクリックします。 Layoutタブで、適切なディメンション・タイルをドラッグし、正しい軸にドロップします。レイアウトは次のようになります。

 

10.

Dimensions」タブをクリックします。 Dimensionsタブで、次の手順を実行します。

a)Chooseドロップダウン・リストから「Time」ディメンションを選択します。

b)「<<」Remove All Itemsボタンをクリックして、Selectedリストから削除します。

c)AvailableリストのMembersタブで、「All Years」→「CY2007」の順にドリルします。

d)次のとおり、CY2007の4つの四半期すべてを選択します。

e)次のとおり、「>」Add Itemsボタンをクリックして、2007年の四半期をSelectedリストへ移動します。

f)Chooseドロップダウン・リストから「Product」を選択します。

g)「Remove All Items」ボタンをクリックし、Availableリストで「All Products」をドリルします。 最後に、次のとおりに3つの製品部門メンバーを選択します。

h)「Add Items」ボタンをクリックして、部門メンバーをSelectedリストへ移動します。

i)「OK」をクリックして、データを表示します。

 

11.

Productディメンション・ヘッダーから、いずれかのメンバーを選択します。 即座に計算値が更新されます。

2007年のいずれかの四半期値をドリルすると、月次レベルでデータが表示されます。

レポートを試し終わったら、2007年の4つの四半期のみが表示されるように、Timeディメンションのドリルをすべて閉じます。

 

12.

次に、今年度の累計分析レポートに対するData Viewerを変更します。

まず、Hide/Showツールの下矢印をクリックしてグラフを非表示にします。

 

13.

次に、「Query Builder」ツールをクリックし、Itemsタブで次の手順を実行します。

a)Selectedリストで、「Sales Pr Year」と「Sales Pr Year Pct Chg」を選択します。

b)「<」Remove Selected Itemsボタンをクリックします。

c)Availableリストで、「Sales Ytd」、「Sales Ytd Pr Year Pct Chg」、「How Is Sales Ytd」を選択します。

b)「>」Add Selected Itemsボタンをクリックします。

結果: Selectedリストに今年度累計メジャーが追加されました。

 

14.

Layoutタブで、ProductディメンションとTimeディメンションを入れ替え、次のようにProductが行を表す軸に、TimeがPage Itemsの軸に表示されるようにします。

 

15.

OK」をクリックし、データを表示します。

計算済みメジャーによって次のデータが表示されています。

  • 今年度売上累計(ここではQ1-CY2007が選択されているため、売上と同じ値になっています)
  • 今期(2007年第1四半期)の売上累計を前年(2006年第1四半期)の売上累計と比較した場合の変化率
  • 売上累計の変化率を、"Needs Improvement"、"On Track"、または"Outstanding"のいずれかで評価したテキスト値( この結果を生成している計算済みメジャーで、条件付きCASE文が使用されていたことを思い出してください)

 

16.

次のとおりに、Timeディメンション・ヘッダーから「Q2-CY2007」を選択します。

結果: ストアド・データと計算済みデータが正しい値で更新されます。

 

17.

Timeディメンション・ヘッダーから「Q4-CY2007」を選択します。

新しく問合せを実行されたデータが、How Is Sales Ytdメジャーに正しく反映されています。

 

18.

Computers」をドリルします。

現在の選択値を反映するように、再度、今年度の成績が自動的に更新されます。

 

19.

最後に、製品ランクおよびシェアのレポートに対してData Viewerを変更します。

-まず、Productディメンションのドリルを閉じ、3つの製品部門のみを表示します。

-次に、Timeディメンション・ヘッダーから「Q1-CY2007」を選択します。

Query Builder」ツールをクリックします。

 

20.

Itemsタブで、次の手順を実行します。

a)Selectedリストで、「Sales Ytd」、「Sales Ytd Pr Year Pct Chg」、「How Is Sales Ytd」を選択します。

b)「<」Remove Selected Itemsボタンをクリックします。

c)Availableリストで、「Sales Rank In Prod Prnt」と「Sales Share Prnt Prod」を選択します。

d)「>」Add Selected Itemsボタンをクリックします。

結果: Selectedリストにランク・メジャーとシェア・メジャーが追加されました。

21.

OK」をクリックし、データを表示します。

計算済みメジャーによって次のデータが表示されています。

  • 親階層内での各Productディメンショ・メンバーのランク
  • 親階層内での各Productメンバーのシェア(そのメンバーによる売上の割合)

 

22.

Computers」をドリルします。

Computer部門に含まれるそれぞれのProduct部署メンバーに対して、相対的な貢献ランクとシェアがランク・メジャーとシェア・メジャーに表示されています。

 

23.

Page Items軸からいずれかのTimeメンバーを選択すると、計算値が即座に更新されます。

その他のディメンション・メンバーをドリルしたり選択したりして、自由にレポートを変更してみてください。

終了したら、Measure Data Viewerを閉じます。


24.

SQLベースの任意のツールを使用して、OLAPデータに対する多次元分析や非定型分析を実行することもできます。 Oracle OLAPによって自動的に作成および維持されている一連のリレーショナル・ビューを通じて、Oracle OLAPデータにSQLから直接アクセスすることができます。 これらのキューブ・ビューに対して単純なSQL文を実行するだけで、OLAPデータに対する問合せを実行できます。

SALES_CUBE_VIEW」(SALES_CUBE用に作成されたビュー)をクリックし、このビューの情報とデータを表示します。

Oracle OLAPでは、それぞれのキューブとディメンションに対してビューが作成および維持されます。 OLAPキューブはこれらのビューにより、次の特徴を備えたスター・スキーマとして表現されます。

  • 1つのキューブ・ビューが1つのファクト表の役割を果たします
  • ディメンション・ビューと階層ビューは、ディメンション表の役割を果たします(ディメンション・ビューと階層ビューは、OLAPデータ・モデル内の各ディメンションに対して作成および維持されます)

OLAPキューブに対するSQLアクセスについては別のチュートリアルで説明されていますが、先ほど作成したキューブに対するSQL問合せの例を次に示します。

 

25.

次の例では、SQL問合せの作成にOracle SQL Developerが使用されています。

このSQL文(説明はコメント部分を参照)は、ステップ21でAWMを使用して選択したデータと同じデータに対する問合せを実行します。

注: SQL DeveloperはOracle Databaseに無償で同梱されています。

 

26.

上の問合せを実行すると、ステップ21で返されたデータと同じデータが出力として表示されます。

SQLを使用してOLAPデータへの問合せを実行する方法について、詳しくはOBEレッスンの『Querying OLAP 11g Cubes』を参照してください。

 

トピック・リストに戻る

OLAPに関連するトレーニングについての情報は、次のリンクから参照してください。

Oracle Database 11g: OLAP Essentials(Oracle UniversityのinClassコース)

Querying OLAP 11g Cubes』(OBE)

Using Oracle OLAP 11g With Oracle BI Enterprise Edition』(OBE)
Creating Interactive APEX Reports Over OLAP 11g Cubes』(OBE)

トピック・リストに戻る