集計表の作成とモデリング

このチュートリアルでは、Aggregate Persistence Wizardを使用して集計表を作成およびモデリングし、頻繁にアクセスされるメジャー集計を事前に計算して、問合せのパフォーマンスを向上させる方法を説明します。

約1時間

トピック

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

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

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

概要

このチュートリアルでは、Aggregate Persistence Wizardを使用して集計表を作成し、モデリングする方法を説明します。 データウェアハウスのパフォーマンスのボトルネックは、ほとんどの場合、実行時にメジャー集計(ディメンション階層の異なるレベルにおけるオーダーの合計処理など)が実行されることが原因です。 データウェアハウスに組み込むために集計表の候補を識別したら、Aggregate Persistence Wizardを使用して、ボトルネックを解消するために集計を作成し、モデリングします。また、問合せのレスポンスを向上させるためにデータを事前に計算し、集計表に格納します。

Aggregate Persistence Wizardを使用して集計を作成する場合、メジャー、ディメンション、および階層の完全なセットを含む、完全に機能するビジネス・モデルをもつことが重要です。 そのために、ウィザードで表を構築する前に、求められる集計セットの概念設計を紙に書き出してみてください。 概念設計には、集計スターのセット(名前で記述)、各スターのファクトのセット、およびそれぞれのディメンションと粒度を含める必要があります。 また、集計がデプロイされるデータベースも決定する必要があります。 これは通常、集計される元表の含まれている既存のデータベースになります。 ただし、表は異なるデータベースに配置することも可能です。 論理設計の詳細と物理設計の詳細のためのこれらの最低要件は、Aggregate Persistence Wizardを使用した表の作成において十分なものです。

トピック・リストに戻る

前提条件

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

1.

Oracle Database 10g(バージョン10.2を推奨)にアクセスできるか、インストール済みであること。

 

2.

サンプル・スキーマにアクセスできるか、インストール済みであること。

この例では、Oracle Database 10gに含まれているSHスキーマを使用します。

OBEチュートリアル『Installing the Sample Schemas and Establishing a Database Connection』の手順に従って、スキーマをインストールすることも可能です。

 

3. Oracle Business Intelligence Enterprise Edition(Oracle BI EE)10.1.3.xにアクセスできる、またはインストール済みであること。
4. Oracle BI Schedulerが設定済みであること。
5.

次の手順により、売上履歴(SH.rpd)のリポジトリが設定されていること。

  1. スタート」→「すべてのプログラム」→「管理ツール」→「サービス」をクリックします。
  2. サービス・ダイアログ・ボックスで、「Oracle BI Presentation Server」を選択し、「操作」→「停止」を選択してサービスを停止します。 Oracle BI Serverも停止します。 これらのサービスを停止する順番は前後しても構いません。
  3. <InstallDrive>の下にSetupFilesというディレクトリを作成します。 SH.zipファイルをここからダウンロードし、SetupFilesディレクトリにコピーして、解凍します。
  4. Windows Explorerを使用して、SetupFilesフォルダへ移動し、shフォルダとその内容を<InstallDrive>:\OracleBIData\web\catalogにコピーします。 この操作は、Sales Historyコンテンツに対応するOracle BI Presentation Catalogのバックアップです。
  5. メモ帳で<InstallDrive>:\OracleBIData\web\config\instanceconfig.xmlを開き、CatalogPathセクションを編集して、先ほどコピーしたディレクトリを指定します(以下のスクリーンショットを参照)。 パスには、<InstallDrive>:/OracleBIData/web/catalog/shを指定します。



  6. SetupFilesディレクトリへ移動し、sh.rpd<InstallDrive>:\OracleBI\server\Repositoryにコピーします。
  7. メモ帳で<InstallDrive>:\OracleBI\server\Config\NQSConfig.iniを開き、リポジトリ名を編集して、先ほどコピーしたsh.rpdリポジトリを指定します。 Repositoryセクションで、"Star"の前に#を入力し、ほかのリポジトリ名のエントリをコメント・アウトします。 次に、このエントリの下に新しい行を作成し、Star = sh.rpd, DEFAULT;と入力してリポジトリを指すようにします(以下のスクリーンショットを参照)。



    注:NQSConfig.iniは、起動時にOracle Business Intelligence Server(Oracle BI Server)によって読み取られる初期化ファイルです。 このファイルには、サーバーの設定と動作を制御する多くのパラメータが含まれます。 この手順では、sh.rpdメタデータ・リポジトリの読取りをサーバーに通知するパラメータを設定しました。

注:このチュートリアルのスクリーンショットは、Windows XP環境のものです。 したがって、ほかのWindows環境を使用している場合、スタート・メニューのオプションが若干異なる場合があります。

トピック・リストに戻る

 

Aggregate Persistence Wizardの使用

このトピックでは、問合せのボトルネックを解決するための集計の作成とモデリングを通じて、Aggregate Persistence Wizardの役割と機能を理解します。

集計表は、事前に計算された結果を格納します。これは、ディメンション属性のセットに対して集計(通常は合計)されたメジャーのことです。 集計表の使用は、意思決定支援システムにおける問合せの応答時間を短縮する方法としてよく知られています。 これにより、実行時に計算する必要がなくなり、ユーザーへ迅速に結果を提供できます。 計算は事前に実行され、その結果は表内に格納されます。 集計表は非集計表よりも行が少ないため、処理はより速くなります。

Oracle BI Serverの集計ナビゲーション機能は、問合せの作成者またはツールが問合せ内の集計表を指定することなく、問合せが集計表に格納された情報を自動的に使用できるようにします。 Oracle BI Serverは、ユーザーが業務上の質問に専念できる環境を提供します。これは、もっとも速く回答を提供する表をサーバーが決定するからです。 Oracle BI Serverが集計表へナビゲートするのに必要な情報を十分に提供するため、リポジトリに特定のメタデータを正しく構成する必要があります。

Oracle BI Serverの問合せのために集計を作成する従来の手順は、手動によるものです。 従来の手順で、関連するデータベースで表を作成するためには、複雑なデータ定義言語(DDL)スクリプトとデータ操作言語(DML)スクリプトの使用が求められる面倒な作業をおこなう必要があります。 さらに、これらの集計表を問合せで利用するには、リポジトリ・メタデータにマッピングする必要があります。 これは時間がかかるうえに、エラーが発生しやすくなります。

Aggregate Persistence Wizardを使用することで、物理集計表、およびレポジトリの関連するオブジェクトの作成が自動化されます。 Aggregate Persistence Wizardは、Oracle BI Enterprise EditionのSQLスクリプトを作成します。このスクリプトは、Oracle BI Serverにより実行されます。 スクリプトは、作成される各集計表、必要なビジネス・モデルからのファクト、およびそのディメンションと粒度を指定します。 Oracle BI ServerがAggregate PersistenceのSQLスクリプトを実行すると、スクリプトは、必要な表をターゲット・データベースに作成するためのDDL、関連する物理メタデータと集計ナビゲーション・メタデータを生成するための内部命令、および元表からデータをロードし、集計表に集めるためのDMLを生成します。 Aggregate Persistenceのスクリプトは、元表の各抽出、変換、およびロード(ETL)後(通常は夜)に実行されるように意図されています。 これは、Oracle BI EEのJob Managerジョブにより実行できます。.batファイル、またはカスタム・プログラムと呼ばれるそのほかのスクリプトとして実行することも可能です。

このトピックでは、Aggregate Persistence Wizardを使用して、問合せのパフォーマンスを向上させるために集計表を作成し、モデリングします。

集計スターの概念設計には、以下の特性が含まれています。

元ファクト表:SalesFacts

メジャー ディメンション/粒度 ソース・データベース
“Amount Sold”、“Unit Cost”、“Gross Profit”など多数

ProductsDim/”Products Detail”

ChannelsDim/”Channels Detail”

PromotionsDim/”Promotions Detail”

TimesDim/”Times Detail”

CustomersDim/”Customers Detail”

orcl/SH

集計ファクト表:ag_Salesfacts

メジャー ディメンション/粒度 ソース・データベース
“Amount Sold”

ProductsDim/Category

ChannelsDim/NA

PromotionsDim/NA

TimesDim/”Times Detail”

CustomersDim/”State Province”

orcl/SH(ソース・データベースと同じ)

 

集計を構築し、モデリングするには、以下の手順に従います。

専用の接続プールの作成
集計表とメタデータ・スクリプトの構築
集計作成ジョブのスケジューリング
集計とメタデータの検証
Oracle BI Answersを使用したテスト

トピック・リストに戻る

専用の接続プールを作成するには、以下の手順に従います。

1.

スタート」→「すべてのプログラム」→「Oracle Business Intelligence」→「Administration」の順に選択します。

 

2.

File」→「Open」→「offline」を選択し、<InstallDrive>:\OracleBI\server\Repositoryで「sh.rpd」を選択して、オフライン・モードでリポジトリを開きます。 ユーザー名とパスワードとしてAdministratorと入力して、「OK」をクリックします。


3.

orcl SH」データベースを右クリックして、「New Object」→「Connection Pool」を選択します。

 

4.

Connection Poolダイアログ・ボックスで、NameにAggregate Connection Poolと入力し、「OCI 10g/11g」接続タイプを選択します。データベースのTNS名を入力し、次にUser nameとPasswordにSHを入力します。「OK」をクリックします。

SHデータベース・ユーザーは、OracleデータベースにおけるSHのスキーマ所有者であることに注意してください。 集計接続プール用には、スキーマ所有者のユーザーIDを使用します。これは、接続プールが表の読取りと書込み権限に加え、作成と削除権限をもつ必要があるためです。

Aggregate Persistence Wizardは、専用の接続プールを使用してOracle BI Serverによって実行されるOracle BI EEのSQLスクリプトを作成します。 専用の接続プールが必要な理由は、エンドユーザーがデータウェアハウスに接続する際は、さらに制限された権限を使用するためです。

5.

Confirm Passwordダイアログ・ボックスで、SHをパスワードとして再入力し、「OK」をクリックします。

 

6.

File」→「Save」を選択し、変更内容を保存します。 「No」をクリックし、全体の整合性チェックを拒否します。

 

7.

File」→「Close」を選択して、リポジトリを閉じます。

 

8. サービス・ダイアログ・ボックスで、Oracle BI Presentation ServerOracle BI Serverを起動します。

トピックに戻る

 

集計表とメタデータ・スクリプトを構築するには、以下の手順を実行します。

1.

File」→「Open」→「Online」の順に選択します。 Open Online AnalyticsWebダイアログ・ボックスで、ユーザー名とパスワードとしてAdministratorと入力し、「Open」をクリックします。


2.

Tools」→「Utilities」を選択します。 Utilitiesダイアログ・ボックスで、「Aggregate Persistence Wizard」を選択してから「Execute」をクリックします。

 

3.

ウィザードの"Select file location"ウィンドウで、「Browse」をクリックし、作成するスクリプトの名前と格納する場所を指定します

Generate DDL Fileチェック・ボックスは選択しないでください。 このオプションは、データベースとリポジトリで集計表を定義する2番目のスクリプトを作成するために使用されます。ただし、このスクリプトは、表の移入はおこないません。 これは、システムの生成したデータベース表に対し粒度の高い変更を実行したいデータベース管理者にとって有用です。

 

4.

Select Scriptダイアログ・ボックスがOracle BI ServerのRepositoryディレクトリが選択された状態(デフォルト)で開かれます。 "File name"フィールドにCREATE_AGGと入力し、SQL command file (*.sql)ファイル・タイプが選択されていることを確認します。

このファイルは、集計の仕様を格納し、その後さらに集計の仕様が定められると更新されます。

 

5.

Open」をクリックして、Select Scriptダイアログ・ボックスを閉じます。

 

6.

Next」をクリックし、Select Business Model & Measuresウィンドウに進みます。ここでは、集計したいメジャーまたはファクト表を指定します。 上部のペインで、「SH」ビジネス・モデルを選択します。 この場合、これが唯一利用可能なビジネス・モデルです。 ただし、複数のビジネス・モデルが利用可能な場合も、選択できるのは1つだけです。

 

7.

下部のペインで、「Salesfact」ファクト表を展開します。 繰り返しますが、ウィザードの実行ごとに選択できるファクト表は1つだけです。 しかしながら、各集計ファクト表を構築するために、ウィザードを繰り返し利用できることに注意してください。 ウィザードにより作成されるそれ以降のSQL命令は、同じ単一のスクリプトに追加されます。

 

8.

Amount Sold」メジャーを選択します。 複数のメジャーが選択できることに注意してください。

 

9.

Next」をクリックして、Select Dimensions & Levelsウィンドウに進みます。 下記のレベルを選択し、集計表にどの詳細レベルが格納されるかを指定します Use Surrogate Keyオプションは、選択しないままにします。

ProductsDim:Category

TimesDim:Times Detail

CustomersDim:State Province

ChannelsDimディメンションとPromotionsDimディメンションは空白のままにします。

この手順では、集計表の粒度を設定します。 この粒度は、表のためのDDLと表のロードのための集計DMLを作成するために使用されます。 また、表のアクセスに使用されるOracle BIメタデータを生成するためにも使用されます。

 

10.

Next」をクリックして、"Select output Connection Pool, Container & Name"ウィンドウに進みます。 上部のペインで、「orcl SH」データベースを選択します。 2番目のペインで、「orcl SH」を展開し、「SH」カタログを選択します。 Connection Poolフィールドで「Aggregate Connection Pool」を選択します。"Aggregate table name"フィールドにデフォルトの表名ag_Salesfactsが表示されます。

接続プールは、ソース・データベースとは異なるデータベース内にあります。

 

11.

Next」をクリックして、Aggregate Definitionウィンドウに進みます。 このウィンドウは、ほかのウィザード・ウィンドウで定義されたパラメータに基づいて集計表を生成する、Oracle BI EEの論理SQLを表示します。 このスクリプトは、スターに何と名前をつけるか、どこをソースとするか、どのファクトを含めるか、およびその粒度をOracle BI Serverに伝えます。 もう1つの集計を定義することを選択した場合、もう1つの論理SQL文としてスクリプトに追加されます。 論理SQLを確認し、「I am done」を選択します。

 

12.

Next」をクリックします。 スクリプトが生成されたことを確認するためのComplete Aggregate Scriptウィンドウが表示されます。 「Finish」をクリックします。

 

13.

Windows Explorerを使用して<InstallDrive>:\OracleBI\server\Repositoryに移動し、CREATE_AGG.sqlスクリプト・ファイルが作成されたことを確認します。

 

14.

CREATE_AGG.sqlファイルを開き、delete aggregates;文をスクリプトの最初に追加します。 このスクリプトは、データベースの各ロード後に実行されるため、以前のロードによる古い集計は削除する必要があります。

 

トピックに戻る

集計の作成ジョブをスケジューリングするには、以下の手順に従います。

1.

Manage」→「Jobs」を選択します。 Job Managerウィンドウで、「File」→「Open Scheduler Connection」を選択します。

 

2.

Administrator NameフィールドとAdministrator PasswordフィールドにAdministratorと入力します。「OK」をクリックして、スケジューラに接続します。


3.

All Jobs」を選択し、「Jobs」→「Add New Job」を選択します。

 

4.

ジョブの名前としてAggregate Persistence Job、ユーザーIDとしてAdministratorを入力します。スクリプト・タイプとして「NQCmd」を選択し、Oracle BI Serverに接続するために、データソース名(DSN)としてAnalyticsWebを入力します。 最後に、集計作成スクリプトの場所(<InstallDrive>:\OracleBI\server\Repository\CREATE_AGG.sql)を指定します。

 

5.

Trigger Typeドロップダウン・リストでは、スクリプトの実行を日単位、週単位、またはそのほかの間隔で設定できることに注意してください。 「Run Now」を選択して、「OK」をクリックします。

 

6.

Job Managerで、ジョブが正しく完了したことを確認します。

 

トピックに戻る

集計とメタデータを確認するには、以下の手順に従います。

1.

集計がリポジトリのPhysicalレイヤーに作成されていることを確認します。

a.

必要な場合は、SHリポジトリをオンライン・モードで開き、Administrator/Administratorとしてログインします。

b.

Physicalレイヤーで、SHスキーマに集計が作成されたことを確認します。 Physicalレイヤーには新しいag_SalesFacts集計が1つと新しいディメンション集計が3つ作成されているはずです。

管理ツールで集計表は、赤で表示されることに注意してください。

 

c.

各集計表を右クリックし、接続性を確認するため「Update Row Count」を選択します。 次の行数が表示されていることを確認します。
ag_SalesFacts:158,142行
SA_Categor…:5行
SA_State_P…:145行
SA_Times…:1,461行

 

d.

ag_SalesFacts」をダブルクリックし、オブジェクトを確認します。次に、Physical Tableプロパティ・ダイアログ・ボックスで「Foreign Keys」タブを選択します。 ag_SalesFactsと新しいディメンション集計の間に結合が作成されていることを確認します。

 

e.

外部キーをダブルクリックし、Physical Foreign Keyダイアログ・ボックスで結合関係を確認します。 確認したら「Cancel」をクリックして、Physical Foreign Keyダイアログ・ボックスを閉じます。

 

f.

Cancel」をクリックして、Physical Table - ag_SalesFactsダイアログ・ボックスを閉じます。

 

2.

集計がリポジトリのBusiness Model and Mappingレイヤーに作成されていることを確認します。

a.

Business Model and Mappingレイヤーで、SalesFacts論理表、Customers論理表、Times論理表、およびProducts論理表の「Sources」フォルダを開き、集計のための新しい論理表ソースが作成されていることを確認します。

b.

SalesFacts論理表のSourcesフォルダで、「ag_SalesFacts」論理表ソースをダブルクリックします。 オブジェクトを確認します。

 

c.

General」タブをクリックし、ag_SalesFacts論理表ソースがag_SalesFacts物理表にマッピングされていることを確認します。

 

d.

Column Mapping」タブをクリックし、Amount Sold論理列がag_SalesFacts物理表の対応する物理列にマッピングされていることを確認します。

 

e.

Content」タブをクリックして、論理レベルが正しく設定されていることを確認します。

 

f.

Cancel」をクリックして、ag_SalesFactsのLogical Table Sourceダイアログ・ボックスを閉じます。

 

g.

Check In Changes」を選択して全体の整合性を確認します。リポジトリを保存します。

 

3.

データベースに集計が作成されていることを確認します。

a.

Internet Explorerを開き、URLとしてhttp://<machine name>:1158/emを入力してOracle Enterprise Managerを開きます。 ユーザー名とパスワードとしてSHと入力し、ログインします。

 

b.

Administration」リンクをクリックします。

 

c.

Tables」リンクをクリックします。

 

d.

スキーマ名としてSHが入力されていることを確認し、「Go」をクリックします。

 

e.

SHスキーマに新しい集計表が4つ作成されていることを確認します。

 

f.

Oracle Enterprise Managerからログアウトし、ブラウザを閉じます。

 

トピックに戻る

Oracle BI Answersをテストするには、以下の手順に従います。

1.

必要な場合は、AdministratorとしてOracle BI Answersにログインします。 「Reload Server Metadata」リンクをクリックします。

 

2.

SH」サブジェクト領域を選択し、次の問合せを作成して実行します。

Calendar Year = 2001でフィルタを設定したCustomers.Country RegionSales Facts.Amount Sold


3.

Settings」→「Administration」→「Manage Sessions」→「View Log」を選択して、問合せのログを調べます。 問合せがag_SalesFacts表、および関連する集計ディメンション表を使用していることを確認します。

 

トピックに戻る

トピック・リストに戻る

このレッスンで学習した内容は次のとおりです。

Aggregate Persistence Wizardを使用した集計表の作成とモデリング
   
   

トピック・リストに戻る

Oracle Business Intelligenceの詳細は、以下を参照してください。

OTN WebサイトのほかのOBE

トピック・リストに戻る

このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。