Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1.2.0) E82973-02 |
|
![]() 前へ |
![]() 次へ |
多くの論理列は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表をドラッグすることによって自動的に作成されます。
その他の論理列は、特に他の論理列に基づいた計算が含まれる論理列は、後で作成することができます。
論理列は、属している論理表から展開されるツリー構造で表示されます。論理列が主キー列の場合または主キーに関与している場合、その論理列はキー・アイコンが付いて表示されます。論理列に集計ルールが設定されている場合は、ルール・アイコンが付いて表示されます。ビジネス・モデルとマッピング・レイヤーで論理列を並べ替えることもできます。
この項では、次の項目について説明します。
論理列には、ソート順序の基礎とする別の列を指定できます。
値をアルファベット順(辞書式順)に並べ替えないときは、列のソート順序を変更します。
辞書式順序のソートでは、数字が別のグループに分けられるのではなく、アルファベットのスペル順で並べられます。
たとえば、月をソートする場合(MONTH_NAME
などの列を使用して)、辞書式ソート順序で、2月、1月、3月という結果が返されます。月は時間的順序でソートすることもできます。表には、MONTH_KEY
などの月キーを、1 (1月)、2 (2月)、3 (3月)の値で含めて、時間的ソート順序にする必要があります。MONTH_NAME
列の「ソート順列」フィールドをMONTH_KEY
に設定すると、MONTH_NAME
による並替えのリクエストでは、1月、2月、3月の順序で値が返されます。
物理レイヤーからキューブをドラッグ・アンド・ドロップすることによってビジネス・モデルが作成される場合、Essbaseデータ・ソースに対してソート列が自動的に定義されます。
多言語列がルックアップ関数をベースとしている場合、翻訳されていないルックアップ・キー列を、翻訳された列の記述子ID列として指定することが一般的です。
論理列に記述子ID列を割り当てると、二重列サポートが有効になります。二重列サポートを使用すると、言語に依存しないフィルタを定義できます。たとえば、「アンサー」では、ユーザーに表示列が表示されますが、問合せでは非表示の記述子ID列にフィルタが適用されます。
「多言語データのサポート」を参照してください。
二重列サポートは、2つの列を関連付けるメカニズムを提供します。1つの列は、表示および説明の値を提供します(項目の説明など)。2列目は、記述子ID列またはコード列を示します。たとえば、実際の列を使用してプロジェクトリストを提供し、ClinicとClinic IDのように、1列目に関連付けられたID列を非表示にすることができます。Clinicの説明のみがユーザーに表示されます。二重列のアプローチを使用すると、Essbaseの一意性の要件を満たすために役立ちます。Clinicの例では、次の手順を使用して、クリニックIDが含まれる列への関連付けを追加できます。
集計後の計算をメジャーに適用する手段として他の論理列から列を派生する場合があります。
「論理列」ダイアログの「列ソース」タブで派生列式を指定します。
「計算ウィザード」を使用して一連の派生列を作成することもできます。「「計算ウィザード」の使用」を参照してください。
NQSConfig.INI
で、パラメータPREVENT_DIVIDE_BY_ZERO
がYES
に設定されている場合、Oracle BIサーバーでは、「アンサー」列計算の場合でも、ゼロ除算の状況でエラーが防止されます。Oracle BIサーバー では、物理SQLの記述時にnullif()
または同様の関数を使用してゼロ除算阻止式が作成されます。このため、PREVENT_DIVIDE_BY_ZERO
がYES
(デフォルト値)に設定されているかぎり、ゼロ除算エラーを回避するためにCASE
文を使用する必要はありません。
計算に事前集計を適用することもできます。「物理から論理表ソースへのマッピングの定義と計算項目の作成」を参照してください。
パフォーマンスを最適化するために、式ビルダーでは集計を定義しないでください。かわりに、「論理列」ダイアログの「集計」タブを使用します。「メジャー列の集計のデフォルト・レベルの設定」を参照してください。
式ビルダーを使用して、参照関数を作成することにより、多言語データベース・スキーマからデータを表示することができます。『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の「多言語データのサポート」を参照してください。
Oracle Business Intelligenceユーザーが分析やダッシュボードで通貨列を表示する通貨を選択できるように、論理列を構成できます。
すべてのユーザーで通貨オプションの同一の静的リストが表示されるようにこの機能を設定することも、指定する論理SQL文に基づいて変化する通貨オプションの動的リストを提供することもできます。
プレゼンテーション・サービスの式でセッション変数を使用する場合は、それらの名前の先頭にNQ_SESSION
を付ける必要があります。通貨値を表示する論理列を編集して、PREFERRED_CURRENCY
セッション変数を使用して適切な変換ファクタが使用されるようにします。
「セッション変数の作成」および「初期化ブロックの作成」を参照してください。
プレゼンテーション・サービスでこの機能を有効にするには、追加の構成が必要です。Oracle BIプレゼンテーション・サービスの構成に関する詳細は、Oracle Business Intelligence Enterprise Editionシステム管理者ガイドのユーザー定義の通貨オプションの定義を参照してください。
メジャーであるマップ済論理列に、集計ルールを指定する必要があります。
集計は、集計COUNT
およびCOUNTDISTINCT
を除いて、メジャー列でのみ実行する必要があります。メジャー列は、論理ファクト表にのみ指定できます。
オプションで、対象の論理列に関連付けられている別のディメンションに別の集計ルールを選択できます。たとえば、1つのディメンションに沿って集計列に問合せが実行された場合、1つのタイプの集計ルールを使用できる一方で、別のディメンションに沿って別の集計ルールを使用することもできます。
デフォルトの集計ルールが「個別のカウント」の場合、オプションで、特定の論理表ソースにオーバーライド集計式を指定できます。たとえば、なんらかの集計レベルがすでに含まれている別の集計表ソースに問合せを実行する場合に、オーバーライド集計式を指定できます。オーバーライドを指定しないと、デフォルトのルールが使用されます。
集計ルールEVALUATE_AGGRを選択して、問合せでデータ・ソースのカスタム・ファンクションをコールできるように指定できます。『Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Edition論理SQLリファレンス・ガイド』のEVALUATE_AGGRに関する項と「マルチディメンション・データ・ソースへの集計ルールの定義」を参照してください。
デフォルトで、データはスパースであると見なされます。ただし、まれな場合に、論理表ソースのデータ密度が高いことがあります。論理表ソースは、関連付けられているディメンション・レベルの組合せごとに行が存在する場合に密度が高いデータが含まれると見なされます。メジャー列に集計ルールを設定するときは、マッピング先のすべての論理表ソースのデータ密度が高い場合にのみデータ密度が高いと見なすことができます。
「論理列へのディメンション固有の集計ルールの設定」を参照してください。
大多数のメジャーで、各ディメンションに同一の集計ルールが設定されます。メジャーによっては、ディメンションごとに異なる集計ルールが設定されていることもあります。
たとえば、銀行は一定期間の単純な合計で計算された個別の預金の平均ではなく、特定期間の平均預金残高を計算できます。ディメンション固有の集計ルールを構成できます。指定した1つのディメンションに1つの集計ルールを指定し、他のディメンションには適用する他のルールを指定することができます。
ディメンション固有の集計を設定するには、ビジネス・モデルとマッピング・レイヤーでディメンションを構成する必要があります。論理表ソース(マッピング)の管理を参照してください。
指定したディメンションにルールを選択した後、「その他」というラベルが付いたディメンションを使用して、残りのディメンションに集計ルールを設定します。
メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。複数のディメンションがある場合は、「上へ」または「下へ」を使用して、ディメンション固有のルールの実行順序を変更できます。
複数の論理ファクト列に対する集計ルールを指定するには、このタスクの手順を使用してください。
メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。
少なくとも2つの列を選択して、「集計の設定」メニュー項目を有効にします。これらの列に派生列が含まれていると、「集計の設定」は有効になりません。
Essbase、Oracle OLAP、およびMicrosoft Analysis ServicesやSAP/BWなどのマルチディメンション・データ・ソースをソースとする論理メジャーに、集計ルールを定義する際のベスト・プラクティスについて説明します。
Essbaseのキューブなどのマルチディメンションのキューブを「物理」レイヤーにインポートすると、Oracle BIサーバーはデータソース内で設定された集計ルールを読み取れなくなります。デフォルトの動作の結果、メジャーは、外部集計のデフォルトの集計ルールを使用して自動的にインポートされます。
Oracle BIサーバーでは、外部集計は次のことを意味します。
特定のメジャーの基礎となる集計ルールを認識できない。
メジャーを計算できない。
常に基礎となるマルチディメンション・データ・ソースに集計の問合せを送信する。
基礎となるデータ・ソースは非常に効率的であるため、集計ルールをデータ・ソースにプッシュ・ダウンすることによって、Oracle BIサーバーから、処理でさらにオーバーヘッドを追加することなく結果を返すことができるようになります。「物理」レイヤーおよび「ビジネス・モデルとマッピング」レイヤーの両方で、データ・ソースに定義されている対応する集計ルールとともに、Oracle Business Intelligenceでメジャーごとに集計ルールを更新することをお薦めします。メジャーごとに集計ルールを更新することで、Oracle BIサーバーは必要に応じて追加の計算ができるようになります。Oracle BIサーバーから最適化された問合せが可能なかぎり引き続きプッシュ・ダウンされるため、問合せのパフォーマンスに影響はありません。
注意:
Oracle BIサーバーで、特定の問合せに対して追加の集計を実行する必要があり、集計ルールが外部集計のデフォルト値に設定されている場合、Oracle BIサーバーから次のエラーが返されます。
外部問合せブロック内で外部集計が検出されました。
このエラーは、Oracle BIサーバーで、基礎となるデータ・ソースの集計ルールを読み取れなかったために発生します。これらの問合せに対して正しい結果が返されるようにするには、基礎となるデータ・ソースに設定されている集計ルールと一致するように、Oracle BIリポジトリに設定されている集計ルールを変更する必要があります。
Oracle Business Intelligenceで定義されている集計ルールが、基礎となるデータ・ソースのルールと一致することが必要です。また、次の図に示しているように、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーの両方に適切な集計ルールを設定する必要もあります。
Oracle BIサーバー内に対応するファンクションがないカスタムの集計の場合、物理メジャー列とそれに対応する論理メジャー列の両方について集計を外部集計のままにすることをお薦めします。
注意:
Oracle OLAPデータ・ソースの場合、Oracle OLAP列に物理レイヤー集計ルールを明示的に設定することはありません。このため、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列にのみ集計ルールを設定する必要があります。
また、問合せでOracle OLAPデータ・ソース内に存在しない集計がリクエストされたときに、集計ルールが外部集計に設定されている場合、Oracle BIサーバーからエラーが返されます。このエラーを回避するには、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列に集計ルールを明示的に設定する必要があります。
Oracle OLAP列の集計ルールを外部集計以外のものに明示的に設定しないと、Oracle BIプレゼンテーション・サービスのカスタム・グループからのリクエストが失敗します。これは、カスタム・グループは常に、データ・ソースには存在しない集計をリクエストするためです。
「レベル」タブでディメンション・レベルを選択することによって、属性を論理レベルに関連付けることができます。
メジャーは、複数のディメンションのレベルに関連付けることができるほか、指定されたレベルに集計できます。あるレベルに関連付けられたメジャーは、レベルベース・メジャーと呼ばれます。問合せのコンテキストに下位のグレインが含まれていても、レベルベース・メジャーはそのグレインで計算されます。たとえば、yearlySalesが年レベルに関連付けられている場合、問合せSelect month, yearlySales
で年レベルで計算されます。
ディメンションは、「ディメンション」リストに表示されます。対象の属性が論理レベルに関連付けられている場合、レベルは「レベル」リストに表示されます。
特定のディメンションのレベルにメジャーを関連付ける別の方法として、ビジネス・モデルとマッピング・レイヤーでディメンション・ツリーを展開し、ターゲットのレベルに列をドラッグ・アンド・ドロップできます。「レベルベース・メジャーの計算」を参照してください。
管理ツールの「ビジネス・モデルとマッピング」レイヤーで、論理列をダブルクリックして、メジャーをディメンションの論理レベルと関連付けます。
「論理列」ダイアログで、「レベル」タブをクリックします。
「レベル」タブで、論理レベルの選択元のディメンションの「論理レベル」フィールドをクリックします。
「レベル」タブのレベルのリストでは、列ヘッダーをクリックすることによって、行をソートできます(昇順と降順を切り替えることができます)。
「論理レベル」リストで、レベルを選択します。
この処理を繰り返して、対象のメジャーを他のディメンションの他の論理ベルに関連付けます。
論理列をある表から別の表にドラッグ・アンド・ドロップすると、その論理列が移動されます。
同じ名前の列がすでに存在する場合は、新しい列の名前が変更されます(たとえば、mycolumn#1)。
「オプション」ダイアログの「論理列の移動時にプロンプトを表示」オプションを選択して、論理列をドラッグ・アンド・ドロップしたときに「移動列のソース」ダイアログが表示されるようにすることもできます。このダイアログでは、ドラッグ・アンド・ドロップの動作に関するオプションを選択できます。
「論理列の移動時にプロンプトを表示」オプションの詳細は、「管理ツールのオプションの設定」を参照してください。
この手順が完了すると、移動またはコピーした列が論理ソースに関連付けられます。