ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
11g リリース1 (11.1.1)
B63028-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

G データベースとのメタデータ交換による問合せのパフォーマンス向上

この付録では、Oracle DatabaseまたはIBM DB2を使用して、データ・ウェアハウスのパフォーマンス、およびOracle BIサーバー上で実行される問合せの機能を向上させる方法について説明します。

この付録のトピックは次のとおりです。

データベースとのメタデータ交換について

Oracle BIサーバーのOracle Business IntelligenceメタデータをOracle DatabaseまたはIBM DB2データベースと交換することによって、データ・ウェアハウスの問合せのパフォーマンスの速度を向上できます。

メタデータの交換にはOracle BIサーバーのユーティリティsametaexportを使用します。このユーティリティを実行してDB2のキューブ・ビューを生成するときは、このユーティリティがDB2 Cube Views Generatorと呼ばれます。このユーティリティを実行してOracle Databaseのメタデータを生成する場合は、Oracle Database Metadata Generatorと呼ばれます。

Oracle BIサーバーのエクスポート・ユーティリティは、次のツールで機能します。

sametaexportユーティリティは、SQLアクセス・アドバイザまたはIBM DB2 Cube Viewsツールでリレーショナル・データの事前集計と問合せのパフォーマンスの向上に必要な情報を生成します。

インポート・ファイルの生成

Oracle Database Metadata GeneratorとDB2 Cube Views Generatorはいずれも、Oracle BIサーバーからSQLアクセス・アドバイザまたはIBM DB2データベースへのメタデータのインポートに必要なファイルを作成します。

ここでは、2つのジェネレータに共通する次の項目について説明します。

ジェネレータの実行

Oracle Database Metadata GeneratorおよびDB2 Cube Views Generatorは、コマンドラインから起動されるか、バッチ・ファイルに埋め込まれています。コマンドラインの実行可能ファイルは、sametaexportと呼ばれます。

sametaexportユーティリティは、WindowsシステムとUNIXシステムの両方で使用できます。ただし、sametaexportは、RPD形式のバイナリ・リポジトリでのみ使用できます。

ユーティリティの実行前に、bi-initを実行して、適切に初期設定されたコマンド・プロンプトまたはシェル・ウィンドウを起動する必要があります。詳細は、「Oracleインスタンスに初期化したシェル・ウィンドウを起動するためのbi-initの実行」を参照してください。

bi-initを実行した後、指定したオプションを使用して結果のコマンド・プロンプトからsametaexportを次のように実行します。

sametaexport -r "PathAndRepositoryFileName" [-p repository_password]
-f "InputFileNameAndPath" [options]

表G-1に、コマンドライン実行可能ファイルのパラメータについて説明します。

表G-1 sametaexportのパラメータ

パラメータ 定義 補足情報

-r

リポジトリ・ファイル名とフルパス

ファイル・パスが長い形式の場合または空白が含まれる場合のみ、ファイル名とパスに引用符が必要です。ファイルが現行ディレクトリにない場合は、フルパスを使用します。

-p

リポジトリ・パスワード

特定のリポジトリのパスワード。

パスワード引数はオプションです。パスワード引数を指定しない場合は、コマンド実行時にパスワードを入力するように求められます。セキュリティ違反のリスクを最小化するため、コマンドラインでも、スクリプトでもパスワードを指定しないことをお薦めします。パスワード引数のサポートは下位互換性の保持を目的としており、将来のリリースでは削除される予定です。スクリプトのために、パスワードを標準入力によって渡すことができます。

-f

入力ファイル名とフルパス

ファイル・パスが長い形式の場合または空白が含まれる場合のみ、ファイル名とパスに引用符が必要です。ファイルが現行ディレクトリにない場合は、フルパスを使用します。入力ファイルは、コマンドラインに必要な情報のすべてを入力しないで済むように、また国際文字を入力できるように指定します。詳細は「メタデータ入力ファイルについて」を参照してください。


入力ファイルまたはコマンドラインで追加パラメータを組み込むことによって、Oracle Database Metadata GeneratorまたはDB2 Cube Views Generatorの様々なデフォルトを変更できます。入力ファイルで指定したパラメータは、コマンドラインで指定したパラメータより優先されます。これらのパラメータの組込みは、デフォルト値を変更する必要がある場合のみに限定してください。

表G-2表G-3に、これらのオプション・パラメータを示します。

表G-2 Oracle Database Metadata Generatorのオプション・パラメータとデフォルト

パラメータの定義 補足情報 入力ファイルの使用例 コマンドラインの使用例

RPDのスキーマ名の使用

YESに設定すると、リポジトリで使用されていたスキーマ名がそのまま使用されます。デフォルト値はYESです。

USE_SCHEMA_NAME_FROM_RPD = NO

-schemafrom rpd NO

デフォルト・スキーマ名

-schemafromrpdの値をNOに設定した場合、またはリポジトリ・スキーマ名が判定できない場合は、デフォルトのスキーマ名が表スキーマ名として使用されます。デフォルト値はSIEBELです。

DEFAULT_SCHEMA_NAME = ORACLE

-defaultschema ORACLE

Oracleスキーマ名

Oracle Database Metadata Generatorからのメタデータはこのスキーマで作成されます。デフォルト値は、SIEBELです。

ORA_DIM_SCHEMA_NAME = ORACLE

-orclschema ORACLE

ロギング有効

メタデータ・エクスポート・プロセスのログを保持するかどうかを指定します。有効値はONOFFおよびDEBUGです。デフォルト値はONです。

LOGGING = DEBUG

-logging DEBUG

ログ・ファイル名

ログ・ファイルへのパス。無効なパスを指定すると、エラーが発生します。

このパラメータを指定しない場合は、デフォルトのログ・ファイルのパスが使用されます。デフォルトのパスは次のとおりです。

ORACLE_INSTANCE\diagnostics\logs\
OracleBIServerComponent\
coreapplication_obisn\
OraDimExp.log

LOG_FILE_NAME = C:\bea_default\instances
\instance1\diagnostics\
logs\generator\logfile.log

-logfile C:\bea_default\instances\
instance1\diagnostics\
logs\generator\logfile.log


表G-3 DB2 Cube Views Generatorのオプション・パラメータとデフォルト

パラメータの定義 補足情報 入力ファイルの使用例 コマンドラインの使用例

個別カウントのサポート

YESに設定すると、DISTINCT_COUNT集計を含むメジャーのエクスポートが可能になります。推奨値およびデフォルト値はNOです。

DISTINCT_COUNT_SUPPORTED = YES

-distinct YES

統計関数のサポート

YESに設定すると、集計STDDEVを含むメジャーのエクスポートが可能になります。推奨値およびデフォルト値はNOです。

STATISTICAL_FUNCTIONS_SUPPORTED = YES

-stat YES

スキーマ名の使用

YESに設定すると、Cube Viewsメタデータ属性に、表からスキーマ名を使用した列が導出され、パラメータでの指定に使用されます。NOに設定すると、これらの表のスキーマ名は空白になります。デフォルト値はYESです。

USE_SCHEMA_NAME = NO

-useschema NO

RPDのスキーマ名の使用

YESに設定すると、リポジトリで使用されていたスキーマ名がそのまま使用されます。デフォルト値はYESです。

USE_SCHEMA_NAME_FROM_RPD = NO

-schemafromrpd NO

デフォルト・スキーマ名

-schemafromrpdの値をNOに設定した場合、またはリポジトリ・スキーマ名が判定できない場合は、デフォルトのスキーマ名が表スキーマ名として使用されます。デフォルト値はSIEBELです。

DEFAULT_SCHEMA_NAME = ORACLE

-defaultschema ORACLE

キューブ・ビュー・スキーマ名

Cube Viewsメタデータが作成されるスキーマの名前。デフォルト値はSIEBELです。

CUBE_VIEWS_SCHEMA_NAME = ORACLE

-cubeschema ORACLE

ログ・ファイル名

ログ・ファイルへのパス。無効なパスを指定すると、エラーが発生します。

このパラメータを指定しない場合は、デフォルトのログ・ファイルのパスが使用されます。デフォルトのパスは次のとおりです。

ORACLE_INSTANCE\diagnostics\logs\
OracleBIServerComponent\
coreapplication_obisn\
CubeViews.log

LOG_FILE_NAME = C:\bea_default\instances\instance1\diagnostics\logs\generator\logfile.log

-logfile C:\bea_default\instances\instance1\diagnostics\logs\generator\logfile.log

失敗のログ記録

YESに設定すると、特定のルールに従って無効化されたメタデータがログ・ファイルにリストされます。デフォルト値はYESです。

LOG_FAILURES = NO

-logfail NO

成功のログ

YESに設定すると、各ルールでチェックされ、合格したメタデータがログ・ファイルにリストされます。デフォルト値はNOです。

LOG_SUCCESS = YES

-logsuccess YES


メタデータ入力ファイルについて

入力ファイルは、パラメータ(表G-4を参照)が記載されたテキスト・ファイルです。

表G-4 キューブ・メタデータ入力ファイルのパラメータ

入力ファイル名 説明

BUSINESS_MODEL

エクスポート対象のメタデータが格納されたOracle Business Intelligenceリポジトリの論理レイヤーにあるビジネス・モデル名。リポジトリでビジネス・モデルが見つからない場合はエラー・メッセージが表示されます。

入力ファイルではビジネス・モデル名を1つだけ指定できます。複数のビジネス・モデルのメタデータを生成するには、入力ファイルを個別に作成して、Oracle Database Metadata GeneratorまたはDB2 Cube Views Generatorを別途実行します。

PHYSICAL_DATABASE

エクスポート対象のメタデータが格納されたOracle Business Intelligenceリポジトリの物理レイヤーにあるデータベースの名前。ビジネス・モデルが複数のデータベースから導出されている場合は、ここで指定されたデータベース以外のすべてのデータベースのメタデータが排除されます。リポジトリで物理データベースが見つからない場合は、エラー・メッセージが表示されます。

RUN_AS_USER

データベース・ユーザーのユーザー名です。メタデータ・エクスポート時にはこのユーザーの表示モードを複製する必要があります。このパラメータは空白にできません。このユーザーはリポジトリ内のユーザー・リファレンスに存在している必要があります。

OUTPUT_FOLDER

SQLファイルの書込み先のフォルダのフルパスとファイル名。Oracle Database Metadata Generatorの実行時にこのフォルダが存在しない場合は作成されます。詳細は、「出力ファイルについて」を参照してください。


次のテキストはメタデータ入力ファイルのサンプルを示しています。

BUSINESS_MODEL = "1 - Sample App"
PHYSICAL_DATABASE = "1 - Sample App Data"
RUN_AS_USER = "Administrator"
OUTPUT_FOLDER = "C:\OracleBI"

出力ファイルについて

次の説明するように、作成される出力ファイルのタイプは、ジェネレータによって異なります。

  • Oracle Database Metadata Generator: SQLファイルを生成します。このファイルはUTF-8でエンコードされ、指定された出力フォルダに格納されます。ファイル名は、入力ファイルで指定したmy_business_model.sqlなどのビジネス・モデルの名前をベースにします。

  • DB2 Cube Views Generator: 指定された出力ファイルに次のファイルを生成します。

    • XMLファイル(UTF8でエンコード)。指定されたビジネス・モデルに対してXMLファイルが1つ作成されます。このファイルにはキューブに変換されたすべてのオブジェクトが格納されます。さらに、リポジトリ内のオブジェクトがIBM Cube Viewsメタデータの類似オブジェクトにマッピングされます。変換されないオブジェクトのリストについては、「IBM DB2データベースの変換ルール」を参照してください。

      ビジネス・モデル名から空白を抜き、XML拡張子を付加したものがXMLファイル名になります(例: SalesResults.xml)。

    • 別名生成DLLが格納されたSQLファイル。ビジネス・モデルで参照される物理レイヤー・データベースに別名が存在する場合にのみ、指定したビジネス・モデルにSQLファイルが作成されます。別名ファイルには、DB2データベースで別名を作成するSQLコマンドが格納されます。SQLファイルの名前は、ビジネス・モデル名から空白を抜いてSQL拡張子を付けたものになります(例: SalesResults-alias.sql)。

ジェネレータのエラーのトラブルシューティング

エラー・メッセージは、ジェネレータがタスクの一部またはすべてを完了できなかったことを示します。ジェネレータの起動後に次のエラー・メッセージが表示されることがあります。

  • Unable to write to Log file: log_file_name.

    入力ファイルまたはコマンドラインで指定したログ・ファイルのパスに誤りがある、ユーザーに当該のフォルダに対する書込み権限がない、ディスクの空き容量が不足しているなどの可能性があります。

  • Run_as_user, user_name, is invalid.

    ユーザー名が正しくありません。

  • Repository, repository_name.rpd, is invalid or corrupt.

    リポジトリ名が正しくない、指定のパスに存在しない、ユーザーに読取り権限がないなどの可能性があります。

  • Physical Database, database_name, is invalid.

    物理データベース名が、リポジトリの有効な物理データベース・オブジェクトと一致していません。

  • Business Model, model_name, is invalid.

    ビジネス・モデル名が、リポジトリの有効なビジネス・モデル・オブジェクトと一致していません。

  • Authentication information provided is invalid.

    コマンドラインで指定したリポジトリ・パスワードが正しくありません。

  • Path: "path_name" is invalid.

    パスまたはファイル名が正しくないか、現在のユーザーに読取りアクセス権がありません。

メタデータ変換ルールとエラー・メッセージ

ジェネレータは、出力ファイルを作成するときにOracle Business Intelligenceリポジトリのメタデータ・オブジェクトのOracle DatabaseまたはIBM DB2データベースの類似オブジェクトへのマッピングも行います。

ここでは、SQLまたはXML形式に翻訳(変換)できないOracle Business Intelligenceメタデータの識別に使用されるルールについて説明します。Oracle Business Intelligenceで使用可能なメタデータ構成の中に、Oracle DatabaseおよびIBM Cube Viewsではサポートされないものがあるために、このようなルールが必要になります。

SQLまたはXMLファイルのディメンション・メタデータは、論理ファクト表のソース・レベルで生成されます。論理ファクト表のソースに無効な論理ディメンション表ソースが存在する場合、その論理ディメンション表ソースは無効化されます。論理ファクト表ソースが無効の場合は、マッピングされているすべての論理ディメンション表ソースも無効化されます。無効なOracle Business Intelligenceリポジトリ・メタデータ要素は、SQLまたはXMLファイルのキューブに変換されません。

ルール違反が発生した場合、ジェネレータではログ・ファイルにエラー・メッセージとルールに違反したメタデータが書き込まれます。

Oracle Databaseの変換ルール

Oracle Business IntelligenceメタデータからOracle Databaseのオブジェクトへの変換ルールは次のとおりです。

  • 論理表の式を含む属性はエクスポートできません。

  • 復合結合を使用して結合された表は考慮されません。

  • 不透明なビューである表は考慮されません。

  • 特定のレベルのキーの構成部分として使用される列を別のレベルのキーの構成部分として使用することはできません。

    Oracle Databaseでは、列を複数のレベルのキーとして使用することが禁じられています。この禁止により、Oracle Database Metadata Generatorでは、2つの結合のいずれかを削除する必要があります。通常は最初に検出された結合が削除されます。このため、その他の結合が失われ、エクスポートされないことになります。

IBM DB2データベースの変換ルール

表G-5に、Oracle Business Intelligenceリポジトリ・メタデータ要素の検証に使用されるルール、ルール違反の発生時にログ・ファイルに書き込まれるエラー・メッセージ、ルール違反の原因に関する説明を示します。エラー・メッセージは、特定のOracle Business Intelligenceメタデータ・オブジェクトがXMLファイルにエクスポートされなかった原因の判定に有益です。

表G-5 メタデータ要素の検証ルール

ルール メッセージ 説明

ComplexJoinFactsRule

[ファクト論理表ソース]複合物理結合はサポートされていません。

%qnには、物理表%qnおよび%qnの間に複合結合%qnがあります。

物理ファクト表が復合結合を介して接続されている場合、その結合はサポートされません。復合結合は外部キー関係がない2つの表間の結合と定義されます。

ComplexJoinDimsRule

[ディメンション論理表ソース]複合物理結合はサポートされていません。

%qnには、物理表%qnおよび%qnの間に複合結合%qnがあります。

ディメンション物理表が複合結合を介して接続されている場合、その結合はサポートされません。

ComplexJoinFactDimRule

[ファクト論理表ソース->ディメンション論理表ソース]複合物理結合はサポートされていません。

%qnには、物理表%qnおよび%qnの間に複合結合%qnがあります。

ディメンション物理表とファクト物理表が複合結合を介して接続されている場合、その結合はサポートされず、ディメンション表が無効化されます。

OpaqueViewFactRule

[ファクト論理表ソース]物理SQL Select文はサポートされていません。

%qnはSQL Select文%qnを使用しています。

SQL SELECT文によって物理ファクト表が生成されている場合、その表を含む論理ファクト表ソースは無効化されます。この論理ファクト表ソースに接続されている論理ディメンション表ソースもすべて無効化されます。この構成は副問合せ処理を許容するものです。

OpaqueViewDimRule

[ディメンション論理表ソース]物理SQL Select文はサポートされていません。

%qnはSQL Select文%qnを使用しています。

SQL SELECT文によって物理ディメンション表が生成されている場合、その表を含む論理ディメンション表ソースは無効化されます。

OuterJoinFactRule

[ファクト論理表ソース]物理外部結合はサポートされていません。

%qnには、物理表%qnおよび%qnの間に外部結合%qnがあります。

論理ファクト表ソースに外部結合のマッピングがある場合、その論理ファクト表ソースが無効化され、このソースにマッピングされた論理ディメンション表ソースもすべて無効化されます。

OuterJoinDimRule

[ディメンション論理表ソース]物理外部結合はサポートされていません。

%qnには、物理表%qnおよび%qnの間に外部結合%qnがあります。

論理ディメンション表ソースに外部結合のマッピングがある場合、その論理ディメンション表ソースは無効化されます。

WhereClauseFactRule

[ファクト論理表ソース] WHERE句はサポートされていません。

%qnにwhere条件%sがあります。

ファクト表ソースでロードするデータのフィルタにWHERE句を使用している場合、その表ソースは無効化されます。

WhereClauseDimRule

[ディメンション論理表ソース] WHERE句はサポートされていません。

%qnにwhere条件%sがあります。

ディメンション表ソースでロードするデータのフィルタにWHERE句を使用している場合、その表ソースは無効化されます。

TwoJoinFactDimRule

[ファクト論理表ソース->ディメンション論理表ソース]ソース間の複数の結合はサポートされていません。

%qnおよび%qnには少なくとも次の結合があります : %qn、%qn

同じディメンション・ソースからの2つのディメンション表に、同一の物理ファクト表がマッピングされている場合(ファクト表が表ソース内で最も詳細度の高い表に排他的にマッピングされていない場合)、そのディメンション表ソースは無効化されます。

HiddenManyManyRule

[ファクト論理表ソース->ディメンション論理表ソース](物理または論理?)ファクトおよびディメンション間の結合が最も詳細な表にありません。

%qnおよび%qn間の%qnが最も詳細な表%qnにありません{結合名,ファクト表,ディメンション表)

これは、TwoJoinFactDimRuleに関連します。ファクト表がディメンション表に結合され、その表が表ソース内で最も詳細な表ではない場合、そのディメンション表ソースは無効化されます。

ComplexMeasureRule

[列]複合集計ルールはサポートされていません。

%qnに使用されている集計ルール%sはサポートされていません。

サポートされる集計は通常、SUMCOUNTAVGMINMAXSTDDEVCOUNTDISTINCTおよびCOUNTです。

CountDistMeasureRule

[列] COUNT-DISTINCT集計ルールはサポートされていません。

%qnに使用されている集計ルール%sはサポートされていません。

COUNTDISTINCT集計は、この列ではサポートされません。

InvalidColumnLevelRule

[レベル]プライマリ・レベル・キーを構成する一部の列が無効です。

%qnに主キーの一部として%qnが含まれていますが、%qnが既に無効になっています。

このレベルのレベル・キーの1つ以上の列が無効になっています。

VariableBasedColumnRule

[論理表ソース -> 列]列で式に変数が使用されています。

列%qnでそのマッピングに変数が使用されています。

論理列でリポジトリと式に含まれるセッション変数が使用されています。

OneFactToManyDimRule

[ファクト論理表ソース->ディメンション論理表ソース](論理またはファクト?)およびディメンションの最も詳細な表間に固有の結合パスが必要です。

%qnおよび%qn(どちらも物理表名)の間に結合パスが見つかりません。

少なくとも、次の結合パスが見つかりました: (%qn->%qn....), (%qn->%qn....)

TwoJoinFactDimRuleおよびHiddenManyManyRuleの場合と同様です。

ManyMDTinFactRule

[ファクト論理表ソース]ファクト論理表ソースには固有の最も詳細な表が必要です。

%qnには少なくとも次の最も詳細な表が含まれています : %qn,%qn.

ファクトに複数の最も詳細な表が存在しています。

NoMeasureFactRule

[ファクト論理表ソース]ファクト論理表ソースにメジャーがありません。

%qnに配布可能なメジャーがありません。

すべてのメジャーが無効化されているため、ファクト表にメジャーがありません。

NoInActiveFactRule

[ファクト論理表ソース]ファクト論理表ソースが有効になっていません。

ファクト・ソースが有効ではありません。

NoInActiveDimRule

[ディメンション論理表ソース]ディメンション論理表ソースが有効になっていません。

ディメンション・ソースが有効ではありません。

NoAttributeInFactRule

[ファクト論理表ソース->列]ファクトで属性が見つかりました。

ファクト・ソース%qnの%qnには集計ルールがありません。

ファクト・ソースに属性がありません。

NoMeasureInDimRule

[ディメンション論理表ソース -> 列]ディメンション内にメジャーが見つかりました。

ディメンション・ソース%qnの%qnに集計ルールがあります。

ディメンション・ソースにメジャーがありません。

VisibleColumnsAttrRule

[列] -> run_as_userにはこの論理列を参照できません。

%qnは参照ルールにより、run_as_user %qnからアクセスできません。

このユーザーにはこの列を参照する権限がありません。

VisibleColumnsMeasRule

[列] -> run_as_userにはこの論理列を参照できません。

%qnは参照ルールにより、run_as_user %qnからアクセスできません。

このユーザーにはこの列を参照する権限がありません。

MultiplePrimaryKeysDimRule

[ディメンション論理表ソース]結合にディメンション論理表ソースの代替キーが使用されています。

%qnの%qnおよび%qn間の%qnに代替キー%qnが使用されています。

ディメンション物理表に組み込むことができる主キーは1つのみです。別の一意のキーを使用して別のディメンション物理表に結合されている結合は無効です。

IBM Cube Viewsでは、外部結合に使用される一意のキーが受け入れられず、常に主キーが要求されます。

MultiplePrimaryKeysFactRule

[ディメンション論理表ソース]結合にディメンション論理表ソースの代替キーが使用されています。

%qnの%qnおよび%qn間の%qnに代替キー%qnが使用されています。

ファクト物理表に組み込むことができる主キーは1つのみです。別の一意のキーを使用して別のファクト物理表に結合されている結合は無効です。

IBM Cube Viewsでは、外部結合に使用される一意のキーが受け入れられず、常に主キーが要求されます。

MultiplePrimaryKeysFactDimRule

[ファクト論理表ソース->ディメンション論理表ソース]結合で論理表ソース間に代替キーが使用されています。

ソース%qnおよび%qnの%qnと%qnの間で%qnに代替キー%qnが使用されています。

ファクト物理表に組み込むことができる主キーは1つのみです。別の一意のキーを使用してディメンション物理表に結合されている結合は無効です。

IBM Cube Viewsでは、外部結合に使用される一意のキーが受け入れられず、常に主キーが要求されます。

NotDB2ExpressionAttrRule

[ディメンション論理表ソース -> 列]列にサポートされていない式が含まれています。

%qnにサポートされていない式%sが含まれています。

IBM Cube Viewsでサポートされない式が属性に含まれています。

これには、日時関数(例: CURRENT_DATE)を使用するメタデータ式が含まれています。

NotDB2ExpressionMeasRule

[ファクト論理表ソース -> 列]列にサポートされていない式が含まれています。

%qnにサポートされていない式%sが含まれています。

IBM Cube Viewsでサポートされない式がメジャーに含まれています。

これには、日時関数を使用するメタデータ式が含まれています(例:CURRENT_DATE)。

NoAttributeDimRule

[ディメンション論理表ソース]ディメンション論理表ソース内にrun_as_userから参照できる属性がありません。

%qnのいずれの属性も参照可能でないため、ユーザー%qnは問合せを実行できません。

ディメンションに属性がありません。


Oracle Business IntelligenceでのOracle Databaseのマテリアライズド・ビューの使用

ここでは、Oracle Business IntelligenceからSQLアクセス・アドバイザにメタデータをエクスポートし、Oracle Database Metadata Generatorを使用してマテリアライズド・ビューを作成する方法について説明します。

この項には次のトピックが含まれます:

マテリアライズド・ビューでのSQLアクセス・アドバイザの使用について

この機能によって、データ・ウェアハウスのパフォーマンスおよびデータベースの機能が向上します。データベースに存在するデータの論理的関係に関するメタデータを、SQLアクセス・アドバイザで格納できるようにします。また、効率的なOracleマテリアライズド・ビューを使用することによって、データ・ウェアハウスの問合せのスピードが向上します。これらのマテリアライズド・ビューは、リレーショナル・データを事前集計して問合せのパフォーマンスを向上させます。メタデータがSQLアクセス・アドバイザに格納された後は、データベース管理者がデータベース・オブジェクトを最適化して、問合せのパフォーマンスを強化できます。

問合せの処理時に、Oracle Databaseは可能なかぎりマテリアライズド・ビューを格納している表に問合せをルーティングします。このマテリアライズド・ビューのテーブルは基底にある元表より小さく、データが事前集計されているため、再ルーティングされた問合せを高速で実行できます。

Oracle Database Metadata Generatorは、メタデータ・ブリッジとして機能します。Oracle Business Intelligence固有のメタデータがPL/SQLコマンドが組み込まれたSQLファイルに変換され、SQLアクセス・アドバイザでディメンションが生成されます。メタデータがSQLファイル変換された後は、SQL*Plusなどのツールを使用して変換後のメタデータをSQLアクセス・アドバイザにインポートしてメタデータ・カタログ表に格納します。メタデータのインポート後は、マテリアライズド・ビューを作成し、このビューを 着信するアプリケーション問合せの最適化に使用します。

この機能は、Oracle Database 9i以降で使用できます。プラットフォームの互換性の詳細は、「システム要件と動作要件」を参照してください。

リリースが10gより古いデータベースでは、SQLアクセス・アドバイザがOracle Databaseサマリー・アドバイザと呼ばれていました。詳細は『Oracle9i データ・ウェアハウス・ガイド』を参照してください。

Oracle Databaseへのメタデータのデプロイ

メタデータをOracle Databaseにデプロイするには、あらかじめOracle Databaseとそのツールを十分に理解しておく必要があります。詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

メタデータのデプロイ前に「ジェネレータの実行」に記載された手順を完了します。キューブ・メタデータをデプロイするには、次の各項で説明されているタスクを実行します。

Oracle Databaseに対するSQLファイルの実行

SQLアクセス・アドバイザへのSQLファイルのインポートを実行する前に、Oracle Databaseのインポート・ツールを十分に理解しておく必要があります。詳細は、Oracle Databaseのドキュメント・セットを参照してください。

SQL*Plusなどのツールを使用してOracle Database Metadata Generatorが生成したSQLファイルを実行します。ディメンションが既存の場合、またはデータベース・スキーマがRPDファイルのものと異なる場合は、エラー・メッセージが表示される場合があります。スクリプトの実行が正常に完了すると、データベースWebコンソール、またはOracle Enterprise Manager Database Controlを使用して作成されたディメンションが表示されます。Oracle Enterprise Manager Database Controlでは、「ネットワーク」、「データベース」、データベース名、「ウェアハウス」、「サマリー管理」、「ディメンション」、「システム」の各ノードを展開します。

SQLファイルの実行後は、次の事項に注意します。

  • 増分メタデータ変更は許可されません。スキーマの変更では、Oracle Databaseのキューブ・モデル・メタデータを手動で削除し、Oracle Business Intelligenceのメタデータを変換しなおす必要があります。たとえば、Oracle BIリポジトリ内のキューブのディメンションを変更する必要がある場合は、Oracle Databaseのキューブ・モデルを削除し、Oracle BIリポジトリからSQLファイルを再生成してSQLアクセス・アドバイザにインポートする必要があります。

  • Oracle Database Metadata Generatorではメタデータの削除は実行できません。Oracle Enterprise Manager Database Controlを使用してキューブ・モデルを手動で削除する必要があります。

結合の存在に関する制約の定義

この詳細は、Oracle Databaseのドキュメント・セットを参照してください。

Oracle Databaseでディメンション表とファクト表間の結合が確実に認識できるようにする必要があります。これには、SQL*PlusまたはOracle Enterprise Manager Database Controlで制約を作成します。Oracle Enterprise Manager Database Controlで、制約を作成する表を選択して「制約」タブを選択します。

次のように、表の種類によって、タイプの異なる制約を作成します。

  • ディメンション表には、UNIQUEキー制約を作成します。

  • ファクト表には、FOREIGNキー制約を作成し、参照先スキーマと参照先表を指定します。「制約の定義」領域に、ファクト表の外部キー列とディメンション表の対応する一意キーを組み込みます。外部キー列データがディメンション表の一意キー列データと一致しないかぎり、ファクト表での外部キーの作成が失敗します。

問合せワークロードの作成

問合せワークロード作成の詳細は、Oracle Databaseのドキュメント・セットを参照してください。

問合せワークロードは、最適化に使用される物理問合せのサンプル・セットです。ワークロードの作成前に実行速度が最低速の問合せに関する情報を使用してトレース・ファイルを生成します。

トレース・ファイルを生成するには:

実行速度が最低速の問合せのトレース・ファイルは、次のように使用するデータベースのバージョンに応じたツールを使用して生成できます。

  • 使用状況トラッキング: Oracle Business Intelligenceにある機能で、この機能を使用して問合せとその実行所要時間をログに記録します。実行時間が長いOracle Business Intelligenceの問合せはスクリプトとして実行でき、また、Oracle Databaseのトレース機能とともに使用するとこれらの問合せのOracle Database SQLコードを取得できます。

  • Oracle Databaseトレース: このツールは、最低速の物理問合せの特定に使用します。トレース機能は、Oracle Enterprise Manager Database Control内から、またはDBMS_MONITORパッケージとともにSQLコマンドを入力することによって有効化できます。トレース機能を有効化したら、スクリプトを使用してトレース・ファイルを作成し、問合せワークロード表で問合せに使用されるSQLコードを取得します。

  • Oracle Enterprise Manager: このツールは実行速度が遅い問合せの追跡に使用されます。


    注意:

    次に説明する機能は、Oracle Business Intelligenceではなく、Oracle Databaseで使用できます。


トレース・ファイルの情報を分析するには:

  1. トレース・ファイルの確認時は、次のガイドラインを使用します。

    • バッチ・プロセスのように1度に多数の文をトレースした場合は、問合せ実行時間が許容できる文をただちに廃棄します。実行時間が最長の文に集中します。

    • Query列で、すべての問合せおよび副問合せの処理も含めてブロック・アクセスの読取りの整合性をチェックします。多くの場合、非効率的な文ではブロック・アクセス数の大量化が発生します。Current列には、セグメントのヘッダーおよび更新されるブロックなど、読取りの整合性と関連しないアクセス数が示されます。

    • Disk列で、ディスクから読み取られたブロックの数をチェックします。ディスクの読取りはメモリーの読取りより低速であるため、この値はQuery列およびCurrent列の合計を大きく下回る可能性があります。このようになっていない場合は、バッファ・キャッシュの問題を確認してください。

    • ロックの問題および非効率的なPL/SQLループによって、ブロック・アクセス数が少くてもCPU時間値が高い状況が発生することがあります。

    • 単一文に対する複数の解析文のコールがないかを調べます。これは、ライブラリ・キャッシュの問題を示すものです。

  2. ファイル内で問題の文を特定したら、実行計画をチェックして、問題の文のそれぞれが発生した原因を調べます。

問合せをワークロードにロードするには:

  • トレース・ユーティリティを使用して最低速の物理問合せの名前を特定したら、USER_WORKLOAD表に挿入します。

    表G-6に、USER_WORKLOAD表の列について説明します。

  • INSERT文を使用して、QUERY列に最低速物理問合せのSQL文を、OWNER列に該当する所有者名を移入します。

表G-6 USER_WORKLOAD表の列

データ型 必須 説明

QUERY

すべてのLONGまたはVARCHAR型(すべての文字型)

はい

問合せのSQL文。

OWNER

VARCHAR2 (30)

はい

問合せの最終実行ユーザー。

APPLICATION

VARCHAR2 (30)

いいえ

問合せのアプリケーション名。

FREQUENCY

NUMBER

いいえ

この問合せが実行された回数。

LASTUSE

DATE

いいえ

この問合せの最終実行日付。

PRIORITY

NUMBER

いいえ

ユーザーが指定する問合せのランキング。

RESPONSETIME

NUMBER

いいえ

問合せの実行時間(秒)。

RESULTSIZE

NUMBER

いいえ

問合せが選択した合計バイト数。

SQL_ADDR

NUMBER

いいえ

問合せのキャッシュ・アドレス

SQL_HASH

NUMBER

いいえ

問合せのキャッシュ・ハッシュ値。


マテリアライズド・ビューの作成

問合せワークロード表への移入後は、Oracle Databaseのバージョンに応じたツールを使用してマテリアライズド・ビューを作成します。Oracle Database 10gでは、Oracle Enterprise Manager Database ControlのSQLアクセス・アドバイザを使用して、作成した問合せワークロード表を指定します。

SQLアクセス・アドバイザは、指定したファクト表のパフォーマンス向上に関する推奨事項を生成します。SQLアクセス・アドバイザに適切なマテリアライズド・ビューを作成するSQLコードが表示されます。SQLアクセス・アドバイザでマテリアライズド・ビューの作成を実行する前に、次のヒントを確認してください。

  • SQLコードにCAST文が含まれていると、マテリアライズド・ビューの作成が失敗する場合があります。

  • CREATE MATERIALIZED VIEW文でワークロード表として指定した問合せと同じものを指定していないことを確認してください。この文で同じ問合せを指定すると、マテリアライズド・ビューに実際のパフォーマンス向上が反映されないことになります。ただし問合せの実行頻度が高い場合はマテリアライズド・ビューの作成が無駄にならない場合もあります。

  • SQL文の後のCREATE MATERIALIZED VIEW文の最後にスラッシュを追加します。追加されていない場合は、SQL*Plusワークシートで有効な文であると認識されません。


    注意:

    また、SQLアクセス・アドバイザは適切な索引付けスキームの決定にも役立ちます。


Oracle Business IntelligenceでのIBM DB2 Cube Viewsの使用

ここでは、DB2 Cube Views Generatorを使用してOracle Business IntelligenceからIBM DB2にメタデータをエクスポートする方法を説明します。

この項には次のトピックが含まれます:

Oracle Business IntelligenceでのIBM DB2 Cube Viewsの使用について

IBM DB2 Cube Viewsは、IBMの登録商標です。プラットフォームの互換性の詳細は、「システム要件と動作要件」を参照してください。

この機能によって、データ・ウェアハウスのパフォーマンスおよびデータベースの機能が向上します。データベースに存在するデータの論理的関係に関するメタデータを、DB2データベースで格納できるようにします。また、効率的なDB2マテリアライズド・クエリー・テーブル(MQT)を使用することによって、データ・ウェアハウスの問合せのスピードが向上します。このMQTは、リレーショナル・データを事前集計して問合せのパフォーマンスを強化します。

問合せの処理時に、DB2のクエリー・リライト機能は可能なかぎりMQTに問合せをルーティングします。このテーブルは基底にある元表より小さく、データが事前集計されているため、再ルーティングされた問合せを高速で実行できます。

DB2 Cube Views Generatorは、Oracle Business Intelligence固有のメタデータをIBM Cube ViewsのXMLファイルに変換するメタデータ・ブリッジとして機能します。メタデータをXMLファイルに変換してから、IBM Cube Viewsを使用して変換後のメタデータをDB2データベースにインポートしてIBM Cube Viewsメタデータ・カタログ表に格納します。メタデータのインポート後は、IBM Optimization Advisorを使用してマテリアライズド・クエリー・テーブル(MQT)およびその索引を作成するスクリプトを生成します。デプロイされたMQTはDB2 Query Reroute Engineで着信するアプリケーション問合せの最適化に使用されます。

DB2には、XMLドキュメントを引数として渡してメタデータ・オブジェクトの作成、変更、削除および読取りを実行するAPI (ストアド・プロシージャとして実装)があります。IBM Cube Viewsの詳細は、IBM DB2のドキュメントを参照してください。

キューブ・メタデータのデプロイ

XMLファイルのインポート前に、DB2 Cube Views Generatorによって生成されたalias-SQLファイルを実行する必要があります。DB2 Cube Views Generatorによって生成されたXMLファイル には、キューブ・メタデータがXML形式で格納されています。XMLファイルをDB2にインポートした後は、マテリアライズ照会表を作成する必要があります。


注意:

XMLファイルのインポート前に、IBM Cube Viewsとそのツールを十分に理解しておくことを強くお薦めします。詳細はIBMのドキュメントを参照してください。


メタデータのデプロイ前に「ジェネレータの実行」に記載された手順を完了します。キューブ・メタデータをデプロイするには、次の各項で説明されているタスクを実行します。

IBM Cube Viewsに対する別名-SQLファイルの実行

XMLファイルをDB2データベースにインポートする前に、別名-SQLファイルを実行する必要があります。詳細は、IBMのドキュメントを参照してください。

DB2 Cube Viewsで生成された別名-SQLファイルは、データ・ウェアハウスが配置されたデータベース上のSQLクライアントによって実行する必要があります。実行するとデータベースの表に別名(シノニム)が作成されます。

XMLファイルのインポート

別名-SQLファイルを実行すると、データベースにXMLファイルをインポートできます。詳細は、IBMのドキュメントを参照してください。


注意:

XMLファイルのインポート前に、IBM Cube Viewsとそのツールを十分に理解しておくことを強くお薦めします。詳細はIBMのドキュメントを参照してください。


このファイルのインポートには、次のIBMツールを使用できます。

  • IBM OLAPセンター(推奨)。詳細は、「IBM OLAPセンターを使用したXMLファイルのインポートのガイドライン」とIBMのドキュメントを参照してください。

  • IBMコマンドライン・クライアント・ユーティリティ(db2mdapiclient.exe)。このユーティリティはDB2に付属しています。コマンドライン・クライアント・ユーティリティ使用の詳細は、IBMのドキュメントを参照してください。

  • IBM DB2ストアド・プロシージャ。IBM Cube Viewsは、SQLベースおよびXMLベースのアプリケーション・プログラミング・インタフェース(API)を提供し、これを使用すると、1つのストアド・プロシージャを実行してメタデータ・オブジェクトを作成、変更および取得できます。詳細は、IBMのドキュメントを参照してください。

IBM OLAPセンターを使用したXMLファイルのインポートのガイドライン

IBM OLAPセンターを使用して、キューブのメタデータをDB2にインポートできます。IBM OLAPセンターにはウィザードがあり、ファイルのインポートに使用できます。詳細は、IBMのドキュメントを参照してください。

XMLファイルをインポートするには、次のガイドラインを使用します。

  • IBM OLAPセンターのツールを使用して、DB2データベースに接続します。

  • インポート・ウィザードで、インポート対象のXMLファイルを選択します。

  • データベースに存在しないデータベース構成を参照するメタデータが存在すると、エラー・メッセージが表示されます。

  • ウィザードでインポートのオプションを確認されたときは、既存オブジェクトの置換を選択します。

  • IBM OLAPセンターに戻ると、キューブ・モデルの図が表示されます。

XMLファイルインポート後のキューブ・メタデータの変更に関するガイドライン

XMLファイルのインポート後に、次の操作の実行が必要な場合があります。

  • Oracle OLAPでは外部キーがメタデータとして格納されないため、DB2データベース内の変換後のメタデータには存在しません。IBM Cube Viewsの参照整合性のユーティリティを使用して外部キー情報制約を生成する必要があります。このユーティリティはIBMのWebサイトで提供されています。

  • 外部キー結合列がNULL値可能であるなど、その他の問題が発生することがあります。この問題を解決するには、次の方法を使用できます。

    • これらの列のデータがNULLでない場合は、列をNOT NULL列に変換します。

    • これらの列のデータがNULLの場合、または列のデータがNULL以外でも列のデータ型を変換しないことを選択する場合は、次のガイドラインを使用してキューブ・モデルを変更する必要があります。

      • ファクト対ディメンションの結合では、変換後のキューブ・モデルからこのディメンション・オブジェクトを手動で排除し、この結合の外部キーで構成される縮退ディメンション・オブジェクトを作成する必要があります。

      • ディメンション対ディメンションの結合では、変換後のキューブ・モデルから結合の主キー側を表すディメンション・オブジェクトを手動で排除し、この結合の外部キーで構成される縮退ディメンション・オブジェクトを作成する必要があります。

      • ファクト対ファクトの結合では、変換後のキューブ・モデルから結合の主キー側を表すファクト・オブジェクトを手動で排除し、この結合の外部キーで構成される縮退ディメンション・オブジェクトを作成する必要があります。

  • キューブ・ジェネレータでは増分メタデータ変更が許可されません。スキーマの変更では、DB2データベースのキューブ・モデル・メタデータを手動で削除し、Oracle Business Intelligenceのメタデータを変換しなおす必要があります。たとえば、Oracle Business Intelligenceのメタデータ・リポジトリ内のキューブのディメンションを変更する必要がある場合は、DB2データベースのキューブ・モデルを削除し、Oracle Business IntelligenceからXMLファイルを再生成して、DB2データベースにインポートする必要があります。

  • DB2 Cube Views Generatorではメタデータの削除はできません。IBM OLAPセンターを使用してキューブ・モデルを手動で削除する必要があります。

  • IBM統計ツールとIBM最適化アドバイザを定期的に実行する必要があります。

詳細は、IBMのドキュメントを参照してください。

マテリアライズド・クエリー・テーブル(MQT)作成のガイドライン

詳細は、IBMのドキュメントを参照してください。

キューブのメタデータをデータベースにインポートした後は、IBM最適化アドバイザを実行してSQLスクリプトを生成し、そのスクリプトを実行してMQTを作成する必要があります。実装から最適な結果を取得するにはIBM最適化アドバイザでいくつかのパラメータを指定する必要があります。IBM最適化アドバイザ・ウィザードによってメタデータが分析され、SQL問合せに使用されるデータの格納および索引付けを行うサマリー表を構築する方法をお薦めします。IBM最適化アドバイザの実行は、MQTを最新の状態に保持するためにも役立ちます。また、ETLの実行ごとにデータベースをリフレッシュする必要があります。

MQTを作成するには、次のガイドラインを使用します。

  • IBM OLAPセンターで、最適化するキューブ・モデルを選択してIBM最適化アドバイザ・ウィザードを開きます。

  • 次の表を参考にして、ウィザードの指示に従います。

    確認対象 選択

    サマリー表

    Deferred (またはImmediate)を選択して、テーブルの表領域を指定します。

    制約

    最適化パラメータに適切な値を選択します。Data-samplingオプションはオンにします。

    SQLスクリプト

    サマリー表作成の実行にはスクリプトの作成が必要です。ファイル名と場所を選択します。


  • IBM最適化アドバイザが閉じたら、SQLスクリプトを実行してMQTを作成する必要があります。