Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド 11gリリース1 (11.1.1) E51906-01 |
|
前 |
次 |
この章では、Discovererのサマリー・フォルダに関する追加情報について説明します。項目は次のとおりです。
Oracle Standard EditionデータベースとOracle Enterprise Editionデータベースのサマリー・フォルダの特性の相違点
Oracle Enterprise EditionデータベースでEULアイテムにマッピングする場合の外部サマリー・テーブルとビューとの相違点
Oracle Enterprise Editionデータベースで1つの外部サマリー・テーブルに対して1つのマテリアライズド・ビューのみ登録可能な理由
Discovererでは、クエリー・リライトし、サマリー・テーブルを使用する概念が考案されました。オラクル社は、サマリー・テーブルを作成し、SQLに自動的にリライトさせるアイデアの特許を獲得しました。
この機能がすべてのデータベース・ユーザーに便利であることが明確になったため、Oracleではこの機能をデータベースに取り入れました。Discovererでは、可能な場合は必ずマテリアライズド・ビューとクエリー・リライトを使用します。そうでない場合でも、Discovererのサマリー・テーブルに対する従来のクエリー・リライトもサポートしています。
長期的な方向としては、サーバーのクエリー・リライト機能を使用して作業し、徐々にDiscoverer固有の機能をなくしていきます。
Discovererは次のデータベース条件下でクエリー・リライトを使用します。
Oracle Enterprise Editionデータベースでは、Discovererはデータベースにクエリーを送信し、データベースはディテール・データ・テーブルにアクセスすることなく、そのクエリーに適したマテリアライズド・ビューの存在の有無を判定します。存在する場合、データベースはクエリー・リライトして、マテリアライズド・ビューを使用します。
Oracle Standard Editionデータベースでは次のとおりです。Discovererはクエリー・リライトして、ディテール・データ・テーブルにアクセスすることなく、適切なサマリー・テーブルを使用します。
Oracle Enterprise EditionデータベースでビューをEULのアイテムにマッピングする場合、Discovererはクエリー・リライトして適切なサマリー・テーブルを使用します。
クエリー・リライトは、Discovererエンド・ユーザーにとって透過的であり、ディテール・テーブルに対して実行するクエリーと同じ結果を提供しますが、それよりも大幅に短い時間で結果を返します。
注意: クエリー・リライトを使用する前に、Discoverer Plusでサマリー・フォルダを使用するオプションを設定する必要があります(詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照)。
Oracle Enterprise Editionデータベースのリライト・シナリオに関するルールの詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。
Discovererは、次のすべての条件を満たす場合、クエリー・リライトして、ディテール・データではなくサマリー・テーブルを使用します。
クエリーで指定されたすべてのアイテムが次のいずれかである場合。
単一のサマリー組合せの中に存在する場合
詳細は、「サマリー組合せ」を参照してください。
サマリー組合せに存在する外部キーを介してサマリー・テーブルに結合できる場合
導出アイテムが使用される場合は、サマリー組合せに含める必要があります。
導出アイテム
導出アイテムの作成に使用されるコンポーネント
導出アイテムの詳細は、「導出アイテム」を参照してください。
複合フォルダからのアイテムの場合、アイテムの同じ組合せを使用して、ソース(単一)フォルダから別のサマリー・フォルダを作成します。
複合フォルダの詳細は、「複合フォルダ」を参照してください。
クエリーで指定された結合パスは、クエリーを満たすサマリー組合せで指定された結合パスと一致する必要があります。これにより、サマリー結果セットのデータはディテール・データ・テーブルのデータと一致します。
ただし、「結合の編集」ダイアログの「オプション」タブの「ディテール・アイテム値が常にマスター・フォルダに存在」オプションを選択していれば、サマリー・テーブルで指定されているよりも少ない結合を使用してクエリーを定義できます。
サマリー・フォルダは、「クエリーで使用可能」プロパティが「はい」に設定されている必要があります。
サマリー・フォルダのプロパティの詳細は、「サマリー・フォルダのプロパティの編集方法」を参照してください。
Discoverer Plusの「オプション」ダイアログの「クエリー管理」タブで指定された条件が満たされる必要があります。
詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
クエリーを実行しているDiscovererエンド・ユーザーは、サマリー・テーブルへのデータベースSELECTアクセス権が必要です。
サマリー・フォルダの作成に必要な権限の詳細は、「Discovererでサマリー・フォルダを手動で作成するための前提条件」を参照してください。
Discoverer Plusで「SQLインスペクタ」ダイアログを使用して、データベース・サーバーに送信されるSQLと、データベース・サーバーがクエリーから結果データを返すための実行計画を表示します。「SQLインスペクタ」ダイアログにはSQLが表示されます。マテリアライズド・ビューの名前または使用されたサマリー・テーブルが含まれています。「SQLインスペクタ」ダイアログの詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Discoverer Plusユーザーズ・ガイド』を参照してください。
Oracle Business Intelligence Discoverer PlusおよびOracle Business Intelligence Discoverer Desktopでは、Discovererによって生成されたSQLをエンド・ユーザーが確認してワークシートを作成できます。「SQLインスペクタ」に表示されるSQLは、RDBMSに送信されるものと同一とはかぎりません。
Discovererは、常にインライン・ビューを含むSQLをRDBMSに送信します。エンド・ユーザーがインライン・ビューを読むのは困難なため、SQLを容易に読めるように再フォーマット(フラット化)するよう、Discovererを構成できます。
DiscovererでSQLを表示する方法を構成するには、SQLTypeレジストリ設定を編集します(詳細は、第21章「Discovererのレジストリ設定」および「Discoverer AdministratorおよびDiscoverer Desktopのレジストリ設定の編集方法」を参照)。
インライン・ビューを含むSQLがRDBMSに渡されても、データベース内ですべて実行されるわけではありません。RDBMSオプティマイザは、インライン・ビューのすべての列からSQLを分離します。データベースから返される列は、外部のSELECT文にある列のみです。たとえば、次のSQL文を考えてみます。
select dname from
(select dname, deptno, manager_id, manager_name, location, address, phone, zip from departments)
RDBMSオプティマイザは、このSQL文を次のように変換します。
select dname from departments
このSQL文では、Discovererに返される列はdname列のみです。
データベースで実行されるSQLを確認するには、Discoverer PlusまたはDiscoverer Desktopの「SQLインスペクタ」ダイアログでフラット化されたSQLを参照します。
Discoverer Plusで「SQLインスペクタ」ダイアログを呼び出して、クエリーがクエリー・リライトの対象かどうかを指定できます。次の表は、適切なマテリアライズド・ビューが存在しないクエリーで使用されるときに、サーバーの実行計画がどのように表示されるかを示しています。この例で、サーバーは3つのVIDEO5データ・テーブルの全テーブル検索を完了して、結果セットを返しています。
Discovererの「SQLインスペクタ」ダイアログの「プラン」タブに表示されるSQL文 |
---|
SELECT STATEMENT SORT GROUP BY TABLE ACCESS FULL VIDEO5.Sales TABLE ACCESS FULL VIDEO5.Product TABLE ACCESS FULL VIDEO5.Time |
次の表は、適切なマテリアライズド・ビューが存在するクエリーで使用されるときに、サーバーの実行計画がどのように表示されるかを示しています。この例で、サーバーはマテリアライズド・ビューを使用して結果セットを返しています。
Discovererの「SQLインスペクタ」ダイアログの「プラン」タブに表示される実行計画 |
---|
SELECT STATEMENT SORT GROUP BY TABLE ACCESS FULL NICK.EUL5_MV101510 |
前述のテーブルのSQL文は、サーバーがどのようにクエリー・リライトし、適切なマテリアライズド・ビューを使用するかを示しています。
マテリアライズド・ビューは、テーブル名EUL5_MV{識別子}により実行計画の中で識別されます。
Oracle Standard Editionデータベースに対してDiscovererを実行する場合、Discovererはクエリー・リライトを制御して適切なサマリー・テーブルを使用します。Discovererは、データベース・サーバーに送信されたSQL文を「SQLインスペクタ」ダイアログの「SQL」タブに表示します。
次の表に、Video Analysisフォルダからのアイテムを使用しているDiscovererワークシートに使用されたSQL文を示します(詳細は、第27章「Discovererのサンプル・データEUL、データおよびワークブックのインストール」を参照)。SQL文は、サマリー・テーブル「EUL5_SUM100750」が参照されていることを示しています。
Discoverer Plusの「SQLインスペクタ」ダイアログの「SQL」タブに表示されるSQL文 |
---|
SELECT EUL5_SUM100750,"Department", EUL5_SUM100750, "Region", EUL5 _SUM100750,"Calendar Date Year", SUM(EUL5_SUM100750,"Profit SUM") FROM ADMINTUTORNF806.EUL5_SUM100750 EUL5_SUM100750 GROUP BY EUL5_SUM10075."Department", EUL5_SUM10075."REgion", EUL5 _SUM10075."Calendar Date Year"; |
Discovererは、最も適切なサマリー・テーブルを自動選択してクエリーを効率的に処理します。このアクションは、Discovererエンド・ユーザーにとって完全に透過的です。
次の表は、エンド・ユーザーが年から月までをドリルダウンしたことを除き、前述と同じDiscovererワークシートのSQL文を示しています。
SQL文は、Discovererがサマリー・テーブルEUL5_SUM100750(前述と同じ)に対するクエリーの最初の部分をリライトしたことを示しています。ただし、サマリー・テーブルEUL5_SUM100774に対するクエリーの2番目の部分(ドリルダウン)をリライトしました。
Discoverer Plusの「SQLインスペクタ」ダイアログの「SQL」タブにドリルダウンに続いて表示されるSQL文 |
---|
SELECT EUL5_SUM100750,"Department", EUL5_SUM100750, "Region", EUL5 _SUM100750,"Calendar Date Year", SUM(EUL5_SUM100750,"Profit SUM") FROM ADMINTUTORNF806.EUL5_SUM100750 EUL5_SUM100750 GROUP BY EUL5_SUM100750."Department", EUL5_SUM100750."Region", EUL5 _SUM100750."Calendar Date Year"; SELECT EUL5_SUM100774,"Department", EUL5_SUM100774, "Region", EUL5 _SUM100774,"Calendar Date Month", EUL5_SUM100774,"Calendar Date Year", SUM(EUL5 _SUM100774,"Profit SUM") FROM ADMINTUTORNF806.EUL5_SUM100774 EUL5_SUM100774 WHERE (EUL5_SUM100774."Calendar Date Year" = TO _DATE('200001011000000','YYYYMMDDHH24MISS') GROUP BY EUL5_SUM100774."Department", EUL5_SUM100774."Region", EUL5 _SUM100774,"Calendar Date Month", EUL5_SUM100774."Calendar Date Year"; |
この例は5つのテーブルから成り立っていて、その1つには約70,000のレコードがあります(詳細は次の図を参照)。スキーマとデータはチュートリアル・データから取得されます。
次のアイテムを必要とするクエリーを考えてみます。
地域: (「STORE」テーブルから)
部門: (「PRODUCT」テーブルから)
年度: (「FISCAL DATE」テーブルから)
合計値(Dollar_Profit): (「SALES FACT」テーブルから)
これには、4つのテーブルの結合と、「SALES_FACT」(約70,000の行を持つテーブル)にある一致するすべての行の集計が必要です。サーバーの能力に応じて、クエリーの結果の生成に数分かかることもあります。
一方、クエリーが、地域、部門、年度、合計値(利益)のデータをすでに含んでいる1つのテーブルを使用するようにリライトされると(サンプル・サマリー・テーブルの図を参照)、クエリーは瞬時にレスポンスを生成します。
前述のサンプル・サマリー・テーブルには、月レベルのクエリーで必要とされる情報が格納され、年レベルに集合化する必要があります。したがって、Discovererは4つのテーブルの結合から集合化するのではなく、また全テーブル検索を実行することなく、1つのテーブルを使用します。
次の表に、異なるリリースのデータベースを使用している場合のサマリー・フォルダの特長の違いと比較を示します。
サマリー・フォルダの詳細は、「Discovererのフォルダとサマリー・フォルダ」および第15章「手動によるサマリー・フォルダの作成」を参照してください。次の表に、Oracle Standard EditionデータベースとOracle Enterprise Editionデータベースのサマリー・フォルダの比較を示します。
質問 | Oracle Standard Editionデータベース | Oracle Enterprise Editionデータベース |
---|---|---|
サマリー・フォルダはどのようにデータベースに格納されますか。 | サマリー・テーブルとして格納します | マテリアライズド・ビューまたはサマリー・テーブルとして格納します |
サマリー・フォルダはどのようにリフレッシュされますか。 | 完全リフレッシュのみ | 完全リフレッシュまたは増分リフレッシュ |
どのような種類のリフレッシュが利用できますか。 | リフレッシュはオンデマンドのみです | リフレッシュはオンデマンドまたはコミット時に可能です |
リフレッシュはどのように実行されますか。 | Discovererがリフレッシュを実行します | サーバーがリフレッシュを実行します |
サマリーのリライトを実行するのは何ですか。 | Discovererがサマリーのリライトを実行します | サーバーがクエリー・リライトを実行します |
サマリー・フォルダを定義する用語は何ですか。 | サマリー・フォルダはアイテムとフォルダで定義されます | サマリー・フォルダはテーブルと列で定義されます |
他のアプリケーションはこれらを利用できますか。 | いいえ、Discovererのみです | はい、他のアプリケーションもマテリアライズド・ビューを利用できます |
注意
マテリアライズド・ビューはサーバーに格納されるので、他のクライアント・アプリケーションはマテリアライズド・ビューをリフレッシュに利用できます。たとえば、Discovererを使用しているときに作成されたマテリアライズド・ビューは、提供されたDBMS_MVIEWパッケージを使用し、SQL*Plusを通じてリフレッシュできます。
Discovererは、次に基づいてサマリー・フォルダを作成します。
Discovererのサマリー・テーブルまたはマテリアライズド・ビュー
外部サマリー・テーブル
Discovererのサマリー・テーブルまたはマテリアライズド・ビューに基づくサマリー・フォルダと外部サマリー・テーブルに基づくサマリー・フォルダとの主な相違点を次に示します。
質問 | Discovererのサマリー・テーブルまたはマテリアライズド・ビューに基づくサマリー・フォルダ | 外部サマリー・テーブルに基づくサマリー・フォルダ |
---|---|---|
どのように移入され、メンテナンスされますか。 | Discoverer AdministratorまたはOracle Enterprise Editionデータベースにより自動的に移入およびメンテナンスされます。 | 別のアプリケーション(SQL*Plusなど)を使用します。 |
どのように作成されますか。 | Discoverer Administratorを使用します。 | 別のアプリケーションを使用します。 |
どのようにリフレッシュされますか。 | 自動的に一定間隔でリフレッシュ(Discoverer AdministratorのDiscovererマネージャで定義)されます。 | 別のアプリケーションを使用します。 |
次の図は、Discovererがマテリアライズド・ビューに基づいたサマリー・フォルダをどのように作成するかを示しています。マテリアライズド・ビューは外部サマリーからのデータを使用して提供されます。外部サマリーは外部アプリケーションによって作成されます。
Discoverer Administratorを使用してサマリーを作成する場合、次のいずれかの方法でサマリーをリフレッシュします。
Discovererによるリフレッシュ: 「サマリーの編集」ダイアログの「リフレッシュ」タブで「このサマリーのリフレッシュを管理」チェック・ボックスが選択されています。
外部アプリケーションによるリフレッシュ: 「サマリーの編集」ダイアログの「リフレッシュ」タブで「このサマリーのリフレッシュを管理」チェック・ボックスの選択が解除されています。
外部サマリー・テーブルは次の場合に役立ちます。
他のいくつかの方法で作成されたサマリー・テーブルを持つウェアハウス・アプリケーションで作業をしていて、これらを外部からメンテナンスする場合。
Oracle Enterprise Editionデータベースで、外部サマリー・テーブルまたはビューをEULアイテムにマッピングして、Discoverer Administratorにサマリー・フォルダを作成できます。ただし、ビューをEULアイテムにマッピングする場合、マテリアライズド・ビューは作成されません。この制限はOracle Enterprise Editionデータベースに適用されます。マテリアライズド・ビューが作成されない場合は、かわりにDiscovererサマリー・テーブルへのクエリー・リライトが使用されます。クエリー・リライトの詳細は、「クエリー・リライト」を参照してください。
Oracle Enterprise EditionデータベースでEULアイテムにマッピングする場合の外部サマリー・テーブルとビューとの相違点を次の表に示します。
テーブルのマッピング | ビューのマッピング |
---|---|
外部サマリー・テーブルをEULアイテムにマッピングする場合、マテリアライズド・ビューの定義が作成されます。
この場合、マテリアライズド・ビューの定義はOracle Enterprise Editionデータベースのクエリー・リライトに使用されます。 |
外部ビューをEULアイテムにマッピングする場合、マテリアライズド・ビューは作成されません。
この場合、サマリー・フォルダはOracle Standard Editionデータベースと同じ方法で動作します。つまり、Discovererはクエリー・リライトして、Discovererサマリー・テーブルを使用します。 |
Discoverer Administratorに外部サマリー・テーブルを登録すると、データベースに1つのマテリアライズド・ビューが作成されます(詳細は、「外部サマリー・テーブルに基づくサマリー・フォルダの作成方法」を参照)。マテリアライズド・ビューの名前は、常に外部サマリー・テーブルの名前と同一になります。Create Materialized View DDLコマンドのこの制限によって(Databaseサーバー内)、1つのテーブルに対して登録可能なのは1つのマテリアライズド・ビューのみになります。同じテーブルに対して複数の外部サマリー・フォルダを登録しようとすると、この制限を示すエラー・メッセージが表示されます。1つのサマリー・テーブルに対して複数の外部サマリー・フォルダを登録するには、サマリー・テーブル以外にデータベース・ビューを作成し、Discoverer Administrator内でそのデータベース・ビューを外部サマリーとして登録します。この場合、マテリアライズド・ビューはデータベース内で作成されず、かわりにDiscovererのサマリー管理またはクエリー・リライトのメカニズムが使用されます(詳細は、「クエリー・リライト」を参照)。データベース・ビューの作成方法の詳細は、データベース管理者に問い合せてください。
Oracle Enterprise Editionデータベースは、大規模なデータ・ウェアハウスまたはデータベースでの作業を可能にする増分リフレッシュをサポートします(使用可能な場合)。リフレッシュ操作では並列性(詳細は次を参照)もサポートされています。
増分リフレッシュに必要な条件の詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。
Oracle Standard EditionデータベースからOracle Enterprise Editionデータベースへのエクスポート
Oracle Standard Editionデータベースからサマリー・フォルダを持つビジネスエリアをエクスポートし、Oracle Enterprise Editionデータベースにインポートする場合、これらのサマリー・フォルダに対してマテリアライズド・ビューを作成する必要があります。マテリアライズド・ビューを作成するデータベース・サーバーでは、Discovererでサマリー・フォルダをリフレッシュする必要があります。
Oracle Enterprise EditionデータベースからOracle Standard Editionデータベースへのエクスポート
Oracle Enterprise Editionデータベースからサマリー・フォルダを持つビジネスエリアをエクスポートし、Oracle Standard Editionデータベースにインポートする場合、サマリー・フォルダをリフレッシュして、Discovererがサマリー・フォルダに基づいてサマリー・テーブルを作成できるようにする必要があります。