プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.2.0)
E82973-02
目次へ移動
目次

前
前へ
次
次へ

物理表での作業

Oracle BIリポジトリの物理レイヤーで物理表オブジェクトを使用して作業する様々な処理を説明します。

リレーショナル・データ・ソースからの物理表とマルチディメンション・データ・ソースからの物理キューブ表の両方で、「物理表」表タイプが使用されます。

この項で説明するタスクの多くが、リレーショナル・データ・ソースとマルチディメンション・データ・ソースに適用されます。「物理レイヤーのマルチディメンション・ソースでの作業」を参照してください。

この項では、次の項目について説明します。

物理レイヤーの表について

物理表は、Oracle BIリポジトリの物理レイヤーにあるオブジェクトの1つで、データ・ソースの表に対応しています。

物理表のメタデータは通常、データ・ソースからインポートされます。このメタデータによって、Oracle BIサーバーでは、SQLリクエストを使用してデータ・ソース表にアクセスできるようになります。

物理表を削除すると、依存オブジェクト(列、キー、外部キーなど)がすべて削除されます。物理キューブ表を削除すると、階層も削除されます。物理表に別名が存在する場合、削除は失敗します。

データ・ソース表を物理レイヤーにインポートできることに加えて、「物理表」ダイアログの「表タイプ」フィールドで値を使用することによって、物理レイヤーに仮想物理表を作成することができます。仮想表を作成すると、Oracle BIサーバーおよび基礎となるデータ・ソースで、詳細な問合せリクエストを実行するための適切なメタデータを使用できるようになります。

物理表は、ストアド・プロシージャまたはSELECT文に格納できます。SELECT文から作成した仮想物理表も不透明なビューの1つです。不透明なビューを定義してデータ・ソースにデプロイすると、デプロイされたビューを作成できます。「不透明なビューのデプロイ」を参照してください。

「物理表」ダイアログの「一般」タブの「表タイプ」リストを使用して、物理表オブジェクトのタイプを指定します。次の表は、指定できるオブジェクト・タイプについて説明しています。

表タイプ 説明

物理表

物理表オブジェクトがデータ・ソース表を表すことを指定します。この表タイプは、リレーショナル物理表とマルチディメンション・キューブ表の両方で使用されます。

ストアド・プロシージャ

物理表オブジェクトがストアド・プロシージャであることを指定します。このオプションを選択した場合、テキスト・ボックスにストアド・プロシージャを入力します。この表に対するリクエストによって、指定したストアド・プロシージャがコールされるようになります。

ストアド・プロシージャがデータ・ソース固有である場合は、「データベース固有のSQLの使用」を選択します。このオプションを選択すると、「データベース」列に、サポートされるデータ・ソースがブランド別に表示されます。デフォルト値はrootです。左側のデータベース・タイプを選択して、右側に対応する文字列を入力することにより、データ・ソース固有の初期化文字列を入力できます。問合せ対象のデータベース・タイプに対応するデータベース固有の文字列が定義されていない場合は、デフォルトのオプションの初期化文字列が実行されます。

Oracle Database内のストアド・プロシージャからは、結果セットが返されないことがあります。ストアド・プロシージャをOracle Business Intelligence内から初期化することはできません。プロシージャをOracleファンクションとしてリライトし、管理ツールの初期化ブロックのSELECT文でOracleファンクションを使用し、「セッション変数」ダイアログでOracleファンクションを適切なOracle BIサーバー・セッション変数に関連付ける必要があります。

次の例は、USERGROUPおよびDISPLAYNAME変数に関連付けられたGET_ROLESファンクションを使用したSQL初期化文字列を示しています。このファンクションは、パラメータとしてユーザーIDを取得し、セミコロンで区切られたグループ名リストを返します。

SELECT user_id, get_roles(user_id), first_name || ' ' || last_name
FROM csx_security_table
WHERE user_id = ':USER' and password = ':PASSWORD'

選択

物理表オブジェクトがSELECT文であることを指定します。このオプションを選択した場合、テキスト・フィールドにSELECT文を入力し、表の列を手動で作成する必要があります。それぞれの列名は、SELECT文で指定したものと一致する必要があります。集計やCASE文などのSQL拡張機能の場合には列の別名が必要です。

この表に対するリクエストによって、SELECT文が実行されます。

データ・ソース固有のSELECT文の場合は、「データベース固有のSQLの使用」を選択します。このオプションを選択すると、「データベース」列に、サポートされるデータ・ソースがブランド別に表示されます。デフォルト値はrootです。左側のデータベース・タイプを選択して、右側に対応する文字列を入力することにより、データ・ソース固有の初期化文字列を入力できます。問合せ対象のデータベース・タイプに対応するデータベース固有の文字列が定義されていない場合は、デフォルトのオプションの初期化文字列が実行されます。

物理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つの列を削除すると、その列は別名表から自動的に削除されます。

すべての別名表を先に削除しないかぎり、オリジナル表を削除することはできません。または、オリジナル表とその別名表をすべて選択して、同時に削除することができます。

変更後のオリジナル表が現在のオリジナル表のスーパーセットになる場合は、別名表のオリジナル表を変更できます。ただし、オリジナル表を変更することによって使用中の列が削除された場合は、この変更の結果、リポジトリの整合性がなくなります。これを実行しようとすると、問題が発生する可能性があることを知らせ、このアクションのキャンセルを求める警告メッセージが表示されます。整合性チェックによって、孤立した別名が特定されます。

オンライン・モードで物理表または物理列を編集した場合は、別名の表および列をすべてチェックアウトする必要があります。オンライン・チェックアウトの動作では、次の規則が使用されます。

  • オリジナルの表または列をチェックアウトすると、その別名の表および列もすべてチェックアウトされます。

  • 別名の表または列をチェックアウトすると、そのオリジナルの表および列もチェックアウトされます。

  • チェックアウト・オプションは、オンラインのリポジトリ(読取り専用ではない場合)と、オリジナルおよび別名の表と列すべてに使用できます。

別名表では、そのオリジナル表からプロパティがいくつか継承されます。プロキシ設定されたプロパティは、常にオリジナル表と同じ値で、変更することはできません。プロキシ設定されたプロパティは、別名表のダイアログではグレー表示されるプロパティです。オリジナル表でプロキシ設定されたプロパティの値が変更された場合は、同じ変更が別名表で適用されます。

プロキシ設定されるプロパティのリストは次のとおりです。

  • キャッシュ可能(継承されたプロパティをオーバーライドできます)

  • 「キャッシュ失効なし」および「キャッシュ永続時間」(継承された値をオーバーライドできます)

  • 行数

  • 最終更新

  • 表タイプ

  • 外部データベースに関する指定

プロキシ設定されないプロパティのリストは次のとおりです。

  • Name

  • 説明

  • 表示フォルダのコンテナ

  • 外部キー

  • 注意:

    別名表とオリジナル表で列が共有されることはありません。別名表とオリジナル表には、互いに別名の明らかに異なる列が含まれます。

  • 表のキー

  • 複合結合

  • ソース接続プール

  • ポーリング頻度

  • すべてのXML属性

物理表と物理キューブ表の作成と管理

管理ツールの物理レイヤーで物理表および物理キューブ表を作成または編集するには、「物理表」ダイアログの「一般」タブを使用します。

この項では、次の項目について説明します。

物理表の作成と編集

リレーショナル物理表と物理キューブ表も含めて、表の一般的なプロパティを作成または編集できます。

物理表の「プロパティ」タブには、一部のデータ・ソースに対して物理レイヤーのメタデータを拡張する汎用メカニズムとして使用される名前と値のペアが表示されます。値はデータ・ソースから渡されますが、必要に応じて値を編集できます。「物理列のプロパティの表示」を参照してください。

  1. 管理ツールの物理レイヤーで、次のいずれかの手順を実行します。
    • 物理表を作成し、物理データベースまたは物理カタログを右クリックして「新規オブジェクト」を選択し、「物理表」を選択します。
    • データベース・オブジェクトに物理スキーマが定義されている場合は、物理スキーマを右クリックして、「新しい物理表」を選択します。
    • マルチディメンション・データ・ソース用の物理キューブ表を作成し、物理データベースを右クリックして「新規オブジェクト」を選択し、「キューブ表」を選択します。

    注意:

    キューブ表は、手動で作成するのではなく、インポートすることをお薦めします。

  2. 表をガイドとして使用して、「物理表」ダイアログのフィールドに入力します。
プロパティ 説明

Name

物理表の名前。

表タイプ

物理表の値: 物理表、ストアド・プロシージャまたは選択。

物理キューブ表の値: 物理表または選択。

動的名前の使用

カタログおよびスキーマ・オブジェクトと同様に、セッション変数を使用して物理表名を指定する場合はこのオプションを選択します。「物理表」の表タイプを選択した場合、このオプションは、マルチディメンション以外のデータ・ソース表に使用できます。

マルチテナント実装があり、顧客ごとに異なる物理表名を定義する場合に、このオプションを選択することがあります。別の例として、ETLサイクルで異なる時間に有効になるプライマリ表とシャドウ表から選択する場合があります。両方の場合で、セッション変数を割り当てて、適切な表を動的に選択できます。

デフォルトの初期化文字列/データベース固有のSQLの使用

マルチディメンション以外のデータ・ソース表(別名表ではない)の場合に、このオプションは、表タイプに「ストアド・プロシージャ」または「選択」を選択すると表示されます。マルチディメンション・データ・ソース表の場合は、表タイプに「選択」を選択すると表示されます。

このオプションを選択すると、データ・ソースを指定して、SQL文を入力できます。

キャッシュ可能

Oracle BIサーバー問合せキャッシュに表を含める場合に、このオプションを選択します。通常、リアルタイムでアクセスする必要がない表の場合に、このオプションを選択します。

このオプションを選択すると、「キャッシュ永続時間」の設定がアクティブになります。

ほかにも問合せキャッシュの動作に影響を与える構成設定があります。「問合せキャッシュの構成」を参照してください。

キャッシュ失効なし

このオプションを選択すると、キャッシュ・エントリが自動的に失効することがなくなります。これは、ユーザーが実行する可能性のある多数の問合せにとって1つの表が重要な場合に役立ちます。たとえば、問合せのほとんどに1つのアカウント・オブジェクトへの参照がある場合、それを無期限にキャッシュされたままにすると、パフォーマンスが低下するのではなく実際にはパフォーマンスが向上します。

このオプションを選択することによって、あるエントリが常にキャッシュに保持されるというわけではありません。手動による消去、LRU(最低使用頻度)置換、メタデータ変更、キャッシュ・ポーリング表の使用など他の無効化技術によってエントリがキャッシュから削除される可能性があります。

キャッシュ永続時間

問合せキャッシュに表エントリが永続する必要がある時間、つまり、キャッシュの有効期限。

キャッシュ永続時間の設定は、OLTPデータ・ソースおよび頻繁に更新されるその他のデータ・ソースの場合に有用です。たとえば、特定のダッシュボードに対して基礎となる物理表を毎日リフレッシュする場合にこのオプションを設定できます。

永続時間が異なる複数の物理表を参照する問合せの場合、この問合せのキャッシュ・エントリは、問合せで参照される表のうち、永続時間が最も短く設定されている表の永続時間だけ存続します。これによって、後続の問合せで失効したキャッシュ・エントリからキャッシュ・ヒットが取得されることはなくなります。

『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の「イベント・ポーリング表の問題のトラブルシューティング」を参照してください。

外部名

マルチディメンション・データ・ソースの物理キューブ表に適用されます。外部名は、物理SQL問合せでキューブ表の参照時に使用されます。この値は、データ・ソースで定義されている外部名を反映する必要があります。

表示列

Essbaseデータ・ソースのみの場合は、「Essbaseデータ・ソースでの作業」を参照してください。

ヒント

一部のデータ・ソースでのみ使用できます。「SQL文でのヒントの使用」を参照してください。

別名表の作成

不透明なビューおよびストアド・プロシージャで別名を作成することもできます。

次の表は、別名表に固有のプロパティを説明しています。「物理表の作成と編集」を参照してください。

プロパティ 説明

ソース表

別名表に適用されます。「選択」をクリックして、別名表を作成するオリジナル物理表を選択します。

ソース表キャッシュ・プロパティの上書き

別名表に適用されます。このフィールドをクリックして、キャッシュ可能プロパティを有効にします。該当するキャッシュ可能オプションを選択または選択解除できます。

  • リポジトリが開いているOracle BI管理ツールで別名表を作成するには、既存の物理表を右クリックして、「新規オブジェクト」を選択し、「別名」を選択します。

XMLデータ・ソースの場合の物理表プロパティの設定

XMLデータ・ソースのプロパティを設定または編集するには、「XML」タブを使用します。

「物理表」ダイアログの「XML」タブには、「接続プール」ダイアログの「XML」タブと同じ機能が用意されています。ただし、「物理表」ダイアログでのプロパティの設定が、「接続プール」ダイアログの対応する設定より優先されます。「「XML」タブの接続プール・プロパティの設定」を参照してください。

リレーショナル表およびキューブ表の列とキーの作成と管理

Oracle BI管理ツールの物理レイヤーの物理表および物理キューブ表にはそれぞれ、1つ以上の物理列が含まれます。

「物理表」ダイアログの「列」、「キー」および「外部キー」タブを使用して、表に関連付けられている列、キーおよび外部キーの表示、新規作成および既存のものの編集を実行できます。

次のリストでは、これらのタブに表示されるボタンを説明しています。

  • 新規。タブに対応するダイアログを開くことによって、オブジェクトを新規作成できます。

  • 編集。オブジェクトを1つ選択して「編集」をクリックすると、タブに対応するダイアログが表示されます。このダイアログで、対象のオブジェクトのプロパティを編集できます。

  • 削除。選択したオブジェクトが削除されます。

この項では、次の項目について説明します。

物理表の列の作成と編集

インポートされた列のプロパティが自動的に設定されます。インポート後、タイプおよびnull値を列に許可するかどうかを含む列のプロパティを変更できます。

次のリストでは、物理レイヤーにインポートされた列のNULL値可能な値とデータ型の値に関する情報を示しています。

  • Nullableは、列に対してNULL値が許可されているかどうかを示します。基礎となる表にNULL値が存在している可能性がある場合は、このオプションを選択する必要があります。これにより、特定の機能および外部結合に必要なNull値をユーザーに返すことができます。一般的に、物理列のNULL値不可の値をNULL値可能な値に変更しても問題はありません。

  • Typeは、列のデータ型を示します。データ型の変更は慎重に行ってください。基礎となるデータ・ソースで値に正しくないデータ型を設定すると、予期しない結果をまねくおそれがあります。データ型の不一致がある場合は、リポジトリで修正するか、データ型が不一致となっている列を再インポートします。

    列を再インポートした場合、再マップした列を参照する論理列ソースを再マップする必要があります。ビジネス・モデルの論理列のデータ型は、その物理列ソースのデータ型と一致する必要があります。Oracle BIサーバーからこれらの論理列のデータ型がクライアント・アプリケーションに渡されます。

    Longvarcharおよびlongvarbinaryデータ型は、デバッグを目的とした使用状況トラッキング表への完全な論理SQL文の記述に対応しています。これらのデータ型は、汎用目的の問合せには対応しておらず、Oracle BIサーバーに表示することはできません。これらのデータ型の列にアクセスするには、直接SQLユーティリティを使用します。

特に指定されている場合を除いて、物理キューブ列の特性と動作は、その他の物理列のものと同じです。

注意:

オリジナル物理表で列を作成、変更または削除すると、そのすべての別名表の同じ列が作成、変更または削除されます。

XMLデータ・ソースの場合、このフィールドによって、XML文書に列の未修飾名(属性)が格納および表示されます。

デフォルトで、新規物理キューブ列はメジャーとして作成されます。「物理レイヤーのマルチディメンション・ソースでの作業」を参照してください。

  1. 管理ツールの物理レイヤーで、物理表を右クリックして「新規オブジェクト」を選択し、「物理列」を選択して、列を作成します。
  2. 物理キューブ表を右クリックして「新規オブジェクト」を選択し、「物理キューブ列」を選択して、マルチディメンション・データ・ソース用の物理キューブ列を作成します。
  3. 物理レイヤーの物理列オブジェクトをダブルクリックして、既存の物理列を編集します。
  4. 「物理列」ダイアログで、物理列の名前を入力します。
  5. タイプ」フィールドで、物理列のデータ型を選択します。
  6. 必要に応じて、データ型の長さを指定します。

    マルチディメンション・データ・ソースを使用する際にVARCHARを選択した場合、「長さ」フィールドに値を入力する必要があります。

  7. 列でNULL値を許可する場合は、「NULL値可能」オプションを選択します。
  8. 外部名」フィールドに、外部名を入力します。
    • 複数の階層で同一名(STATEなど)を使用する場合は必須です。

    • XML文書の場合はオプションです。「外部名」フィールドによって、列の完全修飾名(属性)が格納および表示されます。

  9. マルチディメンション・データ・ソースで物理キューブ列がメジャーの場合、「集計ロール」リストから適切な値を選択します。
  10. 「OK」をクリックします。

物理表の主キーの指定

物理表の主キーを定義する列を指定するには、「物理キー」ダイアログを使用します。

  1. 管理ツールの物理レイヤーで、物理表を右クリックして、「プロパティ」を選択します。
  2. 「物理表」ダイアログで、「キー」タブをクリックします。
  3. 「キー」タブで、「新規」をクリックします。
  4. 「物理キー」ダイアログで、キーの名前を入力します。
  5. 物理表の主キーを定義する列を選択します。
  6. (オプション)キーの説明を入力します。
  7. 「OK」をクリックします。

すべてのデータ・ソースの物理列の削除

物理列を削除すると何が起こるかを説明します。

物理列を削除すると、次のことが起こります。

  • マルチディメンション・データ・ソース。あるレベルのプロパティまたはキーの列を削除すると、関連付けが削除され、列が親キューブ表の下のメジャーに変わります。

  • 別名表。オリジナル物理表の列を削除すると、そのすべての別名表の同じ列が削除されます。

物理列のプロパティの表示

物理列の「プロパティ」タブには、一部のデータ・ソースに対して物理レイヤーのメタデータを拡張する汎用メカニズムとして使用される名前と値のペアが表示されます。

値はデータ・ソースから渡されますが、必要に応じて値を編集できます。

物理表または物理列のデータの表示

オブジェクトを右クリックして、「データの表示」を選択することによって、物理表のデータまたは個々の物理列を表示できます。

オンライン編集モードでは、このオプションを使用するには、変更をチェックインしておく必要があります。

「データの表示」は、物理キューブ表または物理キューブ列には使用できません。「物理キューブ表のメンバーの表示」を参照してください。

「データの表示」機能では、行数が発行されるため、行数がサポートされていないデータにこの機能は使用できません。「物理表と列の行数の表示と更新」を参照してください。

注意:

接続プールのユーザー名とパスワードを:USER:PASSWORDに設定している場合、「データの表示」は、オンライン・モードでは機能しません。オフライン・モードの場合、変数の値の設定ダイアログが表示されるので、:USER:PASSWORDを表示プロセスの一環として移入できます。