Oracle BI 11gのAggregate Persistence Wizardを使用した集計の作成
概要
- Oracle Database 11.2以上にアクセスできるか、インストール済みであること。
- Oracle Business Intelligence Enterprise Edition(Oracle BI EE)11.1.1.7にアクセスできるか、インストール済みであること。
- Sample rpdをダウンロードしていること(ここからダウンロードできます)。
- Sample Apps rpdがオンライン・モードで実行されていること。
目的
このチュートリアルでは、Oracle BI 11gのAggregate Persistence Wizardを使用して集計表を作成およびモデリングし、頻繁にアクセスされるメジャー集計を事前に計算して、問合せのパフォーマンスを向上させる方法を説明します。
所要時間
約30分
概要
このチュートリアルでは、Aggregate Persistence Wizardを使用して集計表を作成し、モデリングする方法を説明します。データウェアハウスのパフォーマンスのボトルネックは、ほとんどの場合、実行時にメジャー集計(ディメンション階層の異なるレベルにおけるオーダーの合計処理など)が実行されることが原因です。データウェアハウスに組み込むために集計表の候補を識別したら、Aggregate Persistence Wizardを使用して、ボトルネックを解消するために集計を作成し、モデリングします。また、問合せのレスポンスを向上させるためにデータを事前に計算し、集計表に格納します。
Aggregate Persistence Wizardを使用して集計を作成する場合、メジャー、ディメンション、および階層の完全なセットを含む、完全に機能するビジネス・モデルを持つことが重要です。そのために、ウィザードで表を構築する前に、求められる集計セットの概念設計を紙に書き出してみてください。概念設計には、集計スターのセット(名前で記述)、各スターのファクトのセット、およびそれぞれのディメンションと粒度を含める必要があります。 集計の設計に使用するため、Usage Trackingを有効にできます。Usage Trackingが有効になっている場合、Oracle Business Intelligence Server(Oracle BI Server)は、それぞれの問合せについてUsage Trackingデータを収集し、統計をデータベース表に直接挿入します。また、問合せの頻度と応答時間に基づき、パフォーマンス上のボトルネックの要因となっているユーザーの問合せを特定する際に役立ちます。Usage Trackingの設定方法については、Oracle BI 11gでのUsage Trackingの設定を参照してください。また、集計がデプロイされるデータベースも決定する必要があります。これは通常、集計される元表が含まれている既存のデータベースになります。ただし、表は異なるデータベースに配置することも可能です。論理設計の詳細と物理設計の詳細のためのこれらの最低要件は、Aggregate Persistence Wizardを使用した表の作成において十分なものです。Model Checkerを使用して、モデルにエラーがあるかどうかを確認できます。
前提条件
このチュートリアルを始める前に、以下のことを確認してください。
Oracle Databaseのデータ・スキーマ設定
- Time.T02 Per Name Month
- Products.P4 Brand
- Offices.D4 Company
- Base Facts.1-Revenue
- Base Facts.2-Billed Quantity
- Base Facts.3-Discount Amount
- Base Facts.4-Paid Amount
必要な表領域とBISAMLE_EXAユーザーを作成する(環境でパスを適切な値に置き換える)には、次のSQL文を実行します。
create tablespace BISAMPLE_EXA datafile '\home\oracle\app/oracle\oradata\orcl\bisample_exa.dbf' size 10M autoextend on default compress;
create temporary tablespace BISAMPLE_EXA_TEMP tempfile '\home\oracle\app\oracle\oradata\orcl\bisample_exa_temp.dbf' size 10M autoextend on;

create user BISAMPLE_EXA identified by BISAMPLE_EXA default tablespace BI SAMPLE_EXA temporary tablespace BISAMPLE_EXA_TEMP;
grant dba to BISAMPLE_EXA;

ここからダンプ・ファイルをコピーします。展開してデータベース・マシンにコピーします。
BISAMPLE_EXAスキーマにログインしてディレクトリ・オブジェクトを作成し、このファイルをコピーしたディレクトリをポイントします。次のSQL文を実行します。
Create or replace directory sampleapp as 'C:\bisample_exa';

Windowsコマンドを開いて、bisample_exa.dmpファイルが含まれるディレクトリに移動します。次のコマンドを使用して、ダンプをインポートします。
impdp BISAMPLE_EXA/BISAMPLE_EXA directory=sampleapp dumpfile=bisample_exa.dmp schemas=bisample_exa

インポートが完了したら、BISAMPLE_EXAスキーマにログインして、すべての表が作成、ロードされていることを確認します(表SAMP_REVENUE_Fには、500万の行が含まれます)。

AP rpdのチュートリアルSampleApp30212Aをここからダウンロードしてオンラインにします。これは、このチュートリアル用に変更されたSample Apps rpdです。チュートリアルの場合、サブジェクト・エリアB-Sample Sales Exaが使用されます。リポジトリ・パスワードとしてAdmin123を入力します。

以下を使用して問合せを作成します。
「Results」をクリックします。

問合せで結果が返される時間に注意してください。
集計の作成
-
Consistency Check Managerとは違い、Model Check Managerは一部のチェックを実行するためにバックエンド・データ・ソースにアクセスする必要があります。一部のバックエンド問合せは高コストになる可能性があるため、Model Check Managerはピーク時以外に実行することをお勧めします。
-
Model Check Managerは、オンライン・モードでのみ実行できます。
-
Model Check Managerによってリポジトリ・メタデータが変更されることはなく、問題発生の可能性がある場合にフラグが付けられるだけです。
-
Complete:Oracle BIリポジトリのBusiness Model and Mappingレイヤーの、すべてのオブジェクトがチェックされます。
-
Filtered by Statistics:統計表に従ってアクティブに問合せが行われていた、Business Model and Mappingレイヤーのファクト表オブジェクトと関連するディメンションのみがチェックされます。 このオプションを選択すると、大規模なリポジトリのプロセスが高速化します。
このオプションは、Oracle Exalytics Machineのみで使用できます。Exalytics以外のシステムを統計でフィルタしようとしたり、統計表が使用できないときにフィルタしようとしたりすると、Model Check Managerでは統計でフィルタできないことを示す警告が表示されます。
このトピックでは、問合せのボトルネックを解決するための集計の作成とモデリングを通じて、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ファイル、またはカスタム・プログラムと呼ばれるその他のスクリプトとして実行することも可能です。
デフォルトの接頭辞であるSA_が、ディメンション(レベルの)集計に自動的に追加されます。NQSConfig.INIファイルのAGGREGATE_PERSISTENCEセクションでAGGREGATE_PREFIXパラメータを次のように更新することで、このデフォルトの接頭辞を変更できます。AGGREGATE_PREFIX = "prefix_name" ;
このトピックでは、Aggregate Persistence Wizardを使用して、問合せのパフォーマンスを向上させるために集計表を作成し、モデリングします。
集計スターの概念設計には、以下の特性が含まれています。
| メジャー | ディメンション/粒度 | ソース・データベース |
|---|---|---|
| 元ファクト。“1-Revenue"、”2 - Billed Quantity"、3-Discount Amount、4-Paid Amount | Products/”P4 Brand” Time/”T02 Per Name Month" Office/"D4 Comapny"
|
BISAMPLE_EXA |
一貫性の確認の実行
Oracle BI Administration Toolで、SampleApp30212 for AP.rpdをオンライン・モードで開きます。リポジトリ・パスワードとしてAdmin123を入力します。インストール用のユーザーIDとパスワードを入力します。このチュートリアルでは、ユーザーweblogicとパスワードwelcome1を使用します。ODBCデータ・ソース名をメモします。この例ではcoreapplication_OH1291352497です。

「File」→「Check Global Consistency」をクリックします。

一貫性チェックが実行されます。

一貫性チェックが完了すると、Consistency Check Managerウィンドウが開きます。エラーがないことを確認します。Consistency Check Managerを閉じて、rpdを保存します。エラーがある場合は解消してください。

Model Checkerの実行
Model Check Managerを使用して、Aggregate Persistence Engineの正常な実行に影響する可能性がある問題のリポジトリ・メタデータを確認できます(一意でないレベル・プライマリ・キーの識別など)。
Model Check Managerを実行する際のユーザー・エクスペリエンスはConsistency Check Managerの実行と非常に似ていますが、これら2つのツールには、おもに次の3つの違いがあります。
Consistency Check Managerと同様に、Model Check Managerによってエラー・メッセージと警告メッセージの両方が返されます。Model Check Managerで特定されたエラーは修正する必要があります。修正しないと、Aggregate Persistence Engineで集計を作成できない場合があります。警告は修正することをお勧めしますが、必須ではありません。
Model Check Managerは、Aggregate Persistence Wizardを実行する直前に実行します。 または、集計作成が最初に失敗した後にModel Check Managerを実行して、選択したオブジェクトの問題を特定するという方法もあります。Model Checkerでエラーがある場合は、そのエラーが集計の構築用に選択しているディメンションと関係しないことを確認します。
このチュートリアルのrpdはSample Apps rpdの変更バージョンであるため、このチュートリアルで使用されるディメンションでModel Checkerを実行します。ディメンションでModel Check Managerを実行するには、次の手順を実行します。Business Model and Mappingレイヤーで、01-Sample App Exaビジネス・モデルの「D0 Time」ディメンションを選択します。右クリックして「Check Model」を選択します。

Model Checkerには、次の2つのオプションがあります。
「Complete」をクリックします。Model Checker Managerを完了すると、エラーがある場合は、ウィンドウにすべてのエラーが表示されます。エラーがないことを確認します。Model Checker Managerを閉じます。

同様に、ProductとOfficeのディメンションでModel Checkerを実行します。各ケースで、エラーがないことを確認します。Model Checker Managerを閉じます。
Aggregate Persistence Wizardの使用
メニュー・バーから「Tools」→「Utilities」を選択します。
Utilitiesウィンドウで、「Aggregate Persistence」を選択してから「Execute」をクリックします。Aggregate Persistence Wizardが開きます。
Aggregate PersistenceのSelect File Locationウィンドウで、SQLスクリプト・ファイルの名前をaggregate.sqlと入力します。このファイルの配置先のフォルダを入力します。「Next」をクリックします。
Aggregate PersistenceのSelect Business Measuresウィンドウで、サブジェクト・エリア「01 - Sample App Exa」を選択し、次のメジャーを表F0 Sales Base Measuresから選択します。
1-Revenue
2-Billed Quantity
3-Discount Amount
4-Paid Amount
「Next」をクリックします。
Aggregate PersistenceのSelect Levelsウィンドウで、ディメンション「H0 Time.Month」、「H1 Products.Product Brand」、および「H3 Offices.Company」を選択します。「Next」をクリックします。
Aggregate PersistenceのSelect Connection Poolウィンドウで、データベースとして「02- Sample App Exa Data(ORCL)」を選択します。Essbase(ESSB)ではなく、Oracleデータベース(ORCL)を選択していることを確認します。Catalog/Schemaで「02 - Sample App Exa Data(ORCL)」→「BISAMPLE_EXA」を選択します。Connect Poolで「Exa Sample Connection」を選択します。デフォルトの集計表名をag_BISAMPLE_EXAに変更します。「Next」をクリックします。

Aggregate PersistenceのFinishウィンドウで、スクリプトを確認します。「I am done」を選択し、「Next」をクリックします。

Aggregate PersistenceのFinish Scriptウィンドウで、スクリプトが作成され、指定したフォルダに配置されていることを確認します。「Finish」をクリックします。

「aggragate.sql」スクリプト・ファイルを編集モードで開きます。スクリプトを確認します。
コマンドラインでのnqcmdの実行
コマンド・ウィンドウを開きます。ディレクトリをc:\bi\instances\intance1\bifoundation\OracleBIApplication\coreapplications\setupに変更します。環境によっては、パスが異なります。コマンド・ウィンドウでbi-initと入力して実行します。
2番目のウィンドウが開きます。2番目のコマンド・ウィンドウのプロンプトで、次のように入力します。
nqcmd -d coreapplication_OH1291352497 -u weblogic -s c:\temp\aggregates.sql
d - 接続したいOracle BI ServerのODBCデータ・ソース名
u - ユーザー名
s - Aggregate Persistence Wizardを使用して作成したSQLスクリプト・ファイル。このチュートリアルではc:\temp\aggregate.sql

パスワードとしてwelcome1と入力して、[Enter]を押します。

Statement execute succeededというメッセージが表示されるまで待ちます。

nqcmdコマンドを実行して、Aggregate Persistence Wizardで集計を作成する作業を完了しました。
注:文の実行が失敗した場合は、nqcmdコマンドの実行前に、使用しているディメンションのデータベース、Business Modelレイヤー、およびPhysicalレイヤーに、サマリー表がないことを確認します。Delete aggregatesコマンドを使用して集計を削除できます。
集計が正しく作成されたことの確認
このセクションでは、すべての集計が正しく作成されたことを確認します。
Physicalレイヤーでの集計の確認
BI Administration Toolをオンライン・モードで閉じて開きます。Physicalレイヤーで、BISAMPLE_EXAスキーマに集計が作成されたことを確認します。集計用に選択した列が含まれる1つの新しい集計表ag_BISAMPLE_EXAがあるはずです。
Physicalレイヤーを下方向にスクロールすると、SA_で始まる3つのディメンション集計表があります。ディメンションごとに1つ選択されています。
Officesディメンション集計表から会社名を表示します。指示に従ってオブジェクトを確認します。
行数を更新してファクト集計の行数を表示します。表の行数は648です。指示に従ってオブジェクトを確認します。
すべての新しい集計の行数を更新します。行数は次のようになります。指示に従ってオブジェクトを確認します。
ag_BISAMPLE_EXA - 684行
SA_Month* - 79
SA_Product* - 9
SA_Offices* - 3
「ag_BISAMPLE_EXA」をダブルクリックして物理的なダイアログ・ボックスを開き、「Foreign Keys」タブをクリックします。ag_BISAMPLE_EXAと3つのディメンション集計の間に結合が作成されていることを確認します。
monthディメンションの外部キーをダブルクリックし、Physical Foreign Keyダイアログ・ボックスに関係を表示します。
product brandディメンションの外部キーをダブルクリックし、Physical Foreign Keyダイアログ・ボックスに関係を表示します。

同様に、Office Companyを確認できます。
Business Model and Mappingレイヤーでの集計の確認
Business Model and Mappingレイヤーで、01-Sample App Exaの「Sources」フォルダを開きます。F0 Sales Base Measuresの「Sources」フォルダを開き、02 - Sample App Exa Data (ORCL)_BISAMPLE_Exa_ag_BISAMPLE_EXAという新しい論理表が作成されていることを確認します。
D0 Timeディメンションの「Sources」フォルダを開き、01 - Sample App_Exa Data (ORCL)_BISAMPLE_EXA_SA_Monthxxxxxxxという新しい論理表が作成されていることを確認します。
D1 Products (Level Based Hier)ディメンションの「Sources」フォルダを開き、01 - Sample App Data (ORCL)_BISAMPLE_SA_Productxxxxxxxという新しい論理表が作成されていることを確認します。
D3 Officesディメンションの「Sources」フォルダを開き、02 - Sample App Exa Data (ORCL)_BISAMPLE_Exa_SA_Officesxxxxxxxという新しい論理表が作成されていることを確認します。
論理表ソース「01 - Sample App Data (ORCL)_BISAMPLE_ag_BISAMPLE」をダブルクリックします。「Check Out」をクリックします。Generalタブで、論理表ソース02 - Sample App Exa Data (ORCL)_BISAMPLE_Exa_ag_BISAMPLE_Exaが物理表02 - Sample App Exa Data (ORCL).._BISAMPLE_Exa.ag_BISAMPLE_Exaにマッピングされていることを確認します。
「Column Mapping」タブをクリックし、論理メジャー列が、物理表ag_BISAMPLE_Exaの対応する物理列にマッピングされていることを確認します。

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

「Cancel」をクリックして、Logical Table Sourceダイアログ・ボックスを閉じます。
同じ手順をD0 Time、D1 Products (Level Based Hier)、およびD3 Officesで繰り返し、Aggregate Persistence Wizardで生成された新しい論理表ソースで、論理レベルが正しく設定されていることを確認します。



すべてのダイアログ・ボックスを閉じます。注:Presentationレイヤーで必要な操作はありません。
分析を作成して集計を使用
パスワードwelcome1を使用して、Oracle BIにweblogicとしてサインインします。Analyses Editorに戻り、サブジェクト・エリアB - Sample Sales Exaに新しい分析を作成します。

サーバー・メタデータを再ロードするか、必要に応じてすべてのサービスを再起動します。

すべての選択で問合せを作成します。以下を選択します。
Time.T02 Per Name Month
Products.P4 Brand
Offices.D4 Company
Base Facts.1-Revenue
Base Facts.2-Billed Quantity
Base Facts.3-Discount Amount
Base Facts.4-Paid Amount
「Results」をクリックします。
問合せは非常に迅速に返されます。
問合せを保存できます。一番上の「Administration」リンクをクリックします。Administrationタブから「Manage Session」をクリックします。

問合せ文を調べてリクエストした列が問合せで使用されていたことを確認します。

Action列の「View Log」をクリックします。

下方向にスクロールして、問合せログを調べます。問合せで、集計表ag_BISAMPLE_EXAと関連するディメンションSA_Month、SA_ProductBrand、および集計SA_OfficesCompanyが使用されていたことを確認します。

まとめ
- カリキュラムのおもな開発者:Kasturi Shekhar
- 共著者:Alan Lee、Pravin Janardanam、Philippe Lions、Lalitha Venkataraman
このチュートリアルでは、Aggregate Persistence Wizardを使用して集計表を作成し、モデリングする方法について学習しました。
参考資料
著者
このOracle by Exampleをナビゲートする際、以下の機能を使用できます。
- ヘッダー・ボタンの非表示:
- ヘッダー内のボタンを非表示にするには、タイトルをクリックします。ボタンを再表示するには、もう一度タイトルをクリックします。
- トピック一覧ボタン:
- すべてのトピックの一覧です。いずれかのトピックをクリックすると、その項に移動します。
- すべてのトピックを開く/閉じる:
- すべての項に対する詳細を表示または非表示にします。デフォルトでは、すべてのトピックが閉じられています。
- すべてのイメージを表示/非表示:
- すべてのスクリーンショットを表示または非表示にします。デフォルトでは、すべてのイメージが表示されています。
- 印刷:
- コンテンツを印刷します。現在表示または非表示にされているコンテンツが印刷されます。
このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。