Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド 11gリリース1 (11.1.1) E51906-01 |
|
前 |
次 |
この章では、Discoverer Administratorによる階層の実装とメンテナンスの方法について説明します。この章の内容は次のとおりです。
階層とは、Discoverer Administratorで定義するアイテム間のデフォルトのドリル・パスです。ビジネスエリア内のアイテム間の階層を作成して、Discovererエンド・ユーザーにデフォルトのドリル階層を提供します。
次の2種類の階層があります。
アイテム階層
日付階層
Discovererエンド・ユーザーは、階層を使用して次のことができます。
より集合的なレベルのディテールへのドリルアップ(たとえば店舗から都市、都市から地域、地域から国)
より詳細なレベルのディテールへのドリルダウン(たとえば国から地域、地域から都市、都市から店舗)
階層により、データベースで関係が定義されていないビジネスエリア内のアイテムをリンクできます。ビジネスエリアの詳細は、第5章「ビジネスエリアの作成とメンテナンス」を参照してください。
アイテム階層とは、日付以外のアイテム間の関係です。
アイテム階層の例は次のとおりです。
販売アイテム階層では、国がその地域、都市および店舗とリンクされます。
この階層を使用すると、Discovererエンド・ユーザーは国のレベルでの販売を示すレポートを使用できます。さらに、国からドリルダウンして、地域ごと、都市ごとまたは店舗ごとの販売を参照し、再び国レベルにドリルアップできます。
Discovererエンド・ユーザーから見た販売アイテム階層は、次のとおりです。
次の図は、データベースから見た販売アイテム階層です。
ロサンゼルスがWest (西部)にあることを指定する必要はありません。指定する必要があるのは、都市がアイテム階層のRegion (地域)の下にあることだけです。
日付階層とは、日付アイテム間の関係です。
日付階層の例は次のとおりです。
販売日付階層により、年が四半期、月、週および日とリンクされます。
この階層を使用すると、Discovererエンド・ユーザーは毎年の売上合計を示すレポートを使用できます。さらに、年からドリルダウンして、四半期ごと、月ごと、週ごとまたは日ごとの販売を参照し、再び年ごとの販売にドリルアップできます。
Discovererエンド・ユーザーから見た販売日付アイテム階層のセクションは、次のとおりです。
次の図は、データベースから見た販売日付階層です。
注意: 日付階層の各レベルは、「Sales_Orders.SALES_DATE」列に基づく計算です。計算は、日付階層テンプレートにより作成されます(詳細は、「日付階層テンプレート」を参照)。
日付階層テンプレートを使用すれば、日付アイテムに適用する日付階層を定義できます。日付アイテムでは、日付、月、年および時刻を指定する情報が使用されます。Discovererでは、この情報を使用して四半期、週および曜日などが計算されます。日付階層テンプレートにより、年または月などを表すアイテムが日付アイテムに基づいて自動的に作成されます。
各日付アイテムについて同じ日付階層を繰り返し再定義するよりも、日付階層テンプレートを日付アイテムに適用することによって、日付階層テンプレートを効率的に再使用できます。
日付階層テンプレート(Discoverer Administratorで提供されています)を使用して多くの共通日付階層を定義することも、カスタマイズされた日付階層を作成することもできます。
Discoverer Administratorで提供されているデフォルトの日付階層テンプレート(次の日付階層テンプレートの図を参照)を使用すれば、年から四半期、四半期から月、月から日にドリルダウンできます。
索引付きテーブルからの日付アイテムに日付階層を適用した場合、これらの日付アイテムを含むクエリーでは索引が使用されません(このため、パフォーマンスが低下することがあります)。索引に依存しないテーブルからの日付アイテムに日付階層を適用すれば、Discoverer Plusのパフォーマンスを最適化できます。
日付列(transaction_dateなど)を含む大きなファクト・テーブル(行が多いテーブル)をロードするとき、Discovererによりデフォルトの日付階層が日付アイテムに適用されます(詳細は、「「ロード・ウィザード: ステップ4」ダイアログ」を参照)。
Discovererでは、EUL_DATE_TRUNC関数を使用して年、四半期および月などの日付アイテムを含むフォルダが作成されます(詳細は、「日付アイテムの切捨てとEUL_DATE_TRUNC関数」を参照)。Discovererエンド・ユーザーがこれらのアイテムを含むクエリーを実行するとき、ファクト・テーブルに日付アイテムを含む索引は使用されません。索引が使用されない場合、パフォーマンスが影響を受けることがあります。
ファクト・テーブルは索引を持つことがあるため、ファクト・テーブルに基づいているフォルダ内の日付アイテムに日付階層を適用しないことをお薦めします。
パフォーマンスを維持するために、日付階層を個別のディメンション・テーブルに適用してください。
たとえば、ファクト・テーブル内の「transaction_date」アイテムを、時間間隔を指定する別のディメンション・テーブル(「Time Period」など)に結合することがあります。ロード・ウィザードを使用してこのディメンション・テーブルをロードし、日付階層をこのテーブルに適用できます。次に、ディメンション・テーブルとファクト・テーブルの両方からのアイテム(年または四半期などの、日付階層別に作成されたアイテムなど)を含む複合フォルダを作成できます。Discovererエンド・ユーザーが日付階層アイテムを含めるクエリーを使用するとき、Discovererではファクト・テーブルの日付列索引を使用できます。これにより、パフォーマンスを大幅に向上できます。
アイテム階層を作成する手順は、次のとおりです。
「挿入」→「階層」を選択すると、「階層ウィザード: ステップ1」ダイアログが表示されます。
「アイテム階層」オプションを選択し、「次へ」をクリックすると、「階層ウィザード: ステップ2」ダイアログが表示されます。
ここで、このアイテム階層で使用するアイテムを選択します。
このアイテム階層に含めるアイテムを左側のリストから右側のリストに移動します。
同時に複数のアイテムを選択するには、[Ctrl]キーを押しながら別のアイテムをクリックします。
注意: 階層リスト内のアイテムの順序により、Discovererエンド・ユーザーがデータ分析に使用するドリルダウン順序が決まります。アイテム階層は、アイテムを含める際の順序で配列されます。たとえば、地域 − 都市 − 店舗の順序で配列されます。
注意: 複数のフォルダからアイテムを選択できますが、それらのフォルダは結合されている必要があります。フォルダが複数の結合により結合されている場合、「結合の選択」ダイアログで正しい結合を選択するプロンプトが表示されます。
(オプション)階層内のアイテムを別の位置に移動するには、右側のリスト内のアイテムを選択し、次の操作を行います。
階層内の上方にアイテムを移動する場合は、「昇格」をクリックします。
階層内の下方にアイテムを移動する場合は、「降格」をクリックします。
(オプション)階層内の同じレベルに表示されるように複数のアイテムをグループ化するには、それらのアイテムを選択し、「グループ」をクリックします(詳細は、「「階層ウィザード: ステップ2」ダイアログ」を参照)。
同時に複数のアイテムを選択するには、[Ctrl]キーを押しながら別のアイテムをクリックします。
注意: 階層内のアイテムのグループ化を解除するには、そのグループを選択し、「グループ解除」をクリックします。
(オプション)アイテムの名前を変更するには、右側のリスト内のアイテムをクリックし、「説明」フィールドで名前を指定します。
指定した説明は、Discoverer Plusでラベルとして表示されます。名前を指定しないと、デフォルトでアイテム名がアイテム階層の各レベルで使用されます。
「次へ」をクリックすると、「階層ウィザード: ステップ3」ダイアログ(名前階層)が表示されます。
新規アイテム階層の名前と説明を指定します。
「終了」をクリックして、アイテム階層を作成します。
「ワークエリア」の「階層」タブにアイテム階層が表示されます。
日付階層を作成する手順は、次のとおりです。
「挿入」→「階層」を選択すると、「階層ウィザード: ステップ1」ダイアログが表示されます。
「日付階層」オプションを選択し、「次へ」をクリックすると、「階層ウィザード: ステップ2」ダイアログが表示されます。
(オプション)新規日付フォーマットを作成するには、「新規フォーマットの作成」をクリックして、「新規日付フォーマット」ダイアログを表示します。
この日付階層に含める日付フォーマットを左側のリストから右側のリストに移動します。
同時に複数の日付フォーマットを選択するには、[Ctrl]キーを押しながら別の日付フォーマットをクリックします。
(オプション)階層内の日付フォーマットを別の位置に移動するには、右側のリスト内の日付フォーマットを選択し、次の操作を行います。
階層内の上方に日付フォーマットを移動する場合は、「昇格」をクリックします。
階層内の下方に日付フォーマットを移動する場合は、「降格」をクリックします。
(オプション)日付フォーマットの名前を変更するには、右側のリスト内の日付フォーマットをクリックし、「説明」フィールドで新しい名前を指定します。
指定した説明は、Discoverer Plusでラベルとして表示されます。
「次へ」をクリックすると、「階層ウィザード: ステップ3」ダイアログが表示されます。
ここで、この日付階層で使用する日付アイテムを選択します。
この日付階層で使用する日付アイテムを「選択可能なアイテム」リストから「選択済アイテム」リストに移動します。
同時に複数のアイテムを選択するには、[Ctrl]キーを押しながら別のアイテムをクリックします。
ヒント: 日付階層テンプレートのみを作成する場合は、このページで日付アイテムを選択しないでください。後で、日付アイテム・プロパティを変更すれば、このテンプレートを日付アイテムに適用できます(詳細は、「日付階層テンプレートを日付アイテムに適用する方法」を参照)。
「次へ」をクリックすると、「階層ウィザード: ステップ4」ダイアログ(名前階層)が表示されます。
新規日付階層の名前と説明を指定します。
(オプション)この日付階層テンプレートをデフォルトにするには、「デフォルトの日付階層に設定」チェック・ボックスを選択します。
「デフォルトの日付階層に設定」チェック・ボックスを選択すると、この日付階層テンプレートが「ロード・ウィザード: ステップ4」ダイアログのデフォルトとして「日付階層」チェック・ボックスの下のドロップダウン・リストに表示されます。
「終了」をクリックして、日付階層を作成し、「階層ウィザード: ステップ3」ダイアログで選択した日付アイテムにこの日付階層を適用します。
日付階層と日付階層テンプレートが「ワークエリア」の「階層」タブに表示されます。
既存のアイテム階層を編集する手順は、次のとおりです。
「階層」タブで階層を選択し、「編集」→「編集」を選択して、「階層の編集」ダイアログの「名前」タブを表示します。
必要に応じて階層を編集します。
「階層の編集」ダイアログには、次の2つのタブがあります。
アイテム
このタブは、この階層を使用するアイテムの追加または削除に使用します。
名前
このタブは、階層の名前と説明の編集に使用します。
これらのタブの詳細は、「「階層の編集」ダイアログ: 「名前」タブ」または「「階層の編集」ダイアログ: 「アイテム」タブ(この日付階層を使用する日付アイテムの選択)」を参照してください。
「OK」をクリックします。
この項では、既存の日付階層テンプレートを編集する方法について説明します。日付階層テンプレートを編集すると、その日付階層テンプレートを使用するすべての日付アイテムが、この変更を反映するように変更されます。
「階層」ページで日付階層テンプレートをクリックし、「編集」→「編集」を選択して、「階層の編集」ダイアログの「名前」タブを表示します。
必要に応じて階層を編集します。
「階層の編集」ダイアログには、次の2つのタブがあります。
日付フォーマット
このタブは、日付フォーマットとこの日付階層テンプレートでの日付フォーマットの位置を変更するために使用します。
名前
このタブは、日付階層テンプレートの名前と説明の編集に使用します。
これらのタブの詳細は、「「階層の編集」ダイアログ: 「名前」タブ」または「「階層の編集」ダイアログ: 「アイテム」タブ(この日付階層を使用する日付アイテムの選択)」を参照してください。
「OK」をクリックします。
この項では、日付階層テンプレートを既存の日付アイテムに適用する方法について説明します。
日付階層テンプレートを既存の日付アイテムに適用するとき、日付階層の完成に必要な日付アイテムがすべて自動的に作成されます。これらの新規日付アイテムは、元の日付アイテムと同じフォルダに入ります(元の日付アイテムの名前が前に付けられます)。日付アイテムに適用される日付階層テンプレートを変更すると、この新規日付階層テンプレートを反映するように新しい日付アイテムが作成されます。ただし、Discovererでは以前の日付階層から日付アイテムが削除されません。以前の日付階層から日付アイテムを削除するには、手動で削除する必要があります。
たとえば、日付階層「YY/QQ/MM」を作成して、日付アイテム「Transaction Date」に割り当てると、次のアイテムがフォルダに作成されます。
Transaction Date YY
Transaction Date QQ
Transaction Date MM
次に新規日付階層「WW/DD」を作成して、「Transaction Date」に割り当てると、次の追加アイテムがフォルダに作成されます。
Transaction Date WW
Transaction Date DD
Discovererでは、以前に作成されたその他の3つの日付アイテムは削除されません。
日付階層テンプレートを日付アイテムに適用する手順は、次のとおりです。
「データ」タブで日付アイテムをクリックし、「編集」→「プロパティ」を選択して、「アイテム・プロパティ」ダイアログを表示します。
ヒント: 単一の日付階層テンプレートを同時に複数の日付アイテムに適用する場合は、「プロパティ」ダイアログを開く前にこれらの日付アイテムをすべて選択します。詳細は、「アイテム・プロパティの編集方法」を参照してください。
「日付階層」フィールドのドロップダウン・リストから、この日付アイテムに使用する日付階層テンプレートを選択します。
「なし」を選択して、この日付アイテムで日付階層テンプレートを使用しないようにします。
「OK」をクリックします。
デフォルトの日付階層テンプレートは、「ロード・ウィザード: ステップ4」ダイアログのデフォルト選択として「日付階層」ドロップダウン・リストに表示されます。詳細は、「「ロード・ウィザード: ステップ4」ダイアログ」を参照してください。
デフォルトの日付階層テンプレートを設定する手順は、次のとおりです。
「ワークエリア」の「階層」タブで日付階層テンプレートを展開して、日付階層テンプレートをすべて表示します。
デフォルトとして設定する日付階層テンプレートを選択します。
「編集」→「編集」を選択して、「階層の編集」ダイアログの「名前」タブを表示します。
「名前」タブの「デフォルトの日付階層に設定」チェック・ボックスを選択します。
「OK」をクリックします。
アイテム階層または日付階層テンプレートを削除する手順は、次のとおりです。
「ワークエリア」の「階層」タブで、アイテム階層または日付階層テンプレートを選択します。
同時に複数の階層を選択するには、[Ctrl]キーを押しながら別の階層をクリックします。
「編集」→「削除」を選択すると、「削除の確認」ダイアログが開きます。
(オプション)この階層または階層テンプレートの削除による影響を受ける可能性のあるオブジェクトを確認する手順は、次のとおりです。
「影響」をクリックして、「影響」ダイアログを表示します。
「影響」ダイアログでは、階層または階層テンプレートの削除による影響を受ける可能性のある他のEULオブジェクトを確認できます。
注意: 「影響」ダイアログには、ファイル・システム(.dis
ファイル内)に保存されたワークブックに対する影響は表示されません。
(オプション)行を選択すると、現在の処理がEULオブジェクトに与える影響を示すテキストが、リストの一番下に表示されます。
階層または階層テンプレートの削除による影響を確認した後、「閉じる」をクリックして「影響」ダイアログを閉じます。
選択した階層または階層テンプレートを削除する場合は、「はい」をクリックします。
Oracle Business Intelligence Discoverer Administratorへのアップグレード後、デフォルト日付階層の日付フォーマットで「RR」が使用されている場合は、日付フォーマットを「YYYY」に変更し、影響を受ける日付アイテム(つまり、日付フォーマット「RR」を使用する日付アイテム)をビジネスエリアから削除する必要があります。この操作は、マテリアライズド・ビューの作成を確実に実行するために必要です(マテリアライズド・ビューの詳細は、「マテリアライズド・ビュー」を参照)。
日付フォーマット「RR」を使用するデフォルト日付階層を、「YYYY」を使用するように変更するには、次の作業を完了する必要があります。
デフォルト日付階層の日付フォーマット「RR」の「YYYY」への変更
日付フォーマット「YYYY」を使用するようにデフォルト日付階層を変更する手順は、次のとおりです。
「ワークエリア」の「データ」タブをクリックします。
日付階層テンプレートを展開し、日付フォーマット「RR」を使用するデフォルト日付階層を強調表示します。
「編集」→「編集」を選択して、「階層の編集」ダイアログの「名前」タブを表示します。
「階層の編集」ダイアログの「アイテム」タブ(この日付階層を使用する日付アイテムの選択)をクリックし、各日付フォーマット「RR」を「YYYY」で置き換えます。
注意: 影響を受けるそれぞれのデフォルト日付階層について、前述の手順を繰り返します。
「OK」をクリックして、変更を保存します。
影響を受けるデフォルト日付階層に日付フォーマット「YYYY」を適用した後は、日付フォーマット「RR」を使用する残っている日付アイテムを削除できます。
日付フォーマット「RR」を使用する残っている日付アイテムの削除
日付フォーマット「RR」を使用する日付アイテムを削除する手順は、次のとおりです。
「ワークエリア」の「データ」タブをクリックします。
日付フォーマット「RR」を使用する日付アイテムを強調表示します。
「編集」→「削除」を選択して、影響を受ける日付アイテムを削除します。
日付フォーマット「RR」を使用する残っている日付アイテムのそれぞれについて、前述の手順を繰り返します。
データベース・テーブルに再帰的階層が含まれる場合があります。再帰的階層とは、1つのテーブルの中の異なるレコード間に関係が存在する階層です。この形式の階層は、一連の内部結合とは異なり、Discovererで直接使用することはできません(値階層と呼ばれる場合もあります)。ただし、カスタム・フォルダを作成してCONNECT BY句を使用すると、Discovererで再帰的階層を使用できます。
たとえば、「Scott」スキーマ内の「emp」テーブル(Oracleデータベースに付属)を見ると、一部の数字は「empno」列と「mgr」列の両方に表示されます。数字が両方の列に表示されるのは、従業員のマネージャが従業員番号で識別されているからです。このことは、再帰的階層が「emp」テーブル内に存在する様子を表しています。
次の表は、「emp」テーブル内の列「empno」、「ename」および「mgr」列の行の間に存在する関係を表しています。
EMPNO | ENAME | MGR |
---|---|---|
7369 | SMITH | 7902 |
7499 | ALLEN | 7698 |
7521 | WARD | 7698 |
7566 | JONES | 7839 |
7654 | MARTIN | 7698 |
7698 | BLAKE | 7839 |
7782 | CLARK | 7839 |
7788 | SCOTT | 7566 |
7839 | KING | |
7844 | TURNER | 7698 |
7876 | ADAMS | 7788 |
7900 | JAMES | 7698 |
7902 | FORD | 7566 |
7934 | MILLER | 7782 |
Discovererでこのテーブルを直接使用して、階層を作成することはできません。ただし、最初にSELECT文のCONNECT BY句を使用してカスタム・フォルダを作成すると、このテーブルから階層を作成できます。その上で、このカスタム・フォルダを、Discovererが使用できる階層の基礎として使用できます。
前述のテーブルの情報を使用する階層をDiscovererに作成するには、Discovererで階層を作成するために使用する次のようなテーブルが必要です。
TOP_LEVEL | 2nd_LEVEL | Nth_LEVEL | EMPNO | ENAME |
---|---|---|---|---|
KING | CLARK | 7934 | MILLER |
このテーブルには従業員の名前(ename)およびその従業員のマネージャ全員が表示されています。このテーブルでは、Millerに2つのレベルのマネージャがいます。直属の上司はClarkです。
このようなテーブルを作成し(「emp」テーブルの列に基づいて)、続いてレベル間に階層を作成するには、次の作業を完了します。
テーブル(「scott」スキーマの「emp」テーブルなど)の各値に基づいて階層を作成できます。Discoverer Plusユーザーは、ワークブックを作成し、この階層を使用して従業員の異なるレベル間でドリルアップおよびドリルダウンできるようになります。
「Scott」スキーマの「emp」テーブルを使用して、カスタム・フォルダとCONNECT BY句で階層を作成する手順は、次のとおりです。
カスタム・フォルダを作成し、次のSQL文を使用して「Recursive Hierarchy」という名前を付けます(詳細は、「カスタム・フォルダの作成方法」を参照)。
SELECT DISTINCT empno, mgr, level FROM scott.emp CONNECT BY mgr = PRIOR empno START WITH mgr IS NULL
このSQL文により、次の結果セットが含まれるテーブルが作成されます。
EMPNO | MGR | LEVEL |
---|---|---|
7369 | 7902 | 4 |
7499 | 7698 | 3 |
7521 | 7698 | 3 |
7566 | 7839 | 2 |
7654 | 7698 | 3 |
7698 | 7839 | 2 |
7782 | 7839 | 2 |
7788 | 7566 | 3 |
7839 | 1 | |
7844 | 7698 | 3 |
7876 | 7788 | 4 |
7900 | 7698 | 3 |
7902 | 7566 | 3 |
前述の手順で作成したカスタム・フォルダに含まれるSQL文について、次の点に注意してください。
「Level」という名前の列
これはCONNECT BY関数によって生成された擬似列で、Discoverer内で階層を定義するために使用します。
CONNECT BY文で使用される単語PRIOR
この単語により、「mgr」列が前の行の「empno」列の値と等しくなる次の行が、SQLによって検索されます。
START WITH文
「mgr」がNULLである場所(最高経営者)からSQLを開始するように命令します。
CONNECT BY文の詳細は、『Oracle Database SQLリファレンス』を参照してください。
カスタム・フォルダ・プロパティ「ユーザーに表示」を「いいえ」に設定します(詳細は、「フォルダ・プロパティの編集方法」を参照)。
これで、エンド・ユーザーはこのカスタム・フォルダにアクセスできなくなります。
注意: 階層を作成するために必要な情報は「Level」列で得られますが、最初に行を「Level」ごとに分ける必要があります。これは、各レベルに複合フォルダを作成して行います。
各レベルに複合フォルダを作成します(詳細は、「複合フォルダの作成方法」を参照)。
この例では、4つの複合フォルダを作成します。
ヒント: 各複合フォルダを作成するには、3つのアイテムすべて(「Empno」、「Mgr」および「Level」)をカスタム・フォルダ「Recursive Hierarchy」からそれぞれの新規複合フォルダに順番にドラッグします。
4つの新規複合フォルダにそれぞれ「Level1」、「Level2」、「Level3」および「Level4」という名前を付けます(詳細は、「フォルダ・プロパティの編集方法」を参照)。
各複合フォルダに必須条件を適用します(詳細は、「単一条件の作成方法」を参照)。
ヒント: たとえば、レベル3のデータを含む複合フォルダに適用する条件は、次のようになります。
Level = 3
複合フォルダを相互に結合するための結合を作成します(詳細は、「結合の作成方法」を参照)。
ヒント: このためには、「empno」アイテムと「mgr」アイテムを使用します。複合フォルダ「Level1」と複合フォルダ「Level2」の間の結合を、次のように作成します。
Level1.empno = Level2.mgr
この方法で、「Level2」フォルダを「Level3」フォルダに、「Level3」フォルダを「Level4」フォルダに結合します。これらの結合は、作成する階層を反映します。
これらの各複合フォルダのフォルダ・プロパティ「ユーザーに表示」を「いいえ」に設定します(詳細は、「フォルダ・プロパティの編集方法」を参照)。
別の複合フォルダを作成し、適切な名前(Chain of Commandなど)を付けます。
注意: これが、エンド・ユーザーに表示される複合フォルダです。
ステップ3で作成した4つの複合フォルダそれぞれの「Empno」アイテムを、「Chain of Command」フォルダ内にドラッグし、ドラッグしたらすぐに名前を変更します。
ヒント: 「Level1」、「Level2」、「Level3」および「Level4」の各フォルダからドラッグしたそれぞれの「Empno」アイテムに対し、名前を適切に変更する必要があります(「Empno1」、「Empno2」、「Empno3」および「Empno4」など)。
これにより、Discovererが階層を作成するのに使用する次のような結果セットが完成します。
Empno1 | Empno2 | Empno3 | Empno4 |
---|---|---|---|
7839 | 7698 | 7499 | |
7839 | 7698 | 7521 | |
7839 | 7698 | 7654 | |
7839 | 7698 | 7788 | |
7839 | 7698 | 7844 | |
7839 | 7782 | 7900 | |
7839 | 7566 | 7902 | 7369 |
このテーブルの列によって表されるこのフォルダのアイテムに基づいて階層を作成します(詳細は、「アイテム階層の作成方法」を参照)。
Discoverer Plusユーザーは、ワークブックを作成し、この階層を使用して従業員の異なるレベル間でドリルアップおよびドリルダウンできるようになります。