Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1.3.0) E90110-03 |
|
前 |
次 |
この章の構成は、次のとおりです。
Oracle BIリポジトリのビジネス・モデルとマッピング・レイヤーによって、データのビジネス・モデルつまり論理モデルが定義され、ビジネス・モデルと物理レイヤー・スキーマ間のマッピングが指定されます。
ビジネス・モデルには、物理レイヤーのオブジェクトとは異なり、常にディメンションがあり、データ・ソースの編成が反映されます。ビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。それぞれのビジネス・モデルには、論理表、論理列および論理結合が含まれます。
キーの概念など、論理表と物理表のオブジェクトでは似通った用語が使用されますが、ビジネス・モデルとマッピング・レイヤーの論理表および論理結合には、リレーショナル・モデルのものとは異なる独自のルール・セットがあります。たとえば、論理ファクト表にはキーが必要ではなく、論理結合が、可能な多くの物理結合を表す場合があります。
ビジネス・モデルとマッピング・レイヤーの論理表、結合、マッピングおよびその他のオブジェクトは通常、物理レイヤーから特定のビジネス・モデルにオブジェクトをドラッグ・アンド・ドロップしたときに自動的に作成されます。これらのオブジェクトが作成されたら、追加の論理結合の作成、列での計算や変換の実行、ディメンション表およびファクト表に対するキーの追加や削除などのタスクを実行できます。
物理レイヤーの要素をすべて作成したら、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表または列をドラッグして、メタデータに論理オブジェクトを作成できます。
この項では、次の項目について説明します。
管理ツールのビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。
各ビジネス・モデルには、ビジネス・モデル定義とビジネス・モデルの論理表から物理表へのマッピングを含めることができます。
リポジトリでの作業をオフライン・モードで行う場合、ときどきリポジトリを保存することを忘れないでください。ビジネス・モデル間で一貫性がない場合でも、オフライン・モードでリポジトリを保存できます。
ビジネス・モデルを作成したら、物理レイヤーからオブジェクトをドラッグ・アンド・ドロップすることによってビジネス・モデル・オブジェクトを作成できます。
ビジネス・モデルとマッピング・レイヤーのオブジェクトを物理レイヤーのソースに自動的にマップするには、物理レイヤーのオブジェクトを論理レイヤーの特定のビジネス・モデルにドラッグ・アンド・ドロップします。
物理表をビジネス・モデルとマッピング・レイヤーにドラッグすると、対応する論理表が作成されます。表内の物理列ごとに、対応する論理列が作成されます。一度に複数の表をドラッグすると、物理結合ごとに論理結合が作成されますが、これは、初めて表を新規ビジネス・モデルにドラッグしたときのみです。
マルチディメンション・データ・ソースに対するビジネス・モデルとマッピング・レイヤーでのオブジェクトの設定は、リレーショナル・データ・ソースに対する論理レイヤー・オブジェクトの設定と似ています。
ビジネス・モデル・レイヤーを作成する場合、物理レイヤー・キューブを論理レイヤーにドラッグ・アンド・ドロップできます。Oracle Business Intelligenceによって、すべてのメトリック、属性およびディメンションが保持され、完全に構成された一貫性のあるビジネス・モデルが自動的に作成されます。
Essbaseデータ・ソースの場合、各キューブを別々にビジネス・モデルとマッピング・レイヤーにドラッグして、Essbaseキューブごとに個別のビジネス・モデルを作成することをお薦めします。
「ビジネス・モデル図」を開いて、論理表と結合のグラフィカルなモデルを確認できます。
ビジネス・モデル図にアクセスするには、「ビジネス・モデルとマッピング」レイヤー(ディメンションやファクト表など)のオブジェクトを右クリックし、「ビジネス・モデル図」を選択します。その後、次のオプションのいずれかを選択します。
図全体。ビジネス・モデル内のすべての論理表と結合を表示します。
選択された表のみ。選択した論理表のみを表示します。論理結合は、選択したオブジェクト間に論理結合が存在する場合のみ表示されます。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。
選択された表と直接結合選択した論理表と、それらの表に結合している論理表を表示します。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。
選択されたファクト表とディメンション選択した論理表とそれらに関連付けられている論理ディメンションを表示します。このオプションは、選択対象に1つ以上のファクト表が含まれる場合にのみ指定できます。
注意:
ビジネス・モデル図には、論理表と結合のみが表示されます。ビジネス・モデル、ディメンション、階層など、ビジネス・モデルとマッピング・レイヤーのその他のオブジェクトは表示されません。結合は、結合の1側に矢印が付いた線で表されます。
ビジネス・モデル図に表を追加するには、「ビジネス・モデル図」ウィンドウを開いたままにし、追加する表を1つ以上右クリックします。その後、「ビジネス・モデル図」を選択し、表示オプションのいずれかを選択します。
ビジネス・モデル図に表示されているグラフィカル表および結合の右クリック・メニューから追加オプションを選択できます。たとえば、オブジェクトの削除やオブジェクトのプロパティの表示、または右クリック・オプションの「直接結合の追加」、「選択内容全体に結合された表の追加」および「すべての結合の追加」を使用して、関連するオブジェクトの追加を実行できます。また、「ツリー表示での検索」を選択して、中央ペインのビジネス・モデルとマッピング・レイヤー・ビュー内で特定のオブジェクトを検索したり、オンライン・モードのオブジェクトをチェックアウトしたりできます。
ビジネス・モデル図ビュー内のオブジェクトを右クリックして、「非表示」を選択し、図で特定のオブジェクトを非表示にすることもできます。非表示の効果は一時的で、永続するものではありません。
「ファイル」メニューの「印刷」および「印刷プレビュー」オプションを使用して、ビジネス・モデル図の印刷オプションを管理します。ツールバーの「印刷」オプションを使用することもできます。
論理結合の定義の詳細は、「ビジネス・モデル図を使用した論理結合の定義」を参照してください。
論理表は、ビジネス・モデルとマッピング・レイヤーに存在します。
各ビジネス・モデルで定義される論理スキーマには、少なくとも2つの論理表を含める必要があり、それらの論理表間の関係を定義する必要があります。
各論理表は、1つ以上の論理列と1つ以上の論理表ソースに関連付けられます。新規論理表ソースの追加、既存の表ソースの編集または削除、表ソースへのマッピングの作成または変更、または論理表ソースの使用時の定義を行うことができます。論理表ソースの作成を参照してください。
論理表名の変更、論理表ソースの並替え、および論理キーである主キーと外部キーの構成を実行できます
この項では、次の項目について説明します。
論理表を作成する場合は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに物理表をドラッグ・アンド・ドロップすることをお薦めします。物理スキーマに表が存在しない場合は、論理表を手動で作成できます。
物理レイヤーからビジネス・モデルとマッピング・レイヤーに物理表をドラッグ・アンド・ドロップすると、キーと外部キーの関係とともに、表の列も論理表にコピーされます。物理レイヤーのキーと結合をミラーリングした論理キーと論理結合が作成されます。
メニュー・オプション・メソッドを使用して論理表を作成した後、すべてのキーと結合を手動で作成する必要があります。
ビジネス・モデルとマッピング・レイヤーにオブジェクトを追加した後は、物理レイヤーのオブジェクトに影響を及ぼさずに、論理表のオブジェクトを変更できます。
表を新規作成した場合や、物理レイヤーからビジネス・モデルとマッピング・レイヤーに追加の表をドラッグした場合は、新規作成した表または新規にドラッグした表と前にドラッグした表との間の論理マッピングを作成する必要があります。
「結合マネージャを使用した論理結合の定義」および「ビジネス・モデル図を使用した論理結合の定義」を参照してください。
参照表には、ベース表の行に対応する多言語データが格納されます。『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の「Oracle Business Intelligenceのローカライズ」を参照してください。ビジネス・モデルとマッピング・レイヤーで表を作成したら、ディメンション表ごとに主キーを指定します。
論理ディメンション表には、論理主キーを指定する必要があります。論理キーは、1つ以上の論理列で構成できます。
注意:
論理ファクト表には論理キーを指定しないことをお薦めします。
論理表で外部キー結合を使用しないことをお薦めします。
論理外部キー結合を作成するには、「オプション」ダイアログで「論理外部キー結合作成の許可」オプションを有効にする必要があります。
「結合マネージャを使用した論理外部キー結合の作成」を参照してください。
「論理表」ダイアログの「外部キー」タブは、以前のリリースのOracle Business Intelligenceで使用していた可能性のある論理外部キーを確認するためのものです。
論理表間の関係は、論理結合によって表されます。
論理結合は、物理的な結合ではなく概念上の結合です。論理結合は特定のキーまたは列を結合しません。1つの論理結合が可能な多くの物理結合に対応する場合があります。
論理結合の重要なプロパティの1つがカーディナリティです。カーディナリティは、ある表内の行が結合先の表の行とどのように関連するかを表します。1対多のカーディナリティは、最初の論理ディメンション表の各行に対応する行が、2つ目の論理表には0個、1個または多数あることを意味します。管理ツールでは、ある表が、その他の論理表に対応しているすべての論理結合において多の側である場合、その表は論理ファクト表と見なされます。
Oracle BIサーバーで必要なメタデータによってビジネス・モデルに対する論理リクエストが物理データ・ソースに対するSQL問合せに変換されるように、論理表結合を指定する必要があります。論理結合情報によって、Oracle BIサーバーに、論理表間の多対1関係の情報が提供されます。この論理結合情報は、Oracle BIサーバーで基礎となるデータベースに対する問合せが生成されるときに使用されます。
次の両方が当てはまる場合、ビジネス・モデルとマッピング・レイヤーで論理結合を作成する必要はありません。
必要な物理表すべてをビジネス・モデルとマッピング・レイヤーに同時にドラッグ・アンド・ドロップすることによって論理表を作成する場合
論理結合が物理レイヤーの結合と同じである場合
ビジネス・モデルとマッピング・レイヤーでいくつかの論理結合を作成する必要が生じる場合があります。非常に単純なモデルの場合を除いて、すべての物理表を同時にドラッグ・アンド・ドロップすることはできません。
結合マネージャまたはビジネス・モデル図を使用して、論理結合を作成できます。物理レイヤーで複合結合を作成する場合は、式、および結合を作成する特定の列を指定できます。ビジネス・モデルとマッピング・レイヤーで論理結合を作成する場合は、式も結合を作成する列も指定できません。物理レイヤーに結合が存在するからといって、ビジネス・モデルとマッピング・レイヤーに一致する結合が必要なわけではありません。
注意:
論理表には外部キーを指定しないことをお薦めします。ただし、「オプション」ダイアログで「論理外部キー結合作成の許可」を選択した場合は、下位互換性のために、結合マネージャを使用して、論理外部キー結合を作成できます。
ファクト表の論理キーは、属性表に結合するキー列を使用して構成します。特定のサード・パーティの問合せおよびレポート作成ツールのODBCデータ・ソースとしてOracle BIサーバーを使用する場合に、論理外部キー結合が必要なことがあります。
この項では、次の項目について説明します。
ビジネス・モデル図には、論理表とそれらの表の間に定義されている結合が表示されます。
ビジネス・モデル図で、結合は、選択した2つの表の間の線で表され、結合の「1」側が矢印になっています。この図は、ビジネス・モデル図での結合を示しています。
ビジネス・モデル図を使用して、表の間に論理結合を定義できます。「駆動表の指定」を参照してください。
この駆動表オプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。
重要:
駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。
結合マネージャを使用して、論理結合の関係の表示と論理結合の作成を実行できます。
また、お薦めできませんが、「オプション」ダイアログで「論理外部キー結合作成の許可」を選択した場合は、結合マネージャを使用して、論理外部キー結合を作成できます。
この項では、次の項目について説明します。
ビジネス・モデルとマッピング・レイヤーでは、論理外部キー結合よりも論理結合をお薦めします。
駆動オプションを使用して、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化します。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。
注意:
駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。
「駆動表の指定」を参照してください。
特定のサード・パーティの問合せおよびレポート作成ツールのODBCデータ・ソースとしてOracle BIサーバーを使用する予定の場合に、論理外部キー結合が必要なことがあります。
論理外部キーは作成しないでください。「駆動表の指定」を参照してください。
この駆動表オプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。
重要:
駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。
駆動表は、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでクロスデータベース結合を処理する方法の最適化に有用です。
駆動表の指定は、駆動表から選択された行数が結合先の表の行数よりはるかに少ない場合にのみ、問合せの最適化に使用できます。
重要:
問題が発生しないように、駆動表は、非常に小さい、つまり1,000行未満の場合にのみ指定します。
「論理結合」ウィンドウから論理結合に駆動表を指定できます。駆動表を指定した場合、Oracle BIサーバーでは、問合せ計画で駆動表の使用によって問合せ処理が最適化されると判断された場合に駆動表が使用されます。小さな表(駆動表)がスキャンされ、パラメータ化された問合せが大きな表に発行されて一致する行が選択されます。その後で、その他の表が、その他の駆動表を含めて、一緒に結合されます。
重要:
駆動表から行が多数選択された場合、駆動表の指定によって重大なパフォーマンス低下をまねくおそれがあり、MAX_QUERIES_PER_DRIVE_JOIN
の制限値を超えた場合は、問合せが終了します。
駆動表は、内部結合に使用し、駆動表が左外部結合の左の表である場合、または右外部結合の右の表である場合は、外部結合に使用します。駆動表は、完全外部結合には使用されません。駆動表を指定する手順については、論理結合の定義を参照してください。
駆動表のパフォーマンスを制御およびチューニングする機能として、データベース機能表に2つのエントリがあります。
MAX_PARAMETERS_PER_DRIVE_JOIN
これは、パフォーマンス・チューニング・パラメータです。値が大きいほど、生成されるパラメータ化された問合せの数が少なくなります。値が大きすぎると、バックエンド・データベース制限によりパラメータ化問合せが失敗します。値を0 (ゼロ)に設定すると、駆動表結合がオフになります。
MAX_QUERIES_PER_DRIVE_JOIN
これは、リソース集中型の駆動表結合を防ぐために使用します。パラメータ化問合せの数がこの値を超えると、問合せが終了し、エラー・メッセージがユーザーに返されます。
物理問合せからOracle BIサーバーがトリミングできる結合を決定する際に、Oracle BIサーバーではこの項で説明する要因が考慮されます。
次の結合トリミングのルールが、論理表ソース内の表に対して施行されます。
結合の外部性(内部、左外部、右外部、または完全外部)。
結合カーディナリティ({0..1、1、N、不明}対{0..1、1、N、不明})。たとえば、0..1対Nはゼロまたは1対複数の結合を表します。結合の少なくとも片側には、不明カーディナリティを除き、9つの結合カーディナリティの組合せがあります。
論理表ソースにWHERE句のフィルタが含まれているかどうか。
物理結合が複合結合または外部キー結合であるかどうか。
Oracle BIサーバーで結合をトリミングする場合、次の基準を満たす必要があります。
トリミングされた表の参照は、列の予測されるリストやWHERE句の中など、問合せ内のどの場所にも存在しません。
トリミングされた表によって結果セットのカーディナリティが変更されることがあってはいけません。結合を削除することによって選択した行数が変更される可能性がある場合、Oracle BIサーバーでは結合をトリミングしません。
次の条件のいずれかがtrueである場合、結合には、結果セットの行数を変更する可能性があるものと見なされます。次の条件のいずれでもtrueである場合、結合は問合せからトリミングされません。
この結合は完全外部結合です。内部結合、左外部結合および右外部結合のみがトリミングの候補です
いずれかの側で結合カーディナリティが不明です。
トリミングする表が結合の複数の側にあります。つまり、マスター/詳細の関係で詳細表はトリミングされません
トリミングする表のカーディナリティが0..1であり、結合が内部結合です。カーディナリティ0..1は、表内に一致する行が存在する可能性があることを意味します。一方の側に0..1のカーディナリティが設定されている結合は、実質的にフィルタのように機能します。選択した行数を変更しないと、Oracle BIサーバーで表をトリミングできません。
トリミングする表が、左外部結合の左側、または右外部結合の右側にあり、行を維持する表は決してトリミングされません。このルールでは、DISTINCT句が問合せに追加される属性のみを選択する問合せに対して、例外が1つあります。DISTINCT句であるため、行を維持する表をトリミングしてもNull指定の表から返される行数に影響はありません。属性に対する個別の問合せの特殊なケースでは、外部結合からの行を維持する表をトリミングできます。
次の表に、Oracle BIサーバーで問合せから結合をトリミングできる例を示します。
シナリオ | 結果 |
---|---|
従業員 内部結合 部門 |
部門は内部結合の1の側にあるため、Oracle BIサーバーでトリミングできます。 従業員は内部結合の複数の側にあるため、Oracle BIサーバーでトリミングできません。 |
従業員 左外部結合 部門 |
部門は結合の1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。 従業員は複数の側にあり、左外部結合の左側、行を維持する表にあるため、Oracle BIサーバーでトリミングできません。 |
従業員 右外部結合 部門 |
部門は右外部結合の右側、行を維持する表にあるため、Oracle BIサーバーでトリミングできません。 従業員は結合の複数の側にあるため、Oracle BIサーバーでトリミングできません。 |
従業員 内部結合 従業員情報 |
両方の表が内部結合の1の側にあるため、Oracle BIサーバーで両側ともトリミングできます。 |
従業員 左外部結合 従業員情報 |
従業員情報は結合の1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。 従業員は左外部結合の左側の行を維持する表にあるため、Oracle BIサーバーでトリミングできません。 |
従業員 右外部結合 従業員情報 |
従業員情報は右外部結合の右側の行を維持する表にあるため、Oracle BIサーバーでトリミングできます。 従業員は結合の1の側にあり、右外部結合の左側、Nullを指定する表にあるため、トリミングできます。 |
従業員 内部結合 部門 |
部門は内部結合の0..1の側にあるため、Oracle BIサーバーでトリミングできます。 従業員は内部結合の複数の側にあるため、Oracle BIサーバーでトリミングできます。 |
従業員 左外部結合 部門 |
部門は外部結合の0..1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。 Oracle BIサーバーでは、外部結合の0..1の側にあるNullを指定する表をトリミングでき、その理由は、この場合は問合せから部門をトリミングしても、従業員表から選択した行数が変更されないためです。 従業員は外部結合の複数の側にあるため、Oracle BIサーバーでトリミングできます。 |
従業員 完全外部結合 部門 |
結合は完全外部結合なので、Oracle BIサーバーでは両側ともトリミングできません。 |
従業員 複数対複数 プロジェクト |
結合は多対多であるため、Oracle BIサーバーでは両側ともトリミングできません。 |
従業員 不明 部門 |
結合のカーディナリティが不明であるため、Oracle BIサーバーでは両側ともトリミングできません。 |
物理図には、選択した論理オブジェクトにマップする物理表と、各表間の物理結合が示されます。
結合オプションの1つである「ビジネス・モデル内のオブジェクトと直接結合」は、論理レイヤーに特有のオプションです。このオプションによって、次の両方の条件を満たす表の物理図が作成されます。
選択されたオブジェクト内の表、および直接結合する表
ビジネス・モデル内でマップされている(ビジネス・モデルの論理表ソースに存在する)表
多くの論理列は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表をドラッグすることによって自動的に作成されます。
その他の論理列は、特に他の論理列に基づいた計算が含まれる論理列は、後で作成することができます。
論理列は、属している論理表から展開されるツリー構造で表示されます。論理列が主キー列の場合または主キーに関与している場合、その論理列はキー・アイコンが付いて表示されます。論理列に集計ルールが設定されている場合は、ルール・アイコンが付いて表示されます。ビジネス・モデルとマッピング・レイヤーで論理列を並べ替えることもできます。
この項では、次の項目について説明します。
論理列には、ソート順序の基礎とする別の列を指定できます。
値をアルファベット順(辞書式順)に並べ替えないときは、列のソート順序を変更します。
辞書式順序のソートでは、数字が別のグループに分けられるのではなく、アルファベットのスペル順で並べられます。
たとえば、月をソートする場合(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
セッション変数を使用して適切な変換ファクタが使用されるようにします。
「セッション変数の作成」および「初期化ブロックの作成」を参照してください。
次の論理列式では、NQ_SESSION.PREFERRED_CURRENCY
変数の値を使用して、複数の通貨列が切り替わります。各通貨列には変換された適切な値が含まれるよう設定されています。
INDEXCOL( CASE VALUEOF(NQ_SESSION.PREFERRED_CURRENCY) WHEN 'gc1' THEN 0 WHEN 'gc2' THEN 1 WHEN 'orgc' THEN 2 WHEN 'lc1' THEN 3 ELSE 4 END, "Paint"."Sales Facts"."USDCurrency", "Paint"."Sales Facts"."DEMCurrency" , "Paint"."Sales Facts"."EuroCurrency" , "Paint"."Sales Facts"."JapCurrency" , "Paint"."Sales Facts"."USDCurrency" )
プレゼンテーション・サービスでこの機能を有効にするには、追加の構成が必要です。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つの論理列に複数の論理表ソースがマップされており、ソースごとに異なる集計ルールを適用する場合に選択します。
「追加」ボタンをクリックして、個々の集計ルールを指定する論理表ソースを選択します。
「参照」ダイアログで、追加する論理表ソースを選択して「OK」をクリックします。
選択した論理表ソースの「式」リストで、使用する集計ルールを選択します。
「追加」ボタンをクリックして、集計ルールを指定する追加のディメンションを選択します。
「参照」ダイアログで、追加するディメンションを選択して、「OK」をクリックします。
選択したディメンションの「式」リストで、使用する集計ルールを選択するか、「式ビルダー」ボタンをクリックし、式ビルダーを使用して集計ルールを作成します。
「ディメンションに基づく」を選択すると、「データの密度が高い」オプションが表示されます。この列のマップ先の論理表ソースがすべて密度が高い場合はこのオプションを選択します。
「データの密度が高い」を選択することは、対象の列のマップ先のすべてのソースで、ソースが表しているディメンション・レベルの組合せごとに行があることを示しています。対象の列で使用されるいずれかの表ソースに密度の高いデータが含まれない場合にこのオプションを選択すると、正しくない結果が返されます。
大多数のメジャーで、各ディメンションに同一の集計ルールが設定されます。メジャーによっては、ディメンションごとに異なる集計ルールが設定されていることもあります。
たとえば、銀行は一定期間の単純な合計で計算された個別の預金の平均ではなく、特定期間の平均預金残高を計算できます。ディメンション固有の集計ルールを構成できます。指定した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)。
「オプション」ダイアログの「論理列の移動時にプロンプトを表示」オプションを選択して、論理列をドラッグ・アンド・ドロップしたときに「移動列のソース」ダイアログが表示されるようにすることもできます。このダイアログでは、ドラッグ・アンド・ドロップの動作に関するオプションを選択できます。
「論理列の移動時にプロンプトを表示」オプションの詳細は、「管理ツールのオプションの設定」を参照してください。
この手順が完了すると、移動またはコピーした列が論理ソースに関連付けられます。アクション・リストの値は次のとおりです。
「無視」を選択した場合、ターゲットの表のSourcesフォルダに論理ソースは追加されません。
「新規作成」を選択した場合、ターゲットの表のSourcesフォルダに、論理列に関連付けられた論理ソースのコピーが作成されます。
「既存のものを使用」を選択した場合、ターゲット表の「ソース」フォルダから論理ソースを選択する必要があります。
Oracle BIプレゼンテーション・サービスでユーザーが列データを更新してデータ・ソースに変更をライトバックできるように、個々の論理列を構成できます。
特定の列でのライトバックを有効にするには、対象の論理列の「書込み可能」オプションを選択して、対応するプレゼンテーション列の「読取り/書込み」権限を有効にする必要があります。対応する物理表のキャッシュを無効にする必要もあります。
Oracle BIプレゼンテーション・サービスでライトバックを有効にするには、追加タスクを実行する必要があります。詳細は、Oracle Business Intelligence Enterprise Editionシステム管理者ガイドの分析とダッシュボードでのライトバック用の構成を参照してください。
ビジネス・モデルとマッピング・レイヤーで表示フォルダを作成して、オブジェクトを編成することができます。表示フォルダが問合せ処理に影響を与えることはありません。
表示フォルダを作成すると、選択した表とディメンションが、表示フォルダにはショートカットとして表示され、ビジネス・モデル・ツリーにはオブジェクトとして表示されます。オブジェクトを非表示にして、表示フォルダのショートカットのみが表示されるようにすることができます。これらのオブジェクトを非表示にする方法は、「システム管理ツールのオプションの設定」の「オプション」ダイアログの「リポジトリ」タブに関する情報を参照してください。
注意:
表示フォルダ内の表を削除すると、そのオブジェクトへのショートカットのみが削除されます。表示フォルダ内の列を削除した場合は、その列が実際に削除されます。
ブリッジ表では、表間の多対多の関係を解決できます。
たとえば、「従業員」表に従業員に関する情報を格納して、従業員が担当している業務に関する情報を「業務」表に格納するとします。ただし、組織の従業員が複数の業務を担当している場合や、同じ業務を複数の従業員が担当している場合があります。このような状況では、「従業員」表と「業務」表の関係が多対多になります。
この多対多の関係を解決するには、「割当て」というブリッジ表(中間表)を作成します。「割当て」表の各行は一意で、1つの業務を担当する1人の従業員を表します。従業員が複数の業務を担当している場合、「割当て」表にはその従業員について複数の行が設定されます。1つの業務を複数の従業員が担当している場合、「割当て」表にはその業務について複数の行が設定されます。「割当て」表の主キーはコンポジット・キーで、従業員IDが含まれる列と業務IDが含まれる列で構成されます。
「割当て」表は、「業務」表と「従業員」表の間のブリッジ表として機能するため、「割当て」表を使用すると、従業員と業務の多対多の関係を次のように解決できます。
従業員と割当ての1対多の関係
割当てと業務の1対多の関係
この図は、ブリッジ表および関連するディメンション表の例の物理レイヤー・ビューを示しています。
問合せ処理を効率的にするために、ブリッジ表に追加列として重みファクタを含めて、このファクタがETL時に計算されるようにする必要があります。
次の各項では、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーでブリッジ表をモデリングする方法を説明します。
物理レイヤーでブリッジ表をモデリングするには、対象のブリッジ表とその関連ディメンション表との間に結合を作成します。
ビジネス・モデルとマッピング・レイヤーでは、ブリッジ表に関連付けられている2つのディメンション表を単一ディメンションでモデリングするか、または2つの個別のディメンションでモデリングするかを選択できます。
関連ディメンション表を単一ディメンションでモデリングするには、ブリッジ表と他方のディメンション表にマップする2つ目の論理表ソースを作成し、他方のディメンション表から列を追加します。ファクト表に結合されていないブリッジ表および関連付けられたディメンション表をドラッグしないでください。前述の例では、「割当て」表と「従業員」表以外のすべてのオブジェクトをドラッグします。
2つの個別の論理表ソースを設定することによって問合せがより効率的になります。これは、この設定によって、単一のディメンション表に対する問合せにブリッジ表が関係しなくなるためです。
ブリッジ表の名前をソースの名前として使用することをお薦めします。
ブリッジ表ソースを伴う論理表も含め、論理表に基づいてディメンションを作成できます。
Oracle BIリポジトリで、バイナリ・ラージ・オブジェクト(BLOB)データとキャラクタ・ラージ・オブジェクト(CLOB)データをモデリングする方法について説明します。
CLOBデータは、任意の文字セットによるラージ・プレーン・テキストのドキュメントです。サポートされているBLOBイメージ・タイプは、GIF、PNG、TIFF、JPEGおよびBMPです。サポートされているBLOB形式は、PDF、オーディオまたはビデオです。
インポート後のBLOB列のデフォルトのデータ型はLongVarBinaryで、CLOB列の場合はLongVarCharです。BLOBまたはCLOBの列は、Oracle BIサーバーのMaxFieldSize
の限度である32 KBを超えないようします。この32 KBの限度は、Microsoft Internet Explorerブラウザの制限でもあります。
物理結合を構成するときは、主キーが他の表の外部キーとして使用される場合は、主キーを使用して表の間の物理結合を作成します。