Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド 11gリリース1 (11.1.1) E51906-01 |
|
前 |
次 |
この章では、Discoverer Administratorを使用した計算定義アイテムの作成とメンテナンス方法について説明します。この章の内容は次のとおりです。
計算定義アイテムは、アイテム用のデータを導出する計算式を使用するアイテムです。
計算定義アイテムを使用すると、Discovererエンド・ユーザーはデータにビジネス計算を適用できます。たとえば、典型的なビジネス計算には次のものがあります。
利益マージン
月当たりの平均収益
予測した売上
製品の種類ごとの利益率
計算定義アイテムは(フォルダにある他のアイテムと同様に)、条件、サマリー・フォルダ、値リスト、結合および他の計算定義アイテムで使用できます。
Discovererマネージャは、計算定義アイテムを作成し、ワークブックに含めることができます。
計算定義アイテムを作成することには、次の利点があります。
Discovererエンド・ユーザーは、計算定義アイテムを選択するだけで、複雑な計算をワークシートに含めることができます。
基礎となるデータベース・テーブルで列として存在しないフォルダに新規アイテムを追加できます。
次のものが含まれる式を使用して、計算定義アイテムを作成します。
既存のアイテム
演算子
リテラル
関数
3つのタイプの計算定義アイテムがあります。
導出アイテム(詳細は、「導出アイテム」を参照)
集計計算定義アイテム(詳細は、「集計計算定義アイテム」を参照)
集計導出アイテム(詳細は、「集計導出アイテム」を参照)
次のソースからDiscovererの計算定義アイテムの詳細がわかります。
計算定義アイテムの処理例は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
関数構文の詳細は、『Oracle Database SQLリファレンス』を参照してください。
注意
2つ(またはそれ以上)のアイテムを連結する計算式を作成できます。アイテムを連結するには、アイテムの間に||CHR(10)||を挿入します。たとえば、「Calendar Year」アイテムと「Department」アイテムが含まれる新規のワークシート列を作成するには、次のような計算式を作成します。
Calendar Year||CHR(10)||Department
このアイテムが含まれるワークシートでは、「Calendar Year」と「Department」が1つの列に表示されます。
たとえば、次のようになります。
2002 Sales Department
計算定義アイテム(インターネット・アドレスが含まれるもの)を作成し、その計算定義アイテムをDiscoverer Plusで使用することにより、エンド・ユーザーはWebブラウザで事前定義のDiscoverer Viewerワークシートを起動できます(詳細は、「エンド・ユーザーが1つのワークシートからドリルアウトしてDiscoverer Viewerに他のワークシートを表示できるようにする計算定義アイテムの作成方法」を参照)。
導出アイテムは、フォルダにある他のアイテムと同様に動作する計算定義アイテムで使用される式です。導出アイテムは、軸アイテムまたはデータ・ポイントにできます。また、通常のアイテムを使用する任意の場所で使用できます。導出アイテムの値は、ワークブックに含まれる他のアイテムにかかわらず常に同じです。
導出アイテムの例を次に示します。
Sal*12+NVL(Comm,0)
: 1年間の給与+コミッションを返します
Initcap(Ename)
: Enameの頭文字を大文字にします
1
: 値1を返します
Sysdate-7
: 今日の日付から7日前の日付を返します
集計計算定義アイテムは、GROUP関数が適用される導出アイテムです(SUM、COUNT、MAX、MIN、AVG、DETAILなど。詳細は「導出アイテム」を参照)。集計計算定義アイテムの値は、ワークシートに含まれる他のアイテムによって異なります。
集計計算定義アイテムの例を次に示します。
SUM(Sal)*12
: 1年間の給与の合計を返します
SUM(Comm)/SUM(Sal)
: コミッションの合計を給与の合計で割った結果を返します
AVG(Monthly Sales)
: 毎月の売上の平均を返します
軸アイテムがどのようにグループ化されるかが、集合化された行の数に影響します。これは、2つの集計の比率を計算する場合に特に重要です。
たとえば、マージンを計算するには、Profit/SalesではなくSUM(Profit)/SUM(Sales)の計算を使用します。クエリーで使用される場合、前者はSUM(Profit/Sales)になり、SUM(Profit)/SUM(Sales)とは異なる値になります。例ではSUM集計を使用していますが、他の任意の集計にも適用可能です(SUM、COUNT、MAX、MIN、AVG、DETAILなど)。
注意: 2つのデータ・ポイントの合計の比率を計算する場合、必ずデータ・ポイントを合計してから比率を計算します。
集計計算定義アイテムを作成するときは、いくつかの制限が適用されることに注意してください。集計計算定義アイテムに適用される制限は次のとおりです。
データ・ポイントに設定されたデフォルト位置プロパティを持つこと。
ディテールに設定されたデフォルト総計プロパティを持つこと。
現在のフォルダのみにあるアイテムを参照すること。
結合では使用できません。
必須条件では使用できません。
階層では使用できません。
アイテム・クラスを保有できません。
複合フォルダの中にドラッグできません。
Discoverer Plusでこれらに適用される集計関数をさらに持つことはできません。
集計計算定義アイテムは、所属するフォルダによって参照されるデータの行数に影響を与えません。ワークシートで選択された場合にのみ、生成されたSQLに影響します。
分析関数は、ビジネス・インテリジェンス・データの分析に使用できる数学および統計に基づく高度な計算です。たとえば、次のような質問に答えるために使用します。
最もよく売れる製品は何か。
現在の売上は昨年の売上と比較してどうか。
1年の販売取引数が最大の地域での販売取引の平均額はいくらか。
分析関数は、集計計算定義アイテムとは次の点で動作が異なります。
分析関数はデータベース内で集計されます。
分析関数はメモリー・キャッシュではなくデータベース内で集計されるため、パフォーマンス・オーバーヘッドがあります。
それぞれの詳細は、次を参照してください。
分析関数と集計計算定義アイテムの両方に適用される制限の詳細は、「集計計算定義アイテムに適用される制限」を参照してください。
分析関数の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
注意: Discovererでは、Oracle Enterprise Editionデータベースのみでの分析関数の実行をサポートしています。
集計導出アイテムは、複合フォルダに含まれる集計計算定義アイテムであり、別の集計計算定義アイテム(同じ複合フォルダにあるもの)を集計します。つまり、集計導出アイテムは、別の集計計算定義アイテムの中にネストされた単なる集計計算定義アイテムです。
集計導出アイテムにより、集計(AVG、SUM、COUNTなど)を現行レベルの集計に適用し、追加の情報を導出できます。
集計導出アイテムは、あらゆる点で普通の導出アイテムと同様に動作します。詳細は、次の項目を参照してください。
この例では、ビデオ・ストア・チェーンで1年にわたって月当たりの平均売上を表示するために集計導出アイテムをどのように使用するかを説明します。この例の集計導出アイテムは、同じフォルダで作成された集計計算定義アイテムを使用しています。集計計算定義アイテムの詳細は、「集計計算定義アイテム」を参照してください。
この例は、「Video Analysis」フォルダと「Monthly Sales Analysis」フォルダという2つの複合フォルダを使用しています。これらのフォルダは、サンプル・データを使用して作成できます(詳細は、第27章「Discovererのサンプル・データEUL、データおよびワークブックのインストール」を参照)。
集計導出アイテムは、複合フォルダ「Monthly Sales Analysis」で作成されます。「Monthly Sales Analysis」複合フォルダは、「Video Analysis」複合フォルダから次のアイテムをドラッグして作成されます。
Department
Region
City
Store Name
Year
Quarter
Month
複合フォルダ「Monthly Sales Analysis」は、毎月の全店舗のデータの行を参照します。
集計計算定義アイテム(Monthly Sales Per Store)は、次の計算式を使用して「Monthly Sales Analysis」複合フォルダで作成されます。
SUM(Video Analysis.Sales)
このアイテムは、所定の店舗の所定の月の売上合計を示します。
集計導出計算定義アイテム(「Average Monthly Sales per Store」)は、次の計算式を使用して「Monthly Sales Analysis」複合フォルダで作成されます。
AVG(Monthly Sales Per Store)
このアイテムは、所定の店舗の所定の月の平均売上合計を示します。
注意
「Average Monthly Sales per Store」アイテムは平均の毎月の売上を示し、地域、四半期、年度にわたって分析できます。これは、傾向を比較するのに便利です。この形式のネストされた集計は、新規フォルダに集計計算定義アイテムを作成することによってのみ可能です。新規フォルダは、元の複合フォルダにあった個々の売上ではなく毎月の売上を表すので、集計計算定義アイテムを新規フォルダに作成する必要があります。
集計導出アイテムは、Discovererによって作成されたSQLがGROUP BY句を含むようにします。この句により、Discovererエンド・ユーザーのクエリーはクエリーでの計算の使用にかかわらず、非集計アイテムの各組合せの1行を返すようになります。これにより、行はその他のアイテムのレベルで集合化されるので、フォルダによって返される行数が少なくなります。
この作業によって、計算定義アイテム(導出アイテム、集計計算定義アイテム、集計導出アイテム)を作成できます。
新規計算定義アイテムを作成する手順は次のとおりです。
「ワークエリア」の「データ」タブで新規計算定義アイテムを含めるフォルダを選択します。
「挿入」→「アイテム」を選択して、「新規アイテム」ダイアログを表示します。
このダイアログにより、新規計算定義アイテムを作成し、選択したフォルダに追加できます。
注意: フォルダを選択しない場合、Discoverer Administratorは「新規アイテム」ダイアログを表示します。このダイアログで、新規計算を含めるフォルダを選択できます(現在開いているビジネスエリアから任意のフォルダを選択できます)。
新規計算定義アイテムの名前を指定します。
「計算」フィールドに計算式を入力します。
計算構文を扱い慣れている場合は、計算式を「計算」フィールドに入力します。
注意: 「計算」フィールドに計算式を入力する場合は、計算式の前に等号(=)を付ける必要があります。
あるいは、次の方法で計算式を段階的に作成できます。
アイテムをビジネスエリアから計算に追加するには、「アイテム」オプションをクリックして「表示」リストからアイテムを選択し、「貼付け」をクリックしてアイテムを「計算」フィールドにコピーします。
関数を計算に追加するには、「関数」オプションをクリックして「表示」リストから関数を選択し、「貼付け」をクリックして関数を「計算」フィールドにコピーします。
数学演算子を計算に含めるには、「計算」フィールドの下にある適切な演算子ボタンをクリックします。
ヒント: アイテムを「計算」フィールドに貼り付ける前に、「計算」フィールドのアイテムを挿入する場所にカーソルを置きます。
注意: 計算は、標準のOracleの構文に従います。この構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
注意: 登録されているカスタムPL/SQLファンクションは、「データベース」グループに表示されます。詳細は、「カスタムPL/SQLファンクション」を参照してください。
「計算」フィールドで詳細を指定し終えたら、「OK」をクリックします。
「計算」フィールド内にエラーがなければ、新規アイテムが作成されます。「計算」フィールドにエラーがある場合、Discoverer Administratorはまずエラーを表示し、「新規アイテム」ダイアログを表示します。これにより詳細を訂正できます。
この時点で、新規計算定義アイテムを使用し、結合や条件、さらに新規の計算も作成できます。新規計算定義アイテムを他の計算定義アイテムに含めることもできます。
計算定義アイテムのプロパティ編集の詳細は、「アイテム・プロパティの編集方法」を参照してください。
既存の計算を編集する手順は次のとおりです。
「ワークエリア」の「データ」タブで計算定義アイテムを選択し、「編集」→「編集」を選択して、「計算の編集」ダイアログを表示します。
必要に応じて計算を変更します。
たとえば、次のような変更があります。
計算の名前の変更
アイテム、関数または演算子の計算テキストへの追加または削除
「OK」をクリックし、変更内容を保存してダイアログを閉じます。
1つ以上の計算定義アイテムを削除できます。計算定義アイテムを削除する場合は、削除する計算定義アイテムを使用している他のEULオブジェクトが影響を受ける可能性があることに注意してください。「影響」ダイアログを使用すれば、計算定義アイテムの削除による影響を受ける可能性がある別のオブジェクトを確認できます。
計算定義アイテムを削除する手順は次のとおりです。
「ワークエリア」の「データ」タブで、削除する計算定義アイテムを選択します。
同時に複数のアイテムを選択するには、[Ctrl]キーを押しながら別のアイテムをクリックします。
「編集」→「削除」を選択すると、「削除の確認」ダイアログが表示されます。
(オプション)このアイテムの削除によって影響を受ける可能性があるオブジェクトを確認する手順は、次のとおりです。
「影響」をクリックして、「影響」ダイアログを表示します。
「影響」ダイアログを使用すると、アイテムの削除による影響を受ける可能性のある別のEULオブジェクトを確認できます。
注意: 「影響」ダイアログには、ファイル・システム(.dis
ファイル内)に保存されたワークブックに対する影響は表示されません。
(オプション)行を選択すると、現在の処理がEULオブジェクトに与える影響を示すテキストが、リストの一番下に表示されます。
アイテムの削除による影響を確認後、「閉じる」をクリックして、「影響」ダイアログを閉じます。
選択したアイテムを削除する場合は、「はい」をクリックします。
エンド・ユーザーがそこからドリルアウトして、Discoverer Viewerの別のワークシートで追加情報や関連情報を表示できるワークシートを作成できます。
インターネット・アドレス(URL)が含まれる計算定義アイテムをDiscoverer Administratorに作成し、それと同じアイテムをワークシートに含めることができます。エンド・ユーザーはそのアイテムをクリックして、事前定義のDiscoverer Viewerワークシートを表示できます。
エンド・ユーザーが1つのワークシート(ソース)からドリルアウトして、Discoverer Viewerに別のワークシート(ターゲット)を表示できるようにする計算定義アイテムを作成する手順は次のとおりです。
Discoverer PlusまたはDiscoverer Desktopでターゲット・ワークシートを作成し、データベースに保存します。
これが、エンド・ユーザーがソース・ワークシートからドリルアウトする先となる事前定義ワークシートです。
ワークシート作成の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
注意: 状況依存の情報(エンド・ユーザーがドリルアウトする元となるソース・ワークシートの行または列に関連する情報)をターゲット・ワークシートに表示するには、ターゲット・ワークシートでデータをフィルタ処理する方法(パラメータやページ・アイテムなど)を使用する必要があります。
Discoverer Viewerを使用して、ステップ1で作成したターゲット・ワークシートを表示します。
ターゲット・ワークシートのURLをクリップボードにコピーします。
ターゲット・ワークシートのURLをDiscoverer Administratorの新規計算定義アイテムに貼り付けてから、計算定義アイテムの計算式を変更します。
Discoverer Administratorで「新規アイテム」ダイアログを表示します(「計算定義アイテムの作成方法」を参照)。
ソース・ワークシートで新規計算定義アイテムを使用して、Discoverer Viewer内のターゲット・ワークシートにドリルアウトします。
「新規アイテム」ダイアログの「計算」フィールドにURL (クリップボードにコピーしたもの)を貼り付けます。
この時点で新規計算定義アイテムに含まれるURLを編集し、各パラメータの値を対応するEULアイテム名で置き換えます。EULアイテムにより、ターゲット・ワークシート内のパラメータで使用する動的な値が提供されます。
「新規アイテム」ダイアログの「計算」フィールドで、URLの最初と最後に一重引用符(')を入力します。
たとえば、次のようになります。
'http://mymachine.com/discoverer/viewer?&cn=cf_a208&pg=1&wbk=PARAMETERS&wsk=26&qp_myRegion=CENTRAL'
一重引用符を使用することにより、URLのテキストをDiscovererで正しく処理できるようになります。
「計算」フィールド内の計算式を編集し、URLの各パラメータの値を、対応するEULのアイテム名で置き換えます。
たとえば、ターゲット・ワークシートでmyRegion (EULアイテムのRegionを表す)という名前のパラメータが使用されている場合、「計算」フィールドに貼り付けるURLは、次のようになります。
'http://mymachine.com/discoverer/viewer?&cn=cf_a208&pg=1&wbk=PARAMETERS&wsk=26&qp_myRegion=CENTRAL'
EULアイテムで決定された値を持つURLの一部を置き換えるには、'||<ItemName>||'構文を使用します。たとえば、前述のURLでは、次のようにCENTRAL値が置き換えられます。
'http://mymachine.com/discoverer/viewer?&cn=cf_a208&pg=1&wbk=PARAMETERS&wsk=26&qp_myRegion='||Region||''
Regionは対応するEULアイテムであり、ターゲット・ワークシート内のmyRegionパラメータに必要な値を動的に提供します。
注意: 一重引用符と||演算子を使用して、最終的なURLが正しく作成されるようにしてください。
「名前」フィールドに、新規計算定義アイテムに付ける適切な名前を入力します。
たとえば、新規計算定義アイテムにDrill_to_myRegionと命名できます。
「OK」をクリックしてダイアログを閉じ、変更内容を保存します。
「ワークエリア」の「データ」タブで、作成した計算定義アイテムを強調表示し、「編集」→「プロパティ」を選択します。
Discovererにより、作成した計算定義アイテムの「アイテム・プロパティ」ダイアログが表示されます。
「コンテンツ・タイプ」属性をクリックし、ドロップダウン・リストからFILEを選択します。
「コンテンツ・タイプ」属性により、別のアプリケーションが起動されることがDiscovererに通知されます。この場合は、Discoverer Plus、Discoverer DesktopまたはDiscoverer ViewerによってWebブラウザが起動され、Discoverer Viewerにターゲット・ワークシートが表示されます。
「OK」をクリックしてダイアログを閉じ、変更内容を適用します。
新規のDiscoverer Plusセッションを開始します(あるいはDiscoverer Desktopに再接続します)。
Discoverer PlusまたはDiscoverer Desktopでワークシートを作成し(ソース・ワークシート)、Drill_to_myRegion計算定義アイテム(前述の手順でDiscoverer Administratorで作成したもの)をこのワークシートに含めます。
ワークシート作成の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
エンド・ユーザーがDiscoverer Plus、Discoverer DesktopまたはDiscoverer Viewerでこのソース・ワークシートを表示したときに、Drill_to_myRegion計算定義アイテム(前述の手順で作成したもの)をクリックすると、Discoverer Viewerにターゲット・ワークシートを表示できます。EULアイテム「Region」に対する状況依存値が、myRegionパラメータを使用してターゲット・ワークシートに動的に渡され、正しい結果データが表示されます。
このタスクで使用されるURLの例は、次の構成要素に分解できます。
インターネット・アドレスの部分 | インターネット・アドレスの部分が表す内容 |
---|---|
http://mymachine.com/discoverer/viewer? | Discoverer Viewerのインターネット・アドレス(URL) |
&cn=cf_a208 | データベースに接続するために使用する接続文字列 |
&wbk=PARAMETERS | ワークブック識別子 |
&wsk=26 | ワークシート識別子 |
&qp_myRegion | パラメータmyRegion (Discoverer PlusまたはDiscoverer Desktopで作成) |
=CENTRAL | ターゲット・ワークシートのパラメータmyRegionの値(CENTRAL地域) |
PL/SQLファンクションはSQLに対するOracleのプロシージャ拡張機能の1つです。PL/SQLファンクションを使用すると、SQL内のPL/SQL参照を経由して、Oracle Serverで実行されるPL/SQLファンクションにアクセスできます。PL/SQLファンクションにより、データベースにある値を計算できます。PL/SQLファンクションの詳細は、『PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。
カスタムPL/SQLファンクションは、Discovererマネージャが作成するPL/SQLファンクションであり、Discovererエンド・ユーザーの追加要件を満たすように設計されています(複雑な計算を用意する場合など)。カスタムPL/SQLファンクションは、Oracleが提供するPL/SQLファンクションを補足し、すべてのデータベース・プロセスに利用できます。
SQL*Plusまたはプロシージャ・エディタを使用して、カスタムPL/SQLファンクションを作成します。カスタムPL/SQLファンクションはDiscoverer Administratorでは直接作成しません。詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
注意: Discoverer Plusで、PL/SQLファンクションを使用する導出アイテム(詳細は、「導出アイテム」を参照)を含むフォルダを表示できるのは、これらのファンクションに対してEXECUTEデータベース権限を持つユーザーのみです。
Discovererを使用してカスタムPL/SQLファンクションにアクセスするには、ファンクションをEULに登録する必要があります。カスタムPL/SQLファンクションを登録すると、登録したカスタムPL/SQLファンクションは「計算の編集」ダイアログのデータベース関数のリストに表示され、標準のOracle関数と同じ方法で使用できます。
カスタムPL/SQLファンクションは次の2つの方法で登録できます。
ファンクションをインポートして、自動的に登録(推奨)
自動的にインポートしてPL/SQLファンクションを登録することをお薦めします(特に多数のファンクションを登録する場合)。これは、ファンクションに関する情報を手動で入力すると間違いやすいためです。ファンクションをインポートする場合は、各ファンクションに関するすべての情報(名前、データベース・リンク、返される値のタイプ、引数のリストなど)がインポートされます。インポートを使用すると、各ファンクションに手動で情報を入力する必要がないので、ファンクションの情報が正確になります。
手動による方法
手動による登録では、ファンクションに関するすべての情報を入力し、各ファンクションを個々に登録する必要があります。
注意: PL/SQLファンクションを登録するには、そのファンクションに対するEXECUTE権限が必要です。
PL/SQLファンクションを自動的に登録するには、次の方法でインポートする必要があります。
「ツール」→「PL/SQL関数の登録」を選択すると、「PL/SQL関数」ダイアログの「関数」タブが表示されます。
「インポート」をクリックすると、「PL/SQL関数のインポート」ダイアログが表示されます。
このダイアログを使用して、インポートするPL/SQLファンクションを選択します。
インポートするファンクションを選択します。
同時に複数のファンクションを選択するには、[Ctrl]キーを押しながら別のファンクションをクリックします。
「OK」をクリックします。
選択したファンクションがインポートされ、「PL/SQL関数」ダイアログの「関数」タブにファンクションの詳細が表示されます。
選択したファンクションに関する情報は、自動的にインポートされます。手動で情報を入力したり、情報を確認する必要はありません。
「OK」をクリックします。
これで、PL/SQLファンクションはDiscovererで使用できるように登録されました。
DiscovererでPL/SQLファンクションを手動で登録する手順は、次のとおりです。
「ツール」→「PL/SQL関数の登録」を選択すると、「PL/SQL関数」ダイアログの「関数」タブが表示されます。
「新規」をクリックして、ファンクションの属性を指定します。
「検証」をクリックして、入力した情報の妥当性と記述の正確さを確認します。
ファンクションが無効な場合は、属性を修正し、もう一度「検証」をクリックします。
(オプション)引数を受け入れるファンクションの場合は、次の操作を実行できます。
「PL/SQL関数」ダイアログの「引数」タブを表示します。
「引数」タブで、「新規」をクリックして、引数の属性を指定します。
ファンクションの定義を終了したら、「OK」をクリックします。
これで、カスタムPL/SQLファンクションはDiscovererで使用できるように登録されました。