Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1) E70045-01 |
|
![]() 前 |
![]() 次 |
この章では、Oracle BIリポジトリの物理レイヤー内のオブジェクトでの作業方法について説明し、物理レイヤー内のOracle Essbase、Hyperion Financial ManagementおよびOracle OLAPの表現について説明します。不透明なビュー、ヒント、行数、物理レイヤー・フォルダなどの他の物理レイヤーの概念、および物理図の使用方法についても説明します。
この章には次のトピックが含まれます:
Oracle BIリポジトリの物理レイヤーには、バックエンド・データ・ソースからの物理データ構成体を表すオブジェクトが含まれます。物理レイヤーでは、物理問合せの記述にOracle BIサーバーで使用できるオブジェクトと関係が定義されます。このレイヤーによってデータ・ソースの依存性がカプセル化され、移植とフェデレーションが可能になります。
リポジトリ・モデルの各データ・ソースには通常、対応する専用の物理モデルが物理レイヤーにあります。物理レイヤーの最上位レベルのオブジェクトがデータベースで、データベースのタイプによって、物理モデルに適用される機能とルールが決まります。たとえば、Oracle 11gなどのリレーショナル・データベースには、物理表や結合などのオブジェクトが含まれます。一方、Essbase 9などのマルチディメンション・ソースには、キューブ表と物理階層が含まれます。このため、この章の一部の項の内容が、特定のデータベース・タイプにのみ適用される場合があります。
物理レイヤーの物理表、キューブ、結合などのオブジェクトは通常、データ・ソースからメタデータをインポートすると自動的に作成されます。これらのオブジェクトをインポートしたら、データ・ソースにはない追加結合パスの作成、別のロールで機能する必要がある物理表の別名表の作成、マルチディメンション・データ・ソースからの物理階層のプロパティの調整などのタスクを実行できます。
管理ツールの右ペインでの物理レイヤー・オブジェクトを使用した作業の他に、物理図ビューを開いて、表と結合のグラフィカル・モデルにアクセスすることもできます。
注意: 物理図は通常、マルチディメンション・ソースではなく、リレーショナル・ソースおよびXMLソースで使用されます。マルチディメンション・ソースの物理図ビューには、キューブ表を非正規化表で表したものが表示されますが、マルチディメンション物理モデルでは主に、ディメンション、階層および列を使用して物理ツリーで作業を行います。 |
物理図にアクセスするには、物理レイヤー・ツリー・ビュー(物理データベースや表など)のオブジェクトを右クリックし、「物理図」を選択します。その後、次のオプションのいずれかを選択します。
選択されたオブジェクトのみ。選択したオブジェクトのみを表示します。結合は、選択したオブジェクト間に存在する場合にのみ表示されます。
オブジェクトと直接結合。選択したオブジェクトと、それらのオブジェクトに結合している表を表示します。
オブジェクトとすべての結合。選択したオブジェクトと、それらのオブジェクトに結合パスによって直接的または間接的に関連しているすべてのオブジェクトを表示します。スキーマ内のすべてのオブジェクトが関連している場合は、このオプションを使用することによって、1つの表のみを選択した場合でも、すべての表が図に表示されます。
物理図には、物理表と結合のみが表示されることに注意してください。接続プール、物理階層、レベルなど、物理レイヤーのその他のオブジェクトは表示されません。
図8-1は、物理図を示しています。
ツリー・ビュー内の1つ以上のオブジェクトを選択して、ツールバーの「物理図」ボタンをクリックすることによって、物理図を開くこともできます。
選択したオブジェクトのみが表示されます。結合は、選択したオブジェクト間に存在する場合にのみ表示されます。結合は、結合の「1」側に矢印が付いた線で表されます。
モデルの論理対物理マッピングをよりよく理解できるように、ビジネス・モデルとマッピング・レイヤー・ツリー・ビューで1つ以上のビジネス・モデル、論理表または論理表ソースを選択して、ツールバーの「物理図」ボタンをクリックすることによって、特定の論理オブジェクトに関連付けられている物理オブジェクトを表示できます。選択したオブジェクトに関連する物理オブジェクトのみが表示されます。論理オブジェクトを右クリックして、「物理図」サブメニューから「ビジネス・モデル内のオブジェクトと直接結合」を選択することによっても、同じ情報を表示することができます。他のいずれかの物理図表示オプションを選択することもできます。
物理図に表を追加するには、「物理図」ウィンドウを開いたままにし、追加する表を1つ以上右クリックします。その後、「物理図」を選択し、表示オプションのいずれかを選択します。
追加オプションは、物理図に表示されているグラフィカル表および結合の右クリック・メニューから選択できます。たとえば、オブジェクトの削除やオブジェクトのプロパティの表示、または右クリック・オプションの「直接結合の追加」、「選択内容全体に結合された表の追加」および「すべての結合の追加」を使用して、関連するオブジェクトの追加を実行できます。また、「ツリー表示での検索」を選択して、右ペインの物理レイヤー・ツリー・ビュー内で特定のオブジェクトを検索したり、オンライン・モードのオブジェクトをチェックアウトしたりできます。
物理図ビュー内のオブジェクトを右クリックして、「非表示」を選択し、図で特定のオブジェクトを非表示にすることもできます。ただし、この効果は一時的で、永続するものではありません。
「ファイル」メニューの「印刷」および「印刷プレビュー」オプションを使用して、物理図の印刷オプションを管理します。ツールバーの「印刷」オプションを使用することもできます。
次の項も参照してください。
物理図およびビジネス・モデル図の使用(ズーム、パンおよび表のレイアウトの制御の詳細)
物理図を使用した物理結合の定義(物理結合の定義の詳細)
フォルダを使用して、物理レイヤーの内容を整理します。
この項には次のトピックが含まれます:
物理レイヤー・カタログは、様々なスキーマをグループ化するためのオプションの方法です。1つのカタログには、物理データベース・オブジェクトのスキーマ(メタデータ)がすべて含まれます。1つのスキーマには、特定のユーザーまたはアプリケーションに関するメタデータ情報のみが含まれます。
次のことに注意してください。
物理カタログ・オブジェクトまたは物理スキーマ・オブジェクトを作成するには、物理データベース・オブジェクトを作成しておく必要があります。
特定のタイプのグループ化を実装した後に、それを変更することはできません。たとえば、データベース、スキーマ、表の順に実装する場合、後でカタログを追加することはできません。
変数を使用してカタログ・オブジェクトとスキーマ・オブジェクトの名前を指定できます。たとえば、複数のクライアントのデータがあり、クライアントごとに個別のカタログにデータを格納できるようにデータ・ソースを構造化したとします。この場合、たとえばClientという名前のセッション変数を初期化して、ユーザーがOracle BIサーバーにサインオンしたときにカタログ・オブジェクトの名前を動的に設定するために使用できます。
使用するセッション変数は、「物理カタログ」または「物理スキーマ」ダイアログで指定します。
注意: 「動的名前」タブは、少なくとも1つのセッション変数を定義しないかぎり、アクティブになりません。 |
使用するセッション変数を「動的名前」タブで指定するには:
「動的名前」タブの「名前」列で、使用するセッション変数の名前をクリックします。変数の初期値(存在する場合)が、「デフォルトのイニシャライザ」列に表示されます。
強調表示された変数を選択するには、「選択」をクリックします。
動的名前フィールドに、変数の名前が表示され、「選択」ボタンが「クリア」ボタンに切り替わります。
セッション変数の割当てを「動的名前」タブで削除するには:
「クリア」をクリックして、動的名前としての変数の割当てを削除します。
割り当てられていない値が動的名前フィールドに表示され、「クリア」ボタンが「選択」ボタンに切り替わります。
「動的名前」タブで列エントリをソートするには:
「名前」または「デフォルトのイニシャライザ」列ヘッダーをクリックして列のエントリをソートします。列ヘッダーをクリックすることにより、列タイプに従って、列のエントリの順序が昇順と降順で切り替わります。
物理レイヤーで表示フォルダを作成して、表オブジェクトを編成することができます。表示フォルダが問合せ処理に影響を与えることはありません。表示フォルダを作成したら、選択した表が、表示フォルダにはショートカットとして表示され、物理レイヤー・ツリーにはオブジェクトとして表示されます。表示フォルダのショートカットのみが表示されるようにオブジェクトを非表示にできます。これらのオブジェクトを非表示にする方法の詳細は、「システム管理ツールのオプションの設定」の「オプション」ダイアログの「リポジトリ」タブに関する情報を参照してください。
注意: 表示フォルダ内の表を削除すると、そのオブジェクトへのショートカットのみが削除されます。表示フォルダ内の列を削除した場合は、その列が実際に削除されます。 |
物理表示フォルダを設定するには:
管理ツールの物理レイヤーで、物理データベースを右クリックして、「新規オブジェクト」を選択し、「物理表示フォルダ」を選択します。
「物理表示フォルダ」ダイアログで、フォルダの名前を入力します。
表示フォルダに表を追加するには、「追加」をクリックします。「参照」ダイアログで、フォルダに追加するファクト表または物理表を選択し、「選択」をクリックします。
または、ダイアログを閉じてから、1つ以上の物理表を表示フォルダにドラッグできます。
「OK」をクリックします。
ここでは、Oracle BIリポジトリの物理レイヤーで物理表オブジェクトを使用して作業する様々な処理を説明します。リレーショナル・データ・ソースからの物理表とマルチディメンション・データ・ソースからの物理キューブ表の両方で、「物理表」表タイプが使用されます。
この項で説明するタスクの多くが、リレーショナル・データ・ソースとマルチディメンション・データ・ソースに適用されます。マルチディメンション・データ・ソースに固有の追加情報は、「物理レイヤーのマルチディメンション・ソースでの作業」も参照してください。
この項には次のトピックが含まれます:
物理表は、Oracle BIリポジトリの物理レイヤーにあるオブジェクトの1つで、データ・ソースの表に対応しています。物理表のメタデータは通常、データ・ソースからインポートされます。このメタデータによって、Oracle BIサーバーでは、SQLリクエストを使用してデータ・ソース表にアクセスできるようになります。
物理表を削除すると、依存オブジェクト(列、キー、外部キーなど)がすべて削除されます。物理キューブ表を削除すると、階層も削除されます。物理表に別名が存在する場合、削除は失敗します。
データ・ソース表を物理レイヤーにインポートできることに加えて、「物理表」ダイアログの「表タイプ」フィールドで値を使用することによって、物理レイヤーに仮想物理表を作成することができます。仮想表を作成すると、Oracle BIサーバーおよび基礎となるデータ・ソースで、詳細な問合せリクエストを実行するための適切なメタデータを使用できるようになります。
物理表は、ストアド・プロシージャまたはSELECT
文に格納できます。SELECT
文から作成した仮想物理表も不透明なビューの1つです。不透明なビューを定義してデータ・ソースにデプロイすると、デプロイされたビューを作成できます。詳細は、「不透明なビューのデプロイ」を参照してください。
「物理表」ダイアログの「一般」タブの「表タイプ」リストを使用して、物理表オブジェクトのタイプを指定します。表8-1は、指定できるオブジェクト・タイプについて説明しています。
表8-1 物理表の表タイプ
表タイプ | 説明 |
---|---|
物理表 |
物理表オブジェクトがデータ・ソース表を表すことを指定します。この表タイプは、リレーショナル物理表とマルチディメンション・キューブ表の両方で使用されます。 |
ストアド・プロシージャ |
物理表オブジェクトがストアド・プロシージャであることを指定します。このオプションを選択した場合、テキスト・ボックスにストアド・プロシージャを入力します。この表に対するリクエストによって、指定したストアド・プロシージャがコールされるようになります。 ストアド・プロシージャがデータ・ソース固有である場合は、「データベース固有のSQLの使用」を選択します。このオプションを選択すると、「データベース」列に、サポートされるデータ・ソースがブランド別に表示されます。デフォルト値はrootです。左側のデータベース・タイプを選択して、右側に対応する文字列を入力することにより、データ・ソース固有の初期化文字列を入力できます。問合せ対象のデータベース・タイプに対応するデータベース固有の文字列が定義されていない場合は、デフォルトのオプションの初期化文字列が実行されます。 Oracle Database内のストアド・プロシージャからは通常、結果セットが返されることはありません。このため、これらのストアド・プロシージャをOracle Business Intelligence内で初期化することはできません。プロシージャをOracleファンクションとしてリライトし、管理ツールの初期化ブロックの 次の例は、 SELECT user_id, get_roles(user_id), first_name || ' ' || last_name FROM csx_security_table WHERE user_id = ':USER' and password = ':PASSWORD' |
選択 |
物理表オブジェクトが この表に対するリクエストによって、 データ・ソース固有の 物理SQLを使用して不透明ビューをデプロイする場合、VALUELISTOF関数を使用します。 このタイプの表は、不透明なビューとも呼ばれます。詳細は、「不透明なビューのデプロイ」を参照してください。 |
別名表(別名)は、別の物理表をソース(オリジナル表)として参照する物理表です。別名表を使用すると、既存の表を毎回インポートする必要なく何度も再利用できるようになるため、別名表が物理レイヤーの設計上の重要な部分になる場合があります。
別名表を作成する主な理由は2つあります。
1つのデータ・ソース表が、複数のセマンティック・ロールで機能する必要がある場合に、それぞれのキー、名前または結合が異なる複数の表を設定するため。この場合の別名表の設定は、三角結合または循環結合を回避するための1つの方法です。
たとえば、ファクト表の発注日と発送日が両方とも時間ディメンション・データ・ソース表の同じ列をポイントしているのに、別々にラベル付けされ、結合が1つの別名表として各ロールが表されるようにこのディメンション表に別名を付ける場合があります。これらの別個のロールはビジネス・モデルに適用されるため、「発注日」と「発送日」は2つの異なる論理ディメンションの一部になります。1つの論理問合せに両方の列が含まれる場合に、物理問合せでは両方が含まれるようにSQL文で別名が使用されます。
別名を使用すると、データ・ソース表が、ファクト表、および別のファクト表に結合している(通常、ファン・トラップと呼ばれる)ディメンション表の両方のロールとして機能できるようになります。
物理表名に、ベスト・プラクティスのネーミング規則を含めるため。たとえば、別名表の名前に表タイプ(ファクト、ディメンション、ブリッジなど)を接頭辞として付け、元の物理表名を変更せずにおくことができます。組織によっては、すべての物理表に別名表を作成して、ベスト・プラクティスのネーミング規則を施行するところもあります。この場合、すべてのマッピングと結合は、オリジナル表ではなく、別名表に基づいています。
別名表名は、SQL問合せに出現します。意味のある表名を指定するために別名表を使用すると、これらの表を参照するSQL問合せで読取りがより簡単になります。例:
WITH SAWITH0 AS (select sum(T835.Dollars) as c1 from FactsRevT835/*AllRevenue(Billed Time Join)*/) select distinct 0 as c1, D1.c1 as c2 from SAWITH0 D1 order by c1
この問合せでは、意味のある別名表名「A11 Revenue (Billed Time Join)」が簡単なオリジナル物理表名「FACTSREV」に適用されています。この場合、別名表名によって、SQL問合せでの出現時にその都度果たしていたロールに関する情報が提供されます。
別名表に、オリジナル表とは異なるキャッシュ・プロパティを設定できます。別名表に異なるキャッシュ・プロパティを設定するには、別名表の「物理表」ダイアログでオプション「ソース表キャッシュ・プロパティの上書き」を選択します。別名表で、列を追加、削除または変更することはできません。列は自動的に同期化されるため、手動の操作は必要ありません。
同期化によって、オリジナル表とそれに関連する別名表が必ず同じ列定義を持つようになります。たとえば、オリジナル表で1つの列を削除すると、その列は別名表から自動的に削除されます。
すべての別名表を先に削除しないかぎり、オリジナル表を削除することはできません。または、オリジナル表とその別名表をすべて選択して、同時に削除することができます。
変更後のオリジナル表が現在のオリジナル表のスーパーセットになる場合は、別名表のオリジナル表を変更できます。ただし、オリジナル表を変更することによって使用中の列が削除された場合は、この変更の結果、リポジトリの整合性がなくなります。これを実行しようとすると、問題が発生する可能性があることを知らせ、このアクションのキャンセルを求める警告メッセージが表示されます。整合性チェックによって、孤立した別名が特定されます。
オンライン・モードで物理表または物理列を編集した場合は、別名の表および列をすべてチェックアウトする必要があります。オンライン・チェックアウトの動作では、次の規則が使用されます。
オリジナルの表または列をチェックアウトすると、その別名の表および列もすべてチェックアウトされます。
別名の表または列をチェックアウトすると、そのオリジナルの表および列もチェックアウトされます。
チェックアウト・オプションは、オンラインのリポジトリ(読取り専用ではない場合)と、オリジナルおよび別名の表と列すべてに使用できます。
別名表では、そのオリジナル表からプロパティがいくつか継承されます。プロキシ設定されたプロパティは、常にオリジナル表と同じ値で、変更することはできません。つまり、プロキシ設定されたプロパティは、別名表のダイアログではグレー表示されるプロパティです。オリジナル表でプロキシ設定されたプロパティの値が変更された場合は、同じ変更が別名表で適用されます。
プロキシ設定されるプロパティのリストは次のとおりです。
キャッシュ可能(継承されたプロパティをオーバーライドできます)
キャッシュ失効なしおよびキャッシュ永続時間(継承された値をオーバーライドできます)
行数
最終更新
表タイプ
外部データベースに関する指定
プロキシ設定されないプロパティのリストは次のとおりです。
名前
説明
表示フォルダのコンテナ
外部キー
列
注意: 別名表とオリジナル表で列が共有されることはありません。別名表とオリジナル表には、互いに別名の明らかに異なる列が含まれます。 |
表のキー
複合結合
ソース接続プール
ポーリング頻度
すべてのXML属性
管理ツールの物理レイヤーで物理表および物理キューブ表を作成または編集するには、「物理表」ダイアログの「一般」タブを使用します。
この項には次のトピックが含まれます:
リレーショナル物理表と物理キューブ表も含めて、表の一般的なプロパティを作成または編集できます。
物理表の作成または表の一般的なプロパティの編集を実行するには:
管理ツールの物理レイヤーで、次のいずれかの手順を実行します。
物理表を作成するには、物理データベースまたは物理カタログを右クリックして、「新規オブジェクト」を選択し、「物理表」を選択します。
データベース・オブジェクトに物理スキーマが定義されている場合は、物理スキーマを右クリックして、「新しい物理表」を選択します。
マルチディメンション・データ・ソース用の物理キューブ表を作成するには、物理データベースを右クリックして、「新規オブジェクト」を選択し、「キューブ表」を選択します。
注意: キューブ表は、手動で作成するのではなく、インポートすることを強くお薦めします。 |
既存の物理表を編集するには、物理レイヤーで物理表オブジェクトをダブルクリックします。
表8-2をガイドとして使用して、「物理表」ダイアログのフィールドに入力します。
表8-2 物理表の一般的なプロパティ
プロパティ | 説明 |
---|---|
名前 |
物理表の名前。 |
表タイプ |
物理表の値: 物理表、ストアド・プロシージャまたは選択。 物理キューブ表の値: 物理表または選択。 詳細は、表8-1を参照してください。 |
動的名前の使用 |
カタログおよびスキーマ・オブジェクトと同様に、セッション変数を使用して物理表名を指定する場合はこのオプションを選択します。「物理表」の表タイプを選択した場合、このオプションは、マルチディメンション以外のデータ・ソース表に使用できます。 マルチテナント実装があり、顧客ごとに異なる物理表名を定義する場合に、このオプションを選択することがあります。別の例として、ETLサイクルで異なる時間に有効になるプライマリ表とシャドウ表から選択する場合があります。両方の場合で、セッション変数を割り当てて、適切な表を動的に選択できます。 |
デフォルトの初期化文字列/データベース固有のSQLの使用 |
マルチディメンション以外のデータ・ソース表(別名表ではない)の場合に、このオプションは、表タイプに「ストアド・プロシージャ」または「選択」を選択すると表示されます。マルチディメンション・データ・ソース表の場合は、表タイプに「選択」を選択すると表示されます。 このオプションを選択すると、データ・ソースを指定して、SQL文を入力できます。 詳細は、表8-1を参照してください。 |
キャッシュ可能 |
Oracle BIサーバー問合せキャッシュに表を含める場合に、このオプションを選択します。通常、リアルタイムでアクセスする必要がない表の場合に、このオプションを選択します。 このオプションを選択すると、「キャッシュ永続時間」の設定がアクティブになります。 ほかにも問合せキャッシュの動作に影響を与える構成設定があります。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の問合せキャッシュの構成に関する項を参照してください。 |
キャッシュ失効なし |
このオプションを選択すると、キャッシュ・エントリが自動的に失効することがなくなります。これは、ユーザーが実行する可能性のある多数の問合せにとって1つの表が重要な場合に役立ちます。たとえば、問合せのほとんどに1つのアカウント・オブジェクトへの参照がある場合、それを無期限にキャッシュされたままにすると、パフォーマンスが低下するのではなく実際にはパフォーマンスが向上します。 このオプションを選択することによって、あるエントリが常にキャッシュに保持されるというわけではありません。手動による消去、LRU(最低使用頻度)置換、メタデータ変更、キャッシュ・ポーリング表の使用など他の無効化技術によってエントリがキャッシュから削除される可能性があります。 |
キャッシュ永続時間 |
問合せキャッシュに表エントリが永続する必要がある時間、つまり、キャッシュの有効期限。 キャッシュ永続時間の設定は、OLTPデータ・ソースおよび頻繁に更新されるその他のデータ・ソースの場合に有用です。たとえば、特定のダッシュボードに対して基礎となる物理表を毎日リフレッシュする場合にこのオプションを設定できます。 永続時間が異なる複数の物理表を参照する問合せの場合、この問合せのキャッシュ・エントリは、問合せで参照される表のうち、永続時間が最も短く設定されている表の永続時間だけ存続します。これによって、後続の問合せで、失効したキャッシュ・エントリからキャッシュ・ヒットが取得されることはなくなります。 詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』のイベント・ポーリング表に関する問題のトラブルシューティングに関する項を参照してください。 |
外部名 |
マルチディメンション・データ・ソースの物理キューブ表に適用されます。外部名は、物理SQL問合せでキューブ表の参照時に使用されます。この値は、データ・ソースで定義されている外部名を反映する必要があります。 |
表示列 |
Essbaseデータ・ソースの場合のみ。詳細は、「Essbaseデータ・ソースでの作業」を参照してください。 |
ヒント |
一部のデータ・ソースにのみ指定できます。詳細は、「SQL文でのヒントの使用」を参照してください。 |
別名表を作成するには、既存の物理表を右クリックして、「新規オブジェクト」を選択し、「別名」を選択します。不透明なビューおよびストアド・プロシージャで別名を作成することもできます。
表8-3は、別名表に固有のプロパティを説明しています。物理表と別名表の両方で使用される他の表プロパティの詳細は、表8-2を参照してください。
物理表の「プロパティ」タブには、一部のデータ・ソースに対して物理レイヤーのメタデータを拡張する汎用メカニズムとして使用される名前と値のペアが表示されます。通常、値はデータ・ソースから渡されますが、必要に応じて値を編集できます。
詳細は、「物理列のプロパティの表示」を参照してください。
XMLデータ・ソースのプロパティを設定または編集するには、「XML」タブを使用します。「物理表」ダイアログの「XML」タブには、「接続プール」ダイアログの「XML」タブと同じ機能が用意されています。ただし、「物理表」ダイアログでのプロパティの設定が、「接続プール」ダイアログの対応する設定より優先されます。詳細は、「「XML」タブの接続プール・プロパティの設定」を参照してください。
管理ツールの物理レイヤーの物理表および物理キューブ表にはそれぞれ、1つ以上の物理列が含まれます。「物理表」ダイアログの「列」、「キー」および「外部キー」タブを使用して、表に関連付けられている列、キーおよび外部キーの表示、新規作成および既存のものの編集を実行できます。
次のリストでは、これらのタブに表示されるボタンを説明しています。
新規。タブに対応するダイアログを開くことによって、オブジェクトを新規作成できます。
編集。オブジェクトを1つ選択して「編集」をクリックすると、タブに対応するダイアログが表示されます。このダイアログで、対象のオブジェクトのプロパティを編集できます。
削除。選択したオブジェクトが削除されます。
この項には次のトピックが含まれます:
インポートされた列のプロパティが自動的に設定されます。インポート後、タイプおよびnull値を列に許可するかどうかを含む列のプロパティを変更できます。
次のリストでは、物理レイヤーにインポートされた列のNULL値可能な値とデータ型の値に関する情報を示しています。
NULL値可能。列に対してNULL値が許可されているかどうかを示します。基礎となる表にNULL値が存在している可能性がある場合は、このオプションを選択する必要があります。これにより、特定の機能および外部結合に必要なNull値をユーザーに返すことができます。一般的に、物理列のNULL値不可の値をNULL値可能な値に変更しても問題はありません。
タイプ。列のデータ型が示されます。データ型の変更は慎重に行ってください。基礎となるデータ・ソースで値に正しくないデータ型を設定すると、予期しない結果をまねくおそれがあります。データ型の不一致がある場合は、リポジトリで修正するか、データ型が不一致となっている列を再インポートします。
列を再インポートした場合、再マップした列を参照する論理列ソースを再マップする必要があります。ビジネス・モデルの論理列のデータ型は、その物理列ソースのデータ型と一致する必要があります。Oracle BIサーバーからこれらの論理列のデータ型がクライアント・アプリケーションに渡されます。
Longvarcharおよびlongvarbinaryデータ型は、デバッグを目的とした使用状況トラッキング表への完全な論理SQL文の記述に対応しています。これらのデータ型は、汎用目的の問合せには対応しておらず、プレゼンテーション・サービスに表示することはできません。これらのデータ型の列にアクセスするには、直接SQLユーティリティを使用します。
特に指定されている場合を除いて、物理キューブ列の特性と動作は、その他の物理列のものと同じです。
注意: オリジナル物理表で列を作成、変更または削除すると、そのすべての別名表の同じ列が作成、変更または削除されます。 |
物理列を作成または編集するには:
管理ツールの物理レイヤーで、次のいずれかの手順を実行します。
物理列を作成するには、物理表を右クリックして、「新規オブジェクト」を選択し、「物理列」を選択します。
マルチディメンション・データ・ソース用の物理キューブ列を作成するには、物理キューブ表を右クリックして、「新規オブジェクト」を選択し、「物理キューブ列」を選択します。
既存の物理列を編集するには、物理レイヤーで物理列オブジェクトをダブルクリックします。
「物理列」ダイアログで、物理列の名前を入力します。
XMLデータ・ソースの場合、このフィールドによって、XML文書に列の未修飾名(属性)が格納および表示されます。
「タイプ」フィールドで、物理列のデータ型を選択します。
必要に応じて、データ型の長さを指定します。
マルチディメンション・データ・ソースでは、VARCHAR
を選択した場合、「長さ」フィールドに値を入力する必要があります。
列でNULL値を許可する場合は、「NULL値可能」オプションを選択します。
「外部名」フィールドに、外部名を入力します。
複数の階層で同一名(STATE
など)を使用する場合は、必須です。
XML文書の場合はオプションです。「外部名」フィールドによって、列の完全修飾名(属性)が格納および表示されます。
(マルチディメンション・データ・ソースでは)物理キューブ列がメジャーの場合、「集計ロール」リストで、適切な値を選択します。
デフォルトで、新規物理キューブ列はメジャーとして作成されます。この動作の変更の詳細は、「物理レイヤーのマルチディメンション・ソースでの作業」を参照してください。
「OK」をクリックします。
物理表の主キーを定義する列を指定するには、「物理キー」ダイアログを使用します。
物理表の主キーを指定するには:
管理ツールの物理レイヤーで、物理表を右クリックして、「プロパティ」を選択します。
「物理表」ダイアログで、「キー」タブをクリックします。
「キー」タブで、「新規」をクリックします。
「物理キー」ダイアログで、キーの名前を入力します。
物理表の主キーを定義する列を選択します。
(オプション)キーの説明を入力します。
「OK」をクリックします。
物理列を削除すると、次のことが起こります。
マルチディメンション・データ・ソース。あるレベルのプロパティまたはキーの列を削除すると、関連付けが削除され、列が親キューブ表の下のメジャーに変わります。
別名表。オリジナル物理表の列を削除すると、そのすべての別名表の同じ列が削除されます。
物理列の「プロパティ」タブには、一部のデータ・ソースに対して物理レイヤーのメタデータを拡張する汎用メカニズムとして使用される名前と値のペアが表示されます。通常、値はデータ・ソースから渡されますが、必要に応じて値を編集できます。
オブジェクトを右クリックして、「データの表示」を選択することによって、物理表のデータまたは個々の物理列を表示できます。オンライン編集モードでは、このオプションを使用するには、変更をチェックインしておく必要があります。
「データの表示」は、物理キューブ表または物理キューブ列には使用できません。詳細は、「物理キューブ表のメンバーの表示」を参照してください。
「データの表示」機能では、行数が発行されるため、行数がサポートされていないデータにこの機能は使用できません。詳細は、「物理表と列の行数の表示と更新」を参照してください。
注意: 接続プールのユーザー名とパスワードを:USER と:PASSWORD に設定している場合、「データの表示」は、オンライン・モードでは機能しません。オフライン・モードの場合、変数の値の設定ダイアログが表示されるので、:USER と:PASSWORD を表示プロセスの一環として移入できます。 |
ここでは、マルチディメンション・データ・ソースの物理キューブ表、ディメンションおよび階層に関する情報を示します。
この項には次のトピックが含まれます:
マルチディメンション・データ・ソースからの各キューブは、物理表の一種である物理キューブ表として構造化されます。キューブには、物理キューブ列やキー(オプション)および外部キー(オプション)など表のすべての機能があります。階層やレベルなどのキューブ固有のメタデータもあります。
物理スキーマをインポートすると、Oracle BIサーバーでは、メトリック、階層およびレベルを含めて、キューブのメタデータがインポートされます。物理レイヤーで階層オブジェクトを展開すると、階層のレベルが明らかになります。物理キューブ表ダイアログの「階層」タブには、キューブ内のディメンション階層がリストされます。
データ・ソースのマルチディメンション・カタログには、それぞれ複数のキューブを格納できます。これらの1つ以上のキューブのメタデータをOracle BIリポジトリにインポートできます。キューブ表を手動で作成することもできますが、キューブ表のメタデータとコンポーネントをインポートすることをお薦めします。
キューブを手動で作成する場合は、各キューブに階層を一度に1つずつ作成し、次の階層を作成する前にその階層をテストする必要があります。たとえば、時間階層とメジャーを作成して、それをテストします。その階層が適切な場合は、地理階層を作成して、それをテストします。これは、各キューブを適切に設定し、設定エラーの識別を簡単にすることに役立ちます。
物理キューブ列の集計ルールは、必ずメジャーが適切になるように、慎重に選択する必要があります。集計ルールを適切に設定すると、パフォーマンスが向上する可能性があります。
キューブのメタデータのインポート後は常に集計ルールを確認します。通常、キューブのメタデータをインポートした場合、集計ルールは正しく割り当てられます。ただし、メジャーが、計算されたメジャーの場合、集計ルールは「なし」とレポートされます。このため、キューブのインポート後はすべてのメジャーの集計ルールを調査して、集計ルールが正しく割り当てられていることを確認する必要があります。
値が「なし」の集計ルールがすべてのメジャーに割り当てられた場合は、マルチディメンション・データ・ソース管理者に問い合せて、集計ルールの値が正しいことを確認します。集計ルールを変更する必要がある場合は、「物理キューブ列」ダイアログでこれを実行できます。
適切な集計ルールを割り当てるには、次のガイドラインを使用します。
データベースに対して生成された物理問合せでSUM(revenue)
などの集計関数を送信する必要がある場合は、この関数を集計ルールとして設定します。この設定によって、Oracle BIサーバーでは通常、問合せでデータベースに集計が送信されますが、場合によっては、サーバー自体で集計が実行されることもあります。
対象のメジャーのデータを問合せまたはOracle BIサーバーで集計できない場合は、外部集計ルールを使用します。Oracle BIサーバーで簡単な集計ルール(比率の計算、統合、割当てなど)でレプリケートできるものより複雑な計算がデータ・ソース内でメジャーによって使用される場合にこの設定を選択することが重要です。このオプションは、キューブで事前集計結果の完全なセットが保持される場合に便利です。
マルチディメンション・データ・ソースでは、キューブによっては、非常に複雑なマルチレベル・ベースのメジャーが含まれるものがあります。外部集計の集計ルールを割り当てると、Oracle BIサーバーでは、内部集計メカニズムが使用されずに、事前集計されたメジャーが使用されます。これらのメジャーには、インポートされたときに集計値「なし」が割り当てられます。
次に、事前集計されたメジャーを使用した作業においてのいくつかのガイドラインを示します。
外部集計は、これらの複雑な計算をサポートするマルチディメンション・データ・ソース(Essbase、Hyperion Financial Management、Microsoft Analysis Services、SAP/BWなど)にのみ適用されます。
マルチディメンション以外のデータ・ソースのメジャーに外部集計を割り当てることはできません。必要な集計ルールがOracle BIサーバーでサポートされており、リレーショナル・データ・ソースにマップできる場合、複雑ではなないため、外部集計は必要ありません。
論理メジャーごとに1つの集計ルールのみを割り当てられます。このため、1つの論理列で、マルチディメンション以外のソースへのマッピング用の複雑ではない集計ルールと、マルチディメンション・ソースへのマッピング用の複雑な集計ルールをフェデレートすることはできません。かわりに、ソースごとに論理メジャーを1つずつ作成し、作成したこれら2つのメジャーから導出する3つ目の論理メジャーを作成する必要があります。
マルチディメンション以外のデータ・ソースからの複雑でないメジャーとマルチディメンション・データ・ソースからの複雑でないメジャーをOracle BIサーバーを使用して集計する場合は、これらのメジャーを複合することができます。
ほとんどのディメンションおよび階層が、手動で作成されるのではなく、マルチディメンション・データ・ソースから物理レイヤーにインポートされます。特定の階層がインポートされないと、その階層に関連付けられている列もインポートされません。ユーザーが、インポートされない列にアクセスする必要がある場合は、まずこれらの列を手動で作成することによって物理レイヤーに追加し、階層のレベルに関連付けます。
階層の各レベルにはレベル・キーがあります。階層のレベルに関連付けられた(追加された)最初のキューブ列がレベル・キーです。これは、キューブのデータ・ソース定義に一致する必要があります。最初に選択した列が階層のレベルに関連付けられると、その列のアイコンがキー・アイコンに変わります。
Oracle Business Intelligenceでは、すべてのマルチディメンション・データ・ソースについて非バランス型階層がサポートされます。通常、階層タイプを変更することによって、物理レイヤーに非バランス型階層を構成できます。
管理ツールの物理レイヤーで物理ディメンション・オブジェクトおよび物理階層オブジェクトをダブルクリックすることによって、物理ディメンションおよび物理階層のプロパティを表示したり編集したりできます。「キューブ表」ダイアログの「ディメンション」タブと「階層」タブからこれらのオブジェクトを表示および編集することもできます。
この項には次のトピックが含まれます:
「物理ディメンション」ダイアログでは、ディメンションの名前と説明を表示および編集できます。対象のディメンションに対する階層の追加、削除または編集、およびディメンションのプロパティを表す列の追加、削除または編集も実行できます。
階層に追加する列を選択する場合、最高レベルから始めて階層順に選択することをお薦めします。複数の列を選択して、それらを階層に同時に追加した場合、選択した列グループの順序は同じままです。階層に列を追加した後に、「参照」ダイアログで列の順序を変更できます。
「物理階層」ダイアログでは、階層の名前と説明を表示、編集できるとともに、表8-4で説明しているプロパティも表示、編集できます。レベルベースの階層の場合は、レベルの追加、削除、編集または並替えを実行できます。値ベースの階層の場合、列を追加、削除または編集するには、「列」タブをクリックします。キー列を指定するには、列名をダブルクリックします。
「物理レベル」ダイアログでは、レベルの名前、外部名および説明を表示、編集できます。対象のレベルに対して列を追加、削除または編集することもできます。1つの列をレベル・キーとして指定するには、列名をダブルクリックします。
階層タイプは、必ず適切に設定されるように常にインポート後に確認します。このパラメータがインポート時にどのように設定されるかは、データ・ソースによって異なります。たとえば、Essbase階層はすべて最初に「非バランス型」に設定されます。階層ごとに階層タイプを確認して、必要に応じて階層タイプを変更します。
通常、インポート時にデフォルトで常に「値」に設定されるHyperion Financial Management階層は除いて、親子(値)階層の階層タイプは常に手動で設定する必要があります。階層タイプを確認し、必要に応じて階層タイプを「値」に変更します。親子(値)階層は、ビジネス・トランザクション、つまりキューブのリフレッシュによってレベル数が変わる可能性のある階層です。
親子階層の場合、メタデータをビジネス・モデルとマッピング・レイヤーにドラッグする前に、物理階層タイプを手動で「値」に設定しておく必要があります。ビジネス・モデルとマッピング・レイヤーでの階層タイプは、物理階層の設定に基づいて自動的に設定されます。その他すべてのタイプについては、論理モデルを再構築する必要なく、後で階層タイプを決定できます。
対応する論理ディメンションのプロパティが、問合せが機能するにあたって適切であることも確認する必要があります。詳細は、第10章「論理ディメンションの操作」を参照してください。
SAP/BWデータ・ソースの場合、すべての階層がインポート時に完全なバランス型階層にデフォルト設定されます。2つのレベルによる階層の階層タイプ(通常は特徴的なプライマリ階層に対応する)は、変更できません。SAP/BWマルチレベル(外部)階層すべてを確認して、親子階層かどうかを判別し、必要に応じて「値」に設定します。
表8-4 「物理階層」ダイアログのオプション
プロパティ | 説明 |
---|---|
外部名 |
物理MDX問合せで階層の参照時に使用される物理名。この値は、データ・ソースで定義されている外部名を反映する必要があります。 |
ディメンション名 |
(ディメンション固有の名前)階層が属しているディメンション。 |
ディメンション・タイプ |
対象の階層が、時間ディメンション、メジャー・ディメンション、それともその他のタイプのディメンションに属しているのかを識別します。 |
階層タイプ |
次のように、階層タイプを識別します。
注意: 非バランス型とスキップレベルの両方の特徴があるレベルベースの階層の場合は、「非バランス型」または「不規則バランス型」のいずれかを物理階層タイプとして選択します。その上で、ビジネス・モデルとマッピング・レイヤーの、対応する論理ディメンションに、「不規則」と「スキップ・レベル」の両方を選択します。 |
デフォルトのメンバー・タイプALL |
このオプションは使用されていません。 |
パフォーマンスを上げるために未修飾のメンバー名を使用 |
指定の階層で、各メンバー名(別名も含めて)が一意であるため、Oracle BIサーバーで特定のMDX構文を利用してパフォーマンスを最適化できる場合にこのオプションを選択します。 |
階層のインポート後に、列の追加または削除が必要な場合があります。階層からキューブ列を削除すると、階層からは削除されますが、キューブ表には残り、他のレベルへの追加対象として選択できます。
既存の階層でキューブ列を追加または削除するには:
管理ツールの物理レイヤーで、変更する物理階層をダブルクリックします。「物理階層」ダイアログが表示されます。
レベルベースの階層の場合は、列を追加または削除するレベルをダブルクリックします。「物理レベル」ダイアログで、列を追加、削除または編集できます。作業が完了したら、「物理レベル」ダイアログの「OK」をクリックします。
値ベースの階層の場合は、「列」タブをクリックします。列の追加、削除または編集と、メンバー・キーおよび親キーの列の指定ができます。
「階層」ダイアログの「OK」をクリックします。
SAP/BWデータ・ソースでは、キューブ変数が問合せのパラメータ化の手段として使用されます。キューブ変数オブジェクトは、SAP/BWデータ・ソースのQuerycubes/Bex問合せからメタデータがインポートされるときに、物理レイヤーにインポートされます。
通常、データ・ソースのBex問合せとの同期を保持するため、および主要な特性値のオーバーライドを指定するため以外に、これらのオブジェクトを直接編集することはありません。
「キューブ表」ダイアログの「キューブ変数」タブには、指定したキューブ表のキューブ変数が、キューブ変数キャプションとともに表示されます。キューブ変数をダブルクリックして詳細情報を表示するか、「追加」ボタンをクリックして、新しいキューブ変数を定義します。
表8-5は、SAP/BWデータ・ソースのキューブ変数のプロパティを説明しています。詳細は、SAP/BWのドキュメントを参照してください。
表8-5 キューブ変数のプロパティ
プロパティ | 説明 |
---|---|
名前 |
キューブ変数の名前。 |
キャプション |
キューブ変数に関連付けられている説明(ラベルまたはキャプション)で、主に表示を目的として使用されます。 |
変数タイプ |
キューブ変数のタイプ。変数タイプには、次のものがあります。
|
選択タイプ |
タイプがSAP_VAR_TYPE_MEMBERのキューブ変数の場合の、キューブ変数の選択タイプ。 選択タイプには次のものがあります。
|
エントリ・タイプ |
変数の置換がオプションか必須かを示します。エントリ・タイプには次のものがあります。
|
参照ディメンション |
この列には、パラメータ・タイプがSAP_VAR_TYPE_HIERARCHYのDIMENSION_UNIQUE_NAMEが指定されます。 |
参照階層 |
この列には、変数タイプがSAP_VAR_TYPE_MEMBERのHIERARCHY_UNIQUE_NAMEが指定されます。 |
デフォルト下限 |
このプロパティには、変数のデフォルト値またはゼロが指定されます。 |
デフォルト上限 |
このプロパティには、変数のデフォルト値またはゼロが指定されます。このプロパティは、選択タイプがSAP_VAR_SEL_TYPE_INTERVALまたはSAP_VAR_SEL_TYPE_SELECTIONの変数に対してのみ重要です。 |
デフォルト下限オーバーライド |
「デフォルト下限」がゼロの場合に、このフィールドにキューブ変数のデフォルト値が指定されます。 デフォルト値が指定されない必須変数の場合には、このプロパティに値を指定する必要があります。 |
デフォルト上限オーバーライド |
「デフォルト上限」がゼロの場合にこのフィールドにキューブ変数のデフォルト値を指定します。 デフォルト値が指定されない必須変数の場合には、このプロパティに値を指定する必要があります。 |
リポジトリの物理レイヤーで階層またはレベルのメンバーを表示できます。メンバーを表示するには、リポジトリをオンライン・モードで開いておく必要があります。階層のレベル別メンバーのリストは、接続プールが適切に設定されているかどうかの判断に役立ちます。開始点(開始メンバーまたは開始行を指定するオプション)と返す行数(「表示」オプション)を指定することによって、データの戻りにかかる時間と返されたデータのサイズを軽減できます。
メンバーを表示するには:
管理ツールをオンライン・モードで開きます。
物理レイヤーで、階層またはレベルを右クリックします。
「メンバーの表示」を選択します。
ウィンドウが開き、階層内のメンバー数とレベルのリストが示されます。返されたデータをすべて表示するために、ウィンドウと列の最大化が必要な場合があります。
「問合せ」をクリックして、結果を表示します。
完了後、「閉じる」をクリックします。
ここでは、Oracle BIリポジトリの物理レイヤーで、デフォルトでEssbaseデータがモデリングされる方法について説明します。また、他の方法でEssbaseデータをモデリングするために実行できるタスクについても説明します。
この項には次のトピックが含まれます:
Essbaseデータ・ソースからメタデータをインポートすると、Oracle Business Intelligenceの論理モデルをサポートする方法で、キューブ・メタデータが物理レイヤーにマップされます。
別名など、ディメンションのすべてのメンバーに適用されるメタデータは、デフォルトでディメンションのプロパティとしてモデリングされます。アウトライン・ソートやMemnor情報などのレベル・ベースのプロパティは、ディメンションの個別の物理キューブ列としてマップされます。
次の物理列タイプはEssbaseメタデータに使用されます。
メンバーの別名: 「別名」列であることを示します。
UDA: 列がユーザー定義属性(UDA)であることを示します。
アウトライン・ソート: memnorタイプの列を示し、論理レイヤーのアウトライン・ソートに使用されます。各ディメンションの最低レベルでインポートされます。
属性: 列が属性タイプであることを示します。属性ディメンションに使用されます。
その他: リストされているもの以外のタイプまたは不明なタイプです。
祖先参照: ディメンションの祖先を参照します。
メンバー・キー: 列がメンバー・キーであることを示します。
リーフ: 列が階層の最低メンバーであることを示します。
ルート: 列が階層のルート・メンバーであることを示します。
親参照: ディメンションの親を参照します。
「アウトライン・ソート」、「祖先参照」、「メンバー・キー」、「リーフ」、「ルート」および「親参照」の各列タイプは、システムで内部で使用され、変更することはできません。
図8-2は、物理レイヤーにインポートされたEssbaseデータを示しています。
物理レイヤーには、特定のタイプのメタデータをモデリングする方法を制御できるように様々なオプションが用意されています。ユーザー・ベースの要件に最適なオプションを選択します。たとえば、多くのタイプのEssbaseメタデータが、物理レイヤーではデフォルトでディメンション・プロパティとしてモデリングされます。
または、以前のリリースのOracle Business Intelligenceでサポートされている属性スタイルのレポート作成機能を使いやすくするために、物理レイヤーでEssbaseメタデータをフラット化することも選択できます。
次のリストは、これらのモデリング・オプションのいくつかを要約しています。
別名。別名は、デフォルトでディメンション・プロパティとしてモデリングされますが、「別名表の列の作成」機能を使用して別名をフラット化することもできます。詳細は、「Essbase別名表での作業」を参照してください。
UDA。UDAは、デフォルトでディメンション・プロパティとしてモデリングされますが、「UDAの列の作成」機能を使用してUDAをフラット化することもできます。詳細は、「ユーザー定義属性のモデリング」を参照してください。
代替階層。代替階層は、デフォルトで個別階層としてモデリングされますが、「単一階層のビューに変換」機能を使用して単一階層として代替階層を表示することもできます。詳細は、「代替階層のモデリング」を参照してください。
メジャー階層。デフォルトで、メジャーはすべてのメジャーを表す単一メジャー列としてインポートされますが、「メジャー・ディメンションをフラット・メジャーに変換します」機能を使用して各メジャーを個々の列として表示することもできます。詳細は、「メジャー階層のモデリング」を参照してください。
Oracle Business IntelligenceでのEssbaseデータ・ソースの使用に関する次の追加情報に留意してください。
置換変数。Essbase置換変数は自動的に取得されて、対応するOracle BIサーバーのリポジトリ変数に移入されます。Essbase変数のスコープに応じて、Oracle BIサーバー変数のネーミング規則が次のようになります。
サーバー・インスタンスのスコープ: server_name
:
var_name
アプリケーションのスコープ: server_name
:
app_name
:
var_name
キューブのスコープ: server_name
:
app_name
:
cube_name
:
var_name
Essbase変数に対して、リポジトリで単一初期化ブロックも作成されます。Essbase変数の予期される更新サイクルを反映するように、初期化ブロックで適切なリフレッシュ間隔を設定します。
Essbase生成。Essbase生成は、物理レベル・オブジェクトにマップされます。
時系列関数。Oracle BIサーバーの時系列関数AGO
、TODATE
およびPERIODROLLING
がEssbaseに送信され、Essbaseサーバーのネイティブ機能が利用されます。
データベース関数。データベースSQLファンクションのEVALUATE
およびEVALUATE_AGGREGATE
を使用して、Essbaseデータ・ソース固有のファンクションを利用できます。詳細は、「固有のEssbase関数を活用するEVALUATE_AGGREGATEとEVALUATEの使用例」を参照してください。
EVALUATE_PREDICATE
は、Essbaseデータ・ソースとの併用はサポートしていません。
Gen1レベル。デフォルトで、Gen1レベルは、物理レイヤーからビジネス・モデルとマッピング・レイヤーにEssbaseキューブまたはディメンションをドラッグ・アンド・ドロップするときに追加されます。ただし、通常、Gen1レベルは分析に必要ないため、ビジネス・モデルにEssbaseオブジェクトをドラッグ・アンド・ドロップするときにGen1レベルの除外を選択できます。これを実行するには、「オプション」ダイアログの「一般」タブで「Essbaseのドラッグ・アンド・ドロップ・アクションでGen1レベルをスキップ」を選択します。詳細は、「管理ツールのオプションの設定」を参照してください。
階層タイプ。Essbaseデータ・ソースの場合、デフォルトですべての階層が「非バランス型」としてインポートされます。各物理階層の「階層タイプ」プロパティを確認して、必要に応じて値を変更します。Essbaseでサポートされる階層タイプは、「非バランス型」、「完全なバランス型」および「値」です。
Essbaseメタデータを増分インポートできます。つまり、初期インポートの実行後に再インポートを実行できます。データ・ソースの情報が変更された場合や最初のインポートにメタデータのサブセットのみが含まれていた場合に、増分インポートが必要になる可能性があります。
増分インポートについて、次の点に留意してください。
物理レイヤーにすでに存在するメタデータを再インポートする場合は、物理オブジェクトが上書きされることを警告するメッセージが表示されます。
ソース内のデータを削除した場合に、メタデータの再インポートによって物理レイヤーで削除が自動的に実行されることはありません。対応する物理オブジェクトを手動で削除する必要があります。
ソース内のオブジェクトの名前を変更した場合、名前が変更されたオブジェクトは新規オブジェクトとしてインポートされます。この場合、前のオブジェクトと新規オブジェクト(名前変更されたオブジェクト)が両方とも物理レイヤーに表示されます。
通常、別名列を表示用に指定するなど、物理レイヤーのデータに実行したカスタマイズは、増分インポートの後にも維持されます。インポートしたビューをデフォルトに戻すには、既存の物理レイヤー・オブジェクトを削除してから、メタデータを再インポートする必要があります。
Essbaseキューブでは、メンバーまたは共有メンバーの代替名である別名の概念がサポートされます。通常、ユーザーが自分の言語でメンバー名を表示できるように、メンバーにはユーザーの言語ごとに異なる別名があります。
たとえば、メンバー名が製品コード(100)で、製品名のデフォルトの別名(Cola)とそのほかに長い名前の別名(Cherry Cola)を持つ場合があります。
Essbaseキューブでは、別名は、特定の別名セットをメンバー名にマップする別名表に格納されます。通常、キューブごとにデフォルトの別名表が設定されます。
この項には次のトピックが含まれます:
EssbaseからOracle BIリポジトリにメタデータをインポートする場合、物理レイヤーのEssbaseキューブ表オブジェクトには、メンバー名、デフォルトの別名、その他の別名など、メンバーについて表示する値を指定するプロパティが含まれます。デフォルトで、列には、デフォルトの別名が表示されます。
メンバーについて表示する値を変更するには:
管理ツールの物理レイヤーで、Essbaseキューブ表をダブルクリックします。
「キューブ表」ダイアログの「一般」タブで、「表示列」に適切な値を選択します。「メンバー名」を選択することも、「別名」を選択してリストから別名表名を選択することも、「変数」を選択して有効な表示列名が含まれている変数を選択することもできます。
「OK」をクリックします。
別名は、インポート後に物理レイヤーでディメンション・プロパティとしてモデリングされます。レポート作成を目的として属性をフラット化したり、翻訳用に文字列を外部化したりなど、複数の別名を使用して作業する場合は、別名ごとに列を明示的に定義することができます。キューブ、ディメンションまたは階層レベルで別名列を定義できます。
別名ごとに列を明示的に定義するには:
管理ツールの物理レイヤーで、別名列を定義するキューブ表、物理ディメンションまたは物理階層を右クリックします。
「別名表の列の作成」を選択します。サブリストから、列を作成する別名表を選択します。
「フェッチ」ボタンは使用しないことに注意してください。
「作成」をクリックします。
新規別名列をビジネス・モデルとマッピング・レイヤーの適切な場所にドラッグします。
別名列に基づいて翻訳用に文字列を外部化する操作の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』のOracle Business Intelligenceのローカライズに関する項を参照してください。
Essbaseでは、ユーザー定義属性(UDA)の概念がサポートされます。UDAは基本的に、ディメンションのいずれのメンバーとも関連付けることができる任意のテキスト文字列です。1つのメンバーに複数の文字列を関連付けることができます。
メタデータのインポートウィザードで、UDAをインポートするかどうかを選択できます。UDAをインポートすることを選択した場合、リポジトリの物理レイヤーで、デフォルトで各UDAがディメンション・プロパティとしてモデリングされます。
各UDAを個別の物理列としてモデリングすることも選択できます。これを実行するには、次のいずれかのタスクを実行します。
1つのキューブ内のすべてのUDAを個別の物理列としてモデリングするには、「UDAの列の作成」を選択します。キューブ内のすべてのUDAが個別の物理列としてモデリングされます。
1つのディメンション内のすべてのUDAを個別の物理列としてモデリングするには、対象のディメンション・オブジェクトを右クリックして、「UDAの列の作成」を選択し、「すべてのUDA」を選択します。ディメンション内のすべてのUDAが個別の物理列としてモデリングされます。
ディメンション内の特定のUDAを各レベルで個別の物理列としてモデリングするには、対象のディメンション・オブジェクトを右クリックして、「UDAの列の作成」を選択し、モデリングする特定のUDAを選択します。選択したUDAがモデルごとに個別の物理列としてモデリングされます。
インポート・プロセスで、メンバー属性が、対応するディメンションとレベルに自動的に関連付けられるわけではありません。関連付けを手動で作成するには、メンバー属性を適切な論理表にマップします。
つまり、列を物理レイヤーの属性ディメンションから、ビジネス・モデルとマッピング・レイヤーの適切な論理表にドラッグ・アンド・ドロップします。
デフォルトで、代替階層は、物理レイヤーで個別の階層としてモデリングされます。代替階層を個別の階層として表示することも(複数階層のビュー)、単一階層として表示することもできます。
代替階層を単一階層として表示するには、代替階層が含まれるディメンション・オブジェクトを右クリックして、「単一階層のビューに変換」を選択します。複数階層のビューに戻すには、ディメンション・オブジェクトを再度右クリックして、「複数階層のビューに変換」を選択します。
たとえば、図8-3は、代替階層の複数階層のビューを示しています。
図8-4は、同じ代替階層の単一階層のビューを示しています。
デフォルトで、メジャーはメジャー階層としてインポートされます。つまり、キューブには、すべてのメジャーを表す単一のメジャー列が含まれます。
または、メジャー階層をフラット化して、各メジャーを個々の列で表示することもできます。これを実行するには、キューブ・オブジェクトを右クリックして、「メジャー・ディメンションをフラット・メジャーに変換します」を選択します。
メンバー名(別名も含む)が指定した階層で一意である場合、Oracle BIサーバーでは、特定のMDX構文を利用して、パフォーマンスを最適化できます。
この機能を有効にするには、「階層」ダイアログの「パフォーマンスを上げるために未修飾のメンバー名を使用」を選択します。
インポート・プロセスでは、指定の階層に対してメンバー名が一意であることを識別できません。このため、一意性を確認するのは、管理者の仕事です。階層で一意なメンバーがないのに一意なメンバーがあると指定されると、問合せエラーが発生します。
注意: Oracle BIサーバーでEssbaseに対して正しくない問合せが生成されていることがわかった場合、指定の階層に重複したメンバー名がないかどうか確認します。重複したメンバー名があった場合、オプション「パフォーマンスを上げるために未修飾のメンバー名を使用」がその階層に対して選択解除になっていることを確認するか、次の手順を実行します。
|
この節の内容は以下のとおりです。
Hyperion Financial Managementデータ・ソースからメタデータをインポートすると、メジャーとディメンションの両方が物理レイヤーにインポートされます。
Hyperion Financial Managementハイパーキューブ・モデルは、次のように物理レイヤーで公開されます。
Hyperion Financial Managementにはメジャーが1つのみ存在し、このメジャーはValueと呼ばれます。このメジャーは、物理レイヤーで単一ファクト列としてモデリングされ、ここでもValueと呼ばれます。
メジャー列のValue - データ・タイプDOUBLEが、Hyperion Financial Managementへインポートされます。
Valueメジャーには、CellText、CurrencyTypeおよびAttributeの3つのベース・プロパティがあります。これらのプロパティはすべて、追加ファクト列として表されます。
Attributeプロパティには、さらにIsReadOnlyなどのサブプロパティがあります。これらのプロパティも追加列として公開されます。
図8-5は、物理レイヤーでのHyperion Financial Managementデータのモデリングを示しています。
Hyperion Financial Managementのディメンションはすべて、物理レイヤーでは親子階層としてモデリングされます。共有メンバー、代替階層および非バランス型階層がサポートされています。
ディメンション・メンバーのプロパティは、列(Name、Description、ShortNameなど)として公開されます。Sort Orderと呼ばれる追加列もディメンションごとに表示されます。この列には、Hyperion Financial Managementデータ・ソースから取得されたカスタム・ソートに関する情報が含まれます。
Hyperion Financial Managementの各ディメンションには、対応するポイント・オブ・ビュー(POV)値があり、この値は、ユーザーごとにカスタマイズされた情報を提供します。このPOV値は、「ディメンション」ダイアログの「階層」タブの「デフォルトのメンバー」として公開されます。「デフォルトのメンバー」フィールドは、インポート時に移入されますが、ユーザー・ベースの要件に応じて、デフォルト値の更新が必要な場合があります。
注意: Hyperion Financial Managementの階層に「デフォルトのメンバー・タイプALL」オプションを選択しないでください。 |
Hyperion Planningデータ・ソースからのメタデータのインポートおよび問合せには、Hyperion Planningサーバー・バージョン11.1.2.4以上が必要です。Hyperion Planningデータ・ソースからデータをインポートすると、メジャーとディメンションの両方が物理レイヤーにインポートされます。
Hyperion Planningモデルは、次のように物理レイヤーで公開されます。
インポート済のHyperion Planningデータ・ソースには、複数のValue列が含まれ、異なるデータ・タイプのメジャーをサポートできます。
Hyperion Financial Management固有のいくつかのメジャーは、Hyperion Planningデータ・ソースにインポートされません。
Attributeプロパティには、さらにIsReadOnlyなどのサブプロパティがあります。これらのプロパティも追加列として公開されます。
図8-6は、物理レイヤーでのHyperion Planningデータのモデリングを示しています。
Hyperion Planningのディメンションはすべて、物理レイヤーでは親子階層としてモデリングされます。共有メンバー、代替階層および非バランス型階層がサポートされています。
ディメンション・メンバーのプロパティは、列(Name、Description、ShortNameなど)として公開されます。Sort Orderと呼ばれる追加列もディメンションごとに表示されます。この列には、Hyperion Planningデータ・ソースから取得されたカスタム・ソートに関する情報が含まれます。
Hyperion Planningの各ディメンションには、対応するポイント・オブ・ビュー(POV)値があり、この値は、ユーザーごとにカスタマイズされた情報を提供します。このPOV値は、「ディメンション」ダイアログの「階層」タブの「デフォルトのメンバー」として公開されます。「デフォルトのメンバー」フィールドは、インポート時に移入されますが、ユーザー・ベースの要件に応じて、デフォルト値の更新が必要な場合があります。
注意: Hyperion Planningの階層に「デフォルトのメンバー・タイプALL」オプションを選択しないでください。 |
Hyperion Financial Managementデータ・ソースおよびHyperion Planningデータ・ソースに対しては、メンバー問合せ(ディメンション参照)とデータ問合せ(メジャー分析)が両方ともサポートされます。
大部分の論理SQL関数は、Oracle BIサーバー内で実行されます。ただし、Hyperion Financial ManagementおよびHyperion Planningに固有の次のファンクションにアクセスするには、EVALUATE_PREDICATE
を使用します。
PeriodOffset
(オフセットによる前回または将来の期間へのアクセスに使用されます)
Hyperion Financial Managementに固有のNA抑制ファンクション(SuppressDerived
、SuppressInvalidIntersection
、SuppressNoAccess
、SuppressZero
、SuppressError
)
Base
ファンクション(指定した祖先メンバーの下のリーフ・メンバーを返します)
CommonChildren
ユーザー定義ファンクション
構文と使用方法の詳細は、「EVALUATE_PREDICATE」を参照してください。
前のリリースでは、手動でSuppressMissing
関数をEVALUATE_PREDICATE
に追加して欠落したセルを抑止していました。現行リリースのOracle BI EEでは、PERF_PREFER_SUPPRESS_EMPTY_TUPLESデータベース機能がサポートされています。このデータベース機能により、Oracle BI EEはSuppressMissing
関数をHyperion Financial Managementデータ問合せまたはHyperion Planningデータ問合せに挿入して、欠落したセルを抑止します。ERF_PREFER_SUPPRESS_EMPTY_TUPLESで、空のセル値を持つ空のタプルを削除するかどうかを制御します。このデータベース機能によって、最終結果セットでnullの抑制の動作が変更されることはありません。
時系列関数に対しては、ネイティブ・サポートはありません。時系列関数は、データ・モデリングを通してのみサポートされます。
Oracle Databaseには、埋込みのフル機能オンライン分析処理サーバーを提供するOLAPオプションが用意されています。
OLAPオプションは、次のような役割で使用されます。
SQLベースのビジネス・インテリジェンス・ツールおよびアプリケーションに対するサマリー管理ソリューション
SQLベースのビジネス・インテリジェンス・ツールに詳細な分析コンテンツを提供する計算エンジン
ディメンション指向のビジネス・インテリジェンス・ツールおよびアプリケーションにサービスを提供するフル機能のマルチディメンション・サーバー
Oracle Business Intelligenceでは、Oracle OLAPはデータ・ソースとしてサポートされます。Oracle OLAPソースからメタデータをインポートすると、管理ツールの物理レイヤーにOracle OLAPオブジェクトが表示されます。この項では、物理レイヤーのOracle OLAPオブジェクトに関する情報を示します。
この項には次のトピックが含まれます:
この項では、管理ツールを使用したOracle OLAPからのメタデータのインポートに関する次のような情報を提供します。
複数言語のメタデータが格納されているOracle OLAPキューブの場合、デフォルトの言語のみがインポートされます。
少なくとも1つの階層が含まれるディメンションのみがインポートされます。
複数の階層が含まれる単一の問合せはサポートされていません。問合せに、指定されたディメンションの複数階層からの列が含まれる場合は、Oracle BIサーバーからエラーが返されます。
Oracle OLAPメジャーに対する、ビジネス・モデルとマッピング・レイヤーのデフォルトの集計ルールは、外部集計です。外部集計ルールとは、Oracle BIサーバーで、特定のメジャーに対して基礎となる集計ルールが認識されないため、内部的に計算されないということです。かわりに、Oracle BIサーバーから常に、基礎となるマルチディメンション・データ・ソースに集計の問合せが送信されます。
場合によっては、メジャーの集計ルールを外部集計以外のものに設定することがあります。たとえば、複数のデータ・ソースをフェデレートしている場合や、Oracle OLAPでレベルごとには表されていないディメンション属性に沿ってより高レベルの集計を実行する必要がある場合です。両方の場合とも、基礎となるデータ・ソースのルールに一致するようにデフォルトの集計ルールを変更できます。このような場合でも集計は、可能なかぎりOracle OLAPデータ・ソースで実行されます。
Oracle Business IntelligenceでサポートされるOracle OLAPのバージョンについての最新情報は、「システム要件と動作要件」を参照してください。
Oracle OLAPアナリティック・ワークスペース(AW)オブジェクトを管理ツールの物理レイヤーに表示できます。これらのオブジェクトは、Oracle OLAPメタデータのアナリティック・ワークスペース・オブジェクトに対応しており、物理カタログ・オブジェクトおよび物理スキーマ・オブジェクトに似ています。アナリティック・ワークスペースは、関連キューブを格納するためのコンテナです。アナリティック・ワークスペースのコンテキスト内に、ディメンション、キューブおよびその他のディメンション・オブジェクトを作成します。
Oracle OLAPアナリティック・ワークスペース・オブジェクトには、「名前」、「 説明」および「動的名前」のプロパティがあります。「動的名前」タブを使用して、アナリティック・ワークスペース・オブジェクトの名前を指定する変数を指定できます。「動的名前」タブは、少なくとも1つのセッション変数が定義されていないと、アクティブにはなりません。詳細は、「変数を使用したカタログまたはスキーマの名前の指定」を参照してください。
Oracle OLAPのディメンションは、データを識別してカテゴリ分けする一意の値のリストです。これらのディメンションによって、キューブのエッジおよびキューブ内のメジャーのエッジが形成されます。レポートでは、ディメンションの値(またはディメンションの値の説明属性)によって、行と列のラベルが指定されます。
Oracle OLAPのディメンションには、次の3種類があります。
レベルベースのディメンション。レベルベースのディメンションのメンバーは基本的に"月"や"年"などのタイプに基づいてレベルにグループ分けされます。ほとんどのディメンションがレベルベースです。
値ベースのディメンション。これらのディメンションは、メンバー間で親子の関係がありますが、メンバーはすべて同一タイプ(従業員やアカウントなど)のため、これらの関係によって意味のあるレベルが形成されることはありません。
リスト・ディメンションまたはフラット・ディメンション。これらのディメンションには、レベルも階層もありません。
注意: Oracle Business Intelligenceでは、階層のないディメンション(フラット・ディメンション)はサポートされません。Oracle OLAPデータ・ソースからフラット・ディメンションをインポートすると、エラーが発生します。フラット・ディメンションを使用している場合は、Oracle Business Intelligenceにインポートする前に、データ・ソースでフラット・ディメンションを単一レベル階層に置換します。 |
「Oracle OLAPディメンション」ダイアログの「一般」タブでは、次のディメンション・プロパティとともに、ディメンションの名前と説明を表示、編集できます。
時間。対象のディメンションが時間ディメンションであることを示します。
不規則。ベースが異なるメンバーが1つ以上属しているため、不規則なベース・レベルが作成されている階層が対象のディメンションに含まれることを示します。
スキップ・レベル。このディメンションに、階層に穴を作成して2つ以上高いレベルの親を持つメンバーが1つ以上属している階層が含まれていることを示します。スキップレベル階層の例としては、少なくとも1つの都市がその親として国を持つ(アメリカ合衆国におけるワシントン市など)都市-州-国という階層があげられます。
外部名。物理SQL問合せでディメンションの参照時に使用される物理名。この値は、データ・ソースで定義されている外部名を反映する必要があります。
キャッシュのプロパティ。対象のディメンションをOracle BIサーバーの問合せキャッシュに含める場合は、「キャッシュ可能」を選択します。キャッシュ・エントリが失効しないことを指定するには、「キャッシュ失効なし」を選択します。または、「キャッシュ永続時間」を選択して、問合せキャッシュでエントリが保持される期間を指定する値を入力することもできます。問合せで永続時間が異なる複数の物理オブジェクトが参照されている場合は、その問合せのキャッシュ・エントリは、問合せで参照される表の中で永続時間が最も短く設定されているものの永続時間だけ保持されます。これによって、後続の問合せで失効したキャッシュ・エントリからキャッシュ・ヒットが取得されることはなくなります。
「Oracle OLAPディメンション」ダイアログの「列」タブおよび「階層」タブには、対象のディメンションに属するディメンション・メンバーと階層がリストされます。「列」タブでは、列の追加または削除と、特定の列の編集ができます。「階層」タブでは、階層の追加、削除または編集を実行できます。入力(キー)ボタンを使用して、ディメンションにデフォルトの階層を選択することもできます。
ディメンションには、1つ以上の階層を格納できます。ほとんどの階層がレベルベースで、1つ以上の集計レベルで構成されています。多対1関係でメンバーは次に高いレベルにロールアップし、これらのメンバーはまた次に高いレベルにロールアップし、続けて最上位レベルまでにロールアップします。不規則階層およびスキップレベル階層もサポートされています。
ディメンションには、値ベースの階層も格納できます。値ベースの階層は、レベルをサポートしない親子階層です。たとえば、従業員ディメンションは、各従業員の上司を識別する親子関係を持つ場合があります。ただし、第1レベル、第2レベル、第3レベルなどの上司を一緒にグループ化するレベルは、分析上意味がない場合があります。
値ベースの階層の場合、ルート・メンバー物理キューブ列に対してデフォルトでNULL値可能オプションが選択されています。このオプションは、値ベースの階層のルート・メンバーが適切に機能するために選択する必要があります。
通常、1つのディメンションに対する複数の階層は、ベースレベルのディメンション・メンバーを共有して、別個の階層に分岐します。これらの階層ですべて同一のベース・メンバーが使用され、同一の集計演算子が使用される場合は、これらの階層で最上位レベルを共有できます。それ以外の場合は、別個の集計値を格納するために、別個の最上位レベルが必要です。
「Oracle OLAP階層」ダイアログで、階層の名前、外部名および説明を表示および編集できます。レベルベースの階層の場合は、レベルの追加、削除、編集または並替えを実行できます。値ベースの階層の場合、列を追加、削除または編集できます。キー列を指定するには、列名をダブルクリックします。
「Oracle OLAPレベル」ダイアログでは、レベルの名前、外部名および説明を表示、編集できます。レベルに対して列の追加、削除または編集を実行することもできます。ある列をレベル・キーとして指定するには、列名をダブルクリックします。
Oracle OLAPキューブは、ディメンションがまったく同じになっているメジャーを識別して、その上でデータのロード、集計、格納および問合せのすべての段階で一緒に処理される候補となる情報オブジェクトです。
キューブによって、ビジネス・メジャーの形状が定義されます。キューブは、一連の順序付け済ディメンションによって定義されます。ディメンションによってキューブのエッジが形成され、メジャーがキューブ本体のセルになります。
Oracle OLAPキューブには、他のキューブと同様のプロパティがあります。「Oracle OLAPキューブ」ダイアログの「一般」タブでは、キューブの次のプロパティとともに、キューブの名前と説明を表示、編集できます。
外部名。物理SQL問合せでキューブの参照時に使用される物理名。この値は、データ・ソースで定義されている外部名を反映する必要があります。
密度および実体化。スパースで完全に実体化されているOracle OLAP 10gキューブの場合、問合せを最適化するためにこれらのプロパティに値を指定します。「密度」オプションを「スパース」に設定し、「実体化」オプションを「完全な実体化」に設定すると、Oracle BIサーバーでは、空のセルをスキップするためにループ句が生成されます。「密度」オプションを空白のままにすると、Oracle BIサーバーではデータがスパースであると見なされます。
これらのオプションを設定する場合、データ・ソースの実際のプロパティを反映するように設定する必要があります。これがデータ・ソースにも当てはまらないかぎり、データをスパースおよび完全な実体化と指定しないでください。
これらの値をOracle OLAP 11gキューブに設定する必要はありません。これらのオブジェクトについては、最適化が自動的に行われます。
キャッシュのプロパティ。対象のキューブをOracle BIサーバーの問合せキャッシュに含める場合は、「キャッシュ可能」を選択します。キャッシュ・エントリが失効しないことを指定するには、「キャッシュ失効なし」を選択します。または、「キャッシュ永続時間」を選択して、問合せキャッシュでエントリが保持される期間を指定する値を入力することもできます。問合せで永続時間が異なる複数の物理オブジェクトが参照されている場合は、その問合せのキャッシュ・エントリは、問合せで参照される表の中で永続時間が最も短く設定されているものの永続時間だけ保持されます。これによって、後続の問合せで失効したキャッシュ・エントリからキャッシュ・ヒットが取得されることはなくなります。
「Oracle OLAPキューブ」ダイアログの「列」タブには、キューブに属している列がリストされます。列の追加または削除と、特定の列の編集ができます。
Oracle OLAP列は、メジャー、計算されたメジャー、属性またはレベル・キーのいずれかになります。Oracle OLAP列には、他の物理列と同じプロパティがあります。「タイプ」、「長さ」、「NULL値可能」などの物理列プロパティの詳細は、「物理表の列の作成と編集」を参照してください。
物理図または結合マネージャを使用して物理外部キーおよび複合結合を作成できます。マルチディメンション・データ・ソースに結合を作成することはありません。
この項には次のトピックが含まれます:
物理スキーマにキーをインポートすると、主キーと外部キーの結合が自動的に定義されます。各データ・ソース内またはデータ・ソース間のその他の結合は、物理レイヤーで表間の関係を表現するように明示的に定義する必要があります。
インポートしたキーと外部キーとの結合をメタデータで使用する必要はありません。参照整合性制約を施行するよう定義されている結合によって、問合せで正しくない結合が指定されることになる場合があります。たとえば、1つの多目的参照表と複数のその他の表との結合によって、SQL問合せで不要なまたは無効な循環結合がOracle BIサーバーから発行されることになる場合があります。
この項には次のトピックが含まれます:
主キーと外部キーの関係によって、2つの表の1対多関係が定義されます。
外部キーは、別の表内の主キー列を参照する、ある表内の1つまたは一連の列です。主キーは、一意の各値が表の単一行を識別する1つまたは一連の列として定義されます。
同じ表をポイントする外部キー列が1つの表に複数ある場合が次の2通りあります。
外部表の主キーが連結されている場合、つまり一連の列で構成されている場合。これは、偶然複数の列を使用するようになった2つの表間の単一結合です。
外部表が複数のロールで機能する必要があるので、外部表に別名を作成した場合。この場合、外部キーそれぞれが、ロールを担っているどちらか一方の別名で主キーに結合します。詳細は、「物理別名表について」を参照してください。
主キーと外部キーの指定は、物理図で実行することも、「物理表」ダイアログの「キー」タブおよび「外部キー」タブを使用して実行することもできます。詳細は、「物理図を使用した物理結合の定義」および「リレーショナル表およびキューブ表の列とキーの作成と管理」を参照してください。
リポジトリの物理レイヤーでは、複合結合は、非外部キー列と主キー列の結合です。つまり、物理複合結合は、キー列の関係ではなく式を使用する結合です。
物理レイヤーで複合結合を作成する場合、結合に式を指定します。
ほとんどのデータ・ソースについて、パフォーマンスのためには外部キー結合をお薦めします。複合結合は通常、結合の形成にキー列関係が使用されないため、それほど高性能ではありません。例外がADFデータ・ソースで、ここでは、ADFモデルでビュー・オブジェクトのペアを接続するViewLinkインスタンスを指定するためにのみ物理複合結合が使用されます。
マルチデータベース結合は、別のメタデータ・データベース・オブジェクトの下の表に結合する、あるメタデータ・データベース・オブジェクトの下の表として定義されます。別のデータベースからデータを結合するにはマルチデータベース結合を指定する必要があります。
マルチデータベース結合の指定には、物理図を使用します。詳細は、「物理図を使用した物理結合の定義」を参照してください。
マルチデータベース結合は、ほとんどのタイプのデータベースの表間に作成することができ、Oracle BIサーバー内で実行されます。Oracle OLAPデータ・ソースの表にマルチデータベース結合を作成することはできません。
Oracle BIサーバーには、マルチデータベース結合のパフォーマンス最適化のための戦略がいくつかありますが、これらの結合は同じデータベース内の表間の結合よりはるかに非効率です。このため、可能なかぎりマルチデータベース結合は避けます。
断片化されたデータとは、複数の表に分割されている単一ドメインからのデータです。
たとえば、データ・ソースで、姓の頭文字がA - Mの顧客の売上データを1つの表に保存し、N - Zの顧客の売上データを別の表に保存する場合があります。断片化された表を使用する場合、各断片とそれに関連するすべての表との間のすべての結合条件を定義する必要があります。図8-7は、断片化された売上表と、それと同じように断片化されている(A - MとN - Z)断片化された顧客表との物理結合を示しています。
場合によっては、断片化されたファクト表と断片化されたディメンション表があり、断片が複数の値にわたっていることがあります。このような場合、図8-7で作成した結合に加えて、図8-8に示すような、顧客A - Fと顧客G - Zから、売上A - Mに対して1対多の結合を定義する必要があります。
表が同一のデータ・ソースにあるかどうかにかかわらず、表間に外部キーと複合結合を定義できます。結合の作成に物理図を使用する場合、選択したオブジェクト・タイプと結合式に基づいて、作成する結合のタイプが管理ツールによって決定されます。
作成する結合のタイプを管理ツールで自動的に決定されないようにするには、結合マネージャを使用して、結合を明示的に作成します。詳細は、「結合マネージャを使用した物理結合の定義」を参照してください。
物理図を使用して物理外部キー結合または複合結合を定義するには:
管理ツールの物理レイヤーで、1つ以上の表を選択し、右クリックメニューからいずれかの物理図コマンドを選択します。
管理ツールのツール・バーの「新規結合」ボタンをクリックします。
物理図で、結合の1つ目の表(1対多結合の多を表す表)を左クリックして選択します。
結合対象の表(1対多結合の1を表す表)にカーソルを移動し、2つ目の表を左クリックして選択します。
「物理外部キー」ダイアログが表示されます。物理外部キー結合がデフォルトの結合タイプですが、結合の情報によっては、結合を定義して「OK」をクリックした後に、オブジェクト・タイプが複合結合に変わる場合があります。
左の表と右の表から結合する列を選択します。
「式」ペインにSQL結合条件が表示されます。
このダイアログに駆動表オプションが表示されますが、このオプションは選択できません。Oracle BIサーバーでは、ビジネス・モデルとマッピング・レイヤーにのみ駆動表が実装されるためです。駆動表の詳細は、「駆動表の指定」を参照してください。
複合結合の場合、結合の各側にオプションでカーディナリティを設定することができます(N、0,1、1、不明など)。
カーディナリティを不明に設定する場合、結合の一方の側にのみ「不明」を選択します。たとえば、不明対1の選択は、不明対不明に相当し、この結合のダイアログを次回開いたときは不明対不明と表示されます。
必要に応じて、データベース・ヒントを指定します。詳細は、「SQL文でのヒントの使用」を参照してください。
ADF ViewObjectまたはViewLinkインスタンスに複合結合を作成する場合は、「ViewLink名」フィールドにViewLinkインスタンス名またはViewLink定義名を指定します。
式ビルダーを開くには、「式」ペインの右にあるボタンをクリックします。「式」ペインに式が表示されます。
ViewObjectまたはViewLinkインスタンスのデフォルトの結合式は任意で、意味はありません。
「OK」をクリックして選択内容を適用します。
物理図で、結合は、選択した2つの表の間の線で表され、結合の「1」側が矢印になっています。図8-9は、物理図での結合を示しています。
結合マネージャを使用して、結合関係を表示したり、物理外部キー結合および複合結合を作成したりできます。
結合マネージャを使用して物理外部キー結合または複合結合を定義するには:
管理ツールのツールバーで、「管理」を選択し、「結合」を選択します。
「結合マネージャ」ダイアログで、次のいずれかのタスクを実行します。
「アクション」→「新規」→「複合結合」を選択します。
「複合結合」ダイアログが表示されます。
「アクション」→「新規」→「物理外部キー」を選択します。その後、「参照」ダイアログで、表をダブルクリックします。
「複合結合」ダイアログまたは「物理外部キー」ダイアログで、結合の名前を入力します。
ダイアログの左側にある「表」フィールドの「参照」ボタンをクリックして、外部キーで参照する表を探します。
左の表から、キーで参照する列を選択します。
右の表から、外部キー列を構成する列を選択します。
複合結合の場合、結合の各側にオプションでカーディナリティを設定することができます(N、0,1、1、不明など)。
カーディナリティを不明に設定する場合、結合の一方の側にのみ「不明」を選択します。たとえば、不明対1の選択は、不明対不明に相当し、この結合のダイアログを次回開いたときは不明対不明と表示されます。
必要に応じて、データベース・ヒントを指定します。詳細は、「SQL文でのヒントの使用」を参照してください。
ADF ViewObjectまたはViewLinkインスタンスに複合結合を作成する場合は、「ViewLink名」フィールドにViewLinkインスタンス名またはViewLink定義名を指定します。
式ビルダーを開くには、「式」ペインの右にあるボタンをクリックします。「式」ペインに式が表示されます。
ViewObjectまたはViewLinkインスタンスのデフォルトの結合式は任意で、意味はありません。
「OK」をクリックして保存します。
不透明なビューとは、SELECT
文で構成されている物理レイヤーの表です。新しい表が必要な場合、物理表またはマテリアライズド・ビューを作成する必要があります。不透明なビューは、他にソリューションがない場合にのみ使用してください。
マテリアライズド・ビューの詳細は、付録G「データベースとのメタデータ交換による問合せのパフォーマンス向上」を参照してください。
この項には次のトピックが含まれます:
リポジトリでは、不透明なビューは、データ・ソースのビュー表として表示されますが、不透明なビューはデプロイされるまで実際には存在しません。「ビューのデプロイ」ユーティリティを使用して、データ・ソースに不透明なビューをデプロイします。
デプロイ後、不透明なビューはデプロイされたビューと呼ばれます。不透明なビューは、デプロイせずに使用できますが、Oracle BIサーバーで不透明なビューが検出されると、より複雑な問合せの生成が必要になります。
注意: XLSデータ・ソースや非リレーショナル・データ・ソースなどのデータ・ソースでは、不透明なビューはサポートされておらず、ビューをデプロイするためのユーティリティも実行できません。 |
特定のデータ・ソースで不透明なビューがサポートされていることを確認するには、「データベース」ダイアログの「機能」タブで、CREATE_VIEW_SUPPORTED
SQL機能が選択されていることを確かめます。この手順については、「データ・ソースでサポートされるSQL機能の指定」を参照してください。
オフライン・モードで、「ビューのデプロイ」ユーティリティは、ODBCおよびDB2 CLIデータ・ソースで、データ・ソースからのインポート時に使用できます。Oracleのネイティブ(クライアント)ドライバも、オフライン・モードでのビューのデプロイに対応しています。オンライン・モードでは、ビューのデプロイは、サポートされているデータ・ソースで、サーバーを通したインポートを使用して実行できます(クライアント上での設定は無視されます)。
リポジトリの物理レイヤーで不透明なビューをデプロイするためのSQL文は、サポートされているデータ・ソースで使用できます。不透明なビューをサポートするデータ・ソースを判別するには、システム管理者に問い合せるか、データ・ソースのドキュメントを参照してください。
定義には、リポジトリ変数のみを使用します。ビュー定義にセッション変数が含まれていると、エラーが生成されます。
構文
CREATE VIEW view_name AS select_statement,
説明:
select_statement
は、不透明なビュー・オブジェクトでユーザーが入力したSQL文です。SQL文が無効な場合、create view文はビューのデプロイ時に失敗します。
view_name
は、schema.viewname
とviewname
のいずれかの形式です。接続プールの設定によって、スキーマ名が追加されるかどうかが決まります。
SELECT文で行単位の初期化変数を参照するには、VALUELISTOF
関数を使用します。たとえば、変数LIST_OF_USERS
内のユーザー名に割り当てられた顧客を取得するためには、次の構文を使用します。
RW.CUSTOMERS.USER_NAME in (VALUELISTOF(NQ_SESSION.LIST_OF_USERS))
リストに表示されている指定された値のみでフィルタをするには、ValueNameof
を使用して、次の例のようにします。最初の値は「0」であることに留意してください。「1」ではありません。
RW.CUSTOMERS.USER_NAME in '(ValueNameOf(0,NQ_SESSION.LIST_OF_USERS))
不透明ビュー・オブジェクトの場合、右クリック・メニューには、「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、デプロイされたビュー・オブジェクトの作成が試行されます。ビューのデプロイを開始する方法と各方法の結果について、次にまとめます。
1つの不透明ビュー・オブジェクトを右クリックします。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、不透明ビュー・オブジェクトのデプロイされたビューの作成が試行されます。
複数のオブジェクトを右クリックします。選択したオブジェクトのうち少なくとも1つが不透明ビュー・オブジェクトの場合、右クリック・メニューには「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、Create View SQL文が実行され、修飾オブジェクトのデプロイされたビューの作成が試行されます。
物理スキーマまたは物理カタログを右クリックします。対象のスキーマまたはカタログに不透明ビュー・オブジェクトが存在する場合、右クリック・メニューには「ビューのデプロイ」オプションが含まれます。「ビューのデプロイ」を選択すると、すべての修飾オブジェクトに対するCreate View SQL文が実行され、選択したスキーマまたはカタログに含まれる修飾オブジェクトのデプロイされたビューの作成が試行されます。
デプロイ時に名前がビューに割り当てられます。事前割当ての名前を変更する場合、新しい名前は英数字で18文字以下にする必要があります。これらのガイドラインに従わないと、オブジェクト名は、次の名前変換アルゴリズムを使用して有効な名前に自動的に変換されます。
英数字以外の文字はすべて削除されます。
ステップ1の後に16文字以上ある場合は、最初の16文字が保持されます。
対応するコンテキストで名前を一意にするために、00 - 99の2桁の数字が名前に追加されます。
デプロイメント・プロセスが完了すると、次のことが起こります。
正常にデプロイされたビューとデプロイに失敗したビューがリストで表示されます。
失敗したデプロイメントの場合、リストに簡単な理由が表示されます。
デプロイメントが正常に実行された場合、不透明ビューのオブジェクト・タイプが「選択」から「なし」に変わり、デプロイされたビューは通常の表として扱われます。
オブジェクト・タイプを「選択」に戻すと、関連付けられている不透明ビューがデータ・ソースから削除されるか、エラー・メッセージが表示されます。デプロイされたビューの削除の詳細は、「不透明ビューまたはデプロイされたビューを削除するタイミング」を参照してください。
正常にデプロイされたビューについては、管理ツールの「ビュー」アイコンが、「デプロイされたビュー」アイコンに変わります。
不透明ビューをデプロイするには:
管理ツールの物理レイヤーで、デプロイする不透明ビューを右クリックします。
右クリック・メニューで、「ビューのデプロイ」を選択します。
「ビューのデプロイメント - ビューのデプロイ」ダイアログで、次の手順を実行します。
「新規表名」列で、デプロイされたビューの新しい名前を必要に応じて変更します。
変更がネーミング・ルールに準拠していない場合は、別の名前が割り当てられ、ダイアログが再度表示されて、その名前を受け入れることも変更することもできます。このアクションは、すべての名前が検証に合格するまで繰り返されます。
1つまたは複数のビューをデプロイしない場合は、該当する行をクリアします。
物理データベースに接続プールが複数定義されている場合は、「接続プールの選択」ダイアログで接続プールを選択し、「選択」をクリックします。
SQL文(CREATE VIEW
)が実行され、「ビューのデプロイメント・メッセージ」ダイアログが表示されます。
「ビューのデプロイメント・メッセージ」ダイアログでは、「検索」および「再検索」を使用したビューの検索やコンテンツのコピーを実行します。
終了したら、「OK」をクリックします。
デプロイされたビューに対して「ビューのアンデプロイ」ユーティリティを実行すると、ビューは削除され、ビュー表は元のSELECT
文が指定された不透明なビューに戻ります。
デプロイされたビューをアンデプロイするには:
管理ツールの物理レイヤーで、物理データベース、カタログ、スキーマまたは表を右クリックします。
選択したオブジェクトに関連するデプロイされたビューが存在する場合は、右クリック・メニューに「ビューのアンデプロイ」オプションが含まれます。
「ビューのアンデプロイ」を選択します。
アンデプロイされるビューのリストが表示されます。
1つまたは複数のビューをアンデプロイしない場合は、該当する行をクリアします。
「ビューのデプロイメント - ビューのアンデプロイ」ダイアログで、「OK」をクリックしてビューを削除します。
アンデプロイが正常に完了したかどうかを示すメッセージが表示されます。
「ビューのデプロイメント・メッセージ」ダイアログでは、「検索」および「再検索」を使用したアンデプロイされたビューの検索やコンテンツのコピーを実行します。
終了したら、「OK」をクリックします。
リポジトリの不透明なビュー・オブジェクトまたはデプロイされたビュー・オブジェクトを削除するには次のガイドラインに従います。
リポジトリのデプロイされていない不透明なビューの削除。デプロイされていない不透明なビューは、リポジトリから削除できます。
デプロイされたビューの削除。不透明なビューをデプロイすると、物理的にデータ・ソースとリポジトリの両方にビュー表が作成されます。このため、ビューを削除する前にそのビューをアンデプロイする必要があります。管理ツールの「ビューのアンデプロイ」ユーティリティを使用します。このユーティリティにより、不透明なビューがバックエンド・データ・ソースから削除され、「表タイプ」が「なし」から「選択」に変わり、リポジトリの物理レイヤーのオブジェクトのSELECT
文がリストアされます。
注意: データ・ソースのビュー表を手動で削除しないでください。この表を削除すると、Oracle BIサーバーで、そのビュー・オブジェクトを問い合せることができなくなります。ビューをアンデプロイすると、データ・ソースからそのビューが自動的に削除されます。 |
不透明なビューを削除した後、その再デプロイを選択します。管理ツールでは、初めてのデプロイと再デプロイは区別されません。不透明なビューを再度デプロイする前に、デプロイされたビューを削除する必要があります。不透明なビューを再デプロイする前にデプロイされたビューを削除しないと、デプロイ操作は失敗し、データ・ソースからエラー・メッセージが返されます。
ヒントとは、SQL文内に配置されるインストラクションで、データ・ソース問合せオプティマイザに、その文を実行するための最も効率的な方法を指示します。
ヒントは、オプティマイザの実行計画より優先されるため、ヒントを使用して、より効率的な計画を使用するようオプティマイザに強制することにより、パフォーマンスを向上させることができます。ヒントは、Oracle Databaseデータ・ソースでのみサポートされています。
管理ツールを使用すると、オンライン・モードとオフライン・モードの両方でヒントをリポジトリに追加でき、問合せのパフォーマンスを最適化することができます。リポジトリにヒントを追加するときに、ヒントを物理レイヤー・オブジェクトに関連付けます。ヒントに関連付けられたオブジェクトに対して問合せが実行されると、Oracle BIサーバーによってヒントがSQL文に挿入されます。
表8-6は、ヒントを関連付けることができる物理オブジェクトを示しています。また、対象の物理オブジェクトに対応する管理ツールのダイアログも示しています。これらのダイアログそれぞれに、「ヒント」フィールドが含まれており、このフィールドに、リポジトリに追加するヒントを入力できます。
ヒントは、「表タイプ」が「物理表」に設定されている場合にのみサポートされます。その他の表については、ヒントのテキストは無視されます。表タイプが「選択」の物理表の場合、「デフォルトの初期化文字列」フィールドに入力するSQL文の一部としてヒントのテキストを入力できます。
ここでは、Oracle BIサーバーでのOracleヒントの使用例を示します。
Oracleヒントの詳細は、使用しているバージョンのOracle Databaseの『Oracle Database SQL言語リファレンス』を参照してください。
この項には次のトピックが含まれます:
Leadingヒントは、指定した表で問合せの結合順序を構築するようオプティマイザを強制します。
Leadingヒントの構文はleading(
table_name
)
です。Products表とSalesファクト表との間に外部キー結合を作成し、Products表で結合を開始するようオプティマイザを強制する場合は、管理ツールの「物理外部キー」ダイアログに移動して、「ヒント」フィールドに次のテキストを入力します。
leading(Products)
十分に調査され、計画されたヒントは、問合せのパフォーマンスを大きく向上することができます。ただし、ヒントは、実行計画が不十分であると、パフォーマンスに負の影響を与えることもあります。
ヒントを作成して問合せのパフォーマンスを最適化するには、次のガイドラインに従ってください。
ヒントをリポジトリに追加するのは、次の方法でパフォーマンスの向上を試みた後のみです。
Oracle Databaseに物理索引(またはその他の物理変更)を追加します。
サーバー内でモデリングの変更を行います。
頻繁に問合せが実行される物理表オブジェクトと物理結合オブジェクトには、ヒントを作成しないようにします。ヒントに関連付けられている物理オブジェクトを削除または名前変更した場合は、それに応じてヒントも変更する必要があります。
管理ツールを使用して、ヒントをリポジトリに追加できます。
ヒントを作成するには:
管理ツールで、次のいずれかのダイアログに移動します。
物理表—「一般」タブ
物理外部キー
複合結合
「ヒント」フィールドにヒントのテキストを入力して、「OK」をクリックします。
使用できるOracleヒントとヒント構文の説明については、使用しているバージョンのOracle Databaseの『Oracle Database SQL言語リファレンス』を参照してください。
注意: ヒントには、SQLコメント・マーカー(/*または--)を使用しますが、ヒントのテキストの入力時にSQLコメント・マーカーを入力しないでください。ヒントの実行時に、Oracle BIサーバーによってコメント・マーカーが挿入されます。 |
行数をリクエストすると、管理ツールでは、すべてのまたは選択した表と列について、データ・ソースから行数が取得され(列の場合は個別の値が取得されます)、これらの値がリポジトリに格納されます。このプロセスにかかる時間は、取得する行数の数によって異なります。
すべての行数の更新時には、行数が取得および格納されている間に「行数の更新中」ウィンドウが表示されます。「取消」をクリックすると、インプロセス表(およびその列)の取得後に取得プロセスが停止します。行数には、取消し操作の前に値が取得されたすべての表と列が含まれます。
大きなリポジトリのすべての行数を更新する場合、完了に長時間かかることがあります。このように、選択した表と列の数のみ更新するとよい場合があります。
次の場合、行数は使用できません。
ストアド・プロシージャ・オブジェクト・タイプ。
XMLデータ・ソースおよびXMLサーバー・データ・ソース。
マルチディメンション・データ・ソース。
COUNTDISTINCT
ファンクションをサポートしていないデータ・ソース。たとえば、Microsoft AccessやMicrosoft Excel、およびCOUNT_STAR_SUPPORTED
がデータベース機能表で無効になっているデータ・ソース。
オンライン・モードでは、「行数の更新」は、セッション変数:USER
および:PASSWORD
がユーザーの名前とパスワードとして設定されている接続プールでは機能しません。
オフライン・モードでは、変数の値の設定ダイアログが表示されるため、セッション変数:USER
および:PASSWORD
を移入できます。
オンライン・モードでは、物理表または物理列をインポートまたは手動作成した場合、これらの新しいオブジェクトは、チェックインするまでOracle BIサーバーでは認識されません。このため、「行数の更新」は、これらのオブジェクトをチェックインするまでメニューで選択できません。
物理レイヤーで行数を表示するには:
管理ツールで、「ツール」を選択し、「オプション」を選択します。
「オプション」ダイアログの「一般」タブで、「物理ビューで行数の表示」を選択し、「OK」をクリックします。
物理レイヤーで選択した行数を更新示するには:
管理ツールの物理レイヤーで、1つの表または列を右クリックします。複数のオブジェクトを選択して右クリックすることもできます。
ショートカット・メニューで、「行数の更新」を選択します。
物理レイヤーですべての行数を更新するには:
管理ツールで、「ツール」を選択してから、「すべての行数の更新」を選択します。リポジトリがオンライン・モードで開いている場合は、「オブジェクトのチェックアウト」ウィンドウが開きます。
「はい」をクリックして、オブジェクトをチェックアウトします。
前回の更新以降に変更されている行数がリフレッシュされます。