リポジトリまたはビジネス・モデルの整合性のチェック
問合せでリポジトリを使用できるようにするには、リポジトリのメタデータが整合性チェックに合格する必要があります。
整合性チェック・マネージャを使用すると、整合性チェックで使用するルールの有効化と無効化、整合性のないオブジェクトの検索と修正、整合性チェックの対象を特定のオブジェクトのみに制限する指定などが可能です。validaterpd
ユーティリティを使用して、すべてのメタデータ・オブジェクトの妥当性をチェックすることもできます。
ノート:
モデル・チェック・マネージャにより、Oracle BIサマリー・アドバイザおよび集計の永続性のパフォーマンスと結果に影響を及ぼすモデリングの問題が特定されます。Oracle BIサマリー・アドバイザまたは集計の永続性・ウィザードを実行する前にモデル・チェック・マネージャを実行します。「モデル・チェック・マネージャを使用したモデリングの問題のチェック」を参照してください。
このセクションには次のトピックが含まれます:
整合性チェック・マネージャについて
整合性チェック・マネージャは、リポジトリの妥当性を確認して実行時にそれをロードできるようにし、問合せの失敗の原因となる構文エラーやセマンティク・エラーを特定します。
整合性チェッカを実行すると、リポジトリ・メタデータが更新されることがあります(オブジェクトに対して、グローバル整合性チェックまたは「整合性のチェック」オプションを実行する場合)。これらのオプションを使用するときには、リポジトリを保存しておく必要があります。たとえば、整合性チェック時に無効なオブジェクトが削除されます。この動作により、論理表ソースおよび論理列で式およびフィルタが削除されてしまうことがあります。不正な参照は、物理レイヤーでオブジェクトが削除され、ビジネス・モデルおよびマッピング・レイヤー・オブジェクトで参照が正しく考慮されていないときに発生する可能性があります。
整合性チェックの表示オプションは読取り専用であり、リポジトリに変更を実施しません。
整合性チェック・マネージャでは、接続を使用しているメタデータの外部にあるオブジェクトの妥当性はチェックしません。メタデータの整合性のみをチェックし、メタデータ外部にある物理オブジェクトへのマッピングはチェックしません。接続が機能していない場合やデータベースでオブジェクトが削除されていた場合、整合性チェック・マネージャは、これらのエラーを報告しません。
整合性チェック・マネージャは、管理ツールで定義していても、ポリシー・ストアには追加されていないアプリケーション・ロールを識別します。プレースホルダ・アプリケーション・ロールに関するメッセージは、整合性チェックをオンライン・モードで実行した場合にのみ表示されます。リポジトリについて返される整合性チェックの一連のメッセージには、オンラインとオフラインのどちらのモードでリポジトリを開いたか応じて異なる結果が含まれることがあります。
多言語スキーマで翻訳されたフィールド名を保存するために参照表を使用すると、その参照表に対しては整合性チェックのルールが緩和されます。Oracle Analytics Serverの管理のOracle Analytics Serverのローカライズを参照してください。
整合性チェックでは、次の種類のメッセージが返されます。
-
エラー
これに該当するメッセージは、修正が必要なエラーを示します。このメッセージ内の情報を使用して、非一貫性を訂正し、整合性チェッカを再度実行します。エラー・メッセージの例を次に示します。
[38082] Type of Hierarchy '"0RT_C41"..."0RT_C41/MDF_BW_Q02"."Product Hierarchy for Material MARA"' in Cube Table '"0RT_C41"..."0RT_C41/MDF_BW_Q02"' needs to be set.
オブジェクトを無効にしたことで不整合が発生すると、そのオブジェクトを問合せで利用できないようにするかどうかの確認を求めるメッセージが表示されます。
-
警告
これに該当するメッセージは、修正が必要になる可能性のある状況を示しています。たとえば、循環結合条件を排除するために意図的に無効化されている無効化結合に関する警告メッセージを受け取ることがあります。他のメッセージとしては、一貫性のない値や、デフォルトと一致しない機能表の変更の警告などがあります。警告メッセージの例を次に示します。
[39024] Dimension '"Paint"."MarketDim"' has defined inconsistent values in its levels' property 'Number of elements'.
ノート:
以前のバージョンのソフトウェアからアップグレードした後でリポジトリの整合性をチェックすると、以前の整合性チェックでは発生しなかったメッセージを受け取ることがあります。不整合は、アップグレード前に検出されなかった問題の結果であり、新たなエラーではありません。
整合性チェック・マネージャの実行
Oracle BI管理ツールを使用して、すべてのリポジトリ・オブジェクト、特定の物理データベースまたはデータ・ソース、物理データベース、ビジネス・モデル、またはサブジェクト領域に整合性チェッカを実行します。
グローバルな整合性チェックを実行せずに整合性チェック・マネージャの結果を表示するには、 「ツール」メニューから「整合性チェッカの表示」を選択します。現在のセッションで整合性をチェック済であれば、「メッセージ」ペインに前回のチェックで得られたメッセージが表示されます。
無効化されたオブジェクトが不整合の場合は、そのオブジェクトが問合せで使用できないようにすることを求めるプロンプトが表示されます。オブジェクトに整合性がないと、整合性チェック・マネージャが表示され、メッセージのリストが示されます。
- 管理ツールでリポジトリを開きます。
- 以下のいずれか1つを実行します。
- 「ファイル」メニューから、「グローバルな整合性のチェック」、「レポートのみ」の順に選択します。このオプションで、リポジトリのすべてのオブジェクトが確認され、エラーのリストが生成されます。
- 「ファイル」メニューから、「グローバルな整合性のチェック」、「自動修正」の順に選択します。このオプションで、リポジトリのすべてのオブジェクトが確認され、可能な場合にはエラーが自動的に修正されます。このオプションを選択すると、すべての修正のリストがファイル
orainst\servers\obis1\logs\username_NQSAdminTool.log
に記録されます。 - リポジトリで、オブジェクトを選択し、右クリックして「整合性のチェック」を選択します。このオプションで、リポジトリのすべてのオブジェクトが確認され、可能な場合にはエラーが自動的に修正されます。このオプションを選択すると、すべての修正のリストがファイル
orainst\servers\obis1\logs\username_NQSAdminTool.log
に記録されます。
validaterpdユーティリティを使用したリポジトリの整合性チェック
Oracle BIサーバーのvalidaterpd
ユーティリティを使用して、リポジトリにあるすべてのメタデータ・オブジェクトの妥当性をチェックできます。
このユーティリティを実行すると、管理ツールで整合性チェック・マネージャが実行するチェックと同様の妥当性チェックを実行できます。
validaterpd
ユーティリティは、WindowsシステムとLinuxシステムの両方で使用できます。validaterpd
は、バイナリOracle BIリポジトリ・ファイル、Oracle BIサーバーのXML APIに基づくXMLファイル、または一連のMDS XMLドキュメントに対して実行できます。
リポジトリ・ファイル(入力ファイルと出力ファイルの両方)に完全パス名を入力してください(これらが異なるディレクトリにある場合)。
validaterpd
ユーティリティの場所は、次のとおりです。
BI_DOMAIN/bitools/bin
-L
オプションを指定してvalidaterpd
を使用すると、Oracle BIサマリー・アドバイザまたは集計の永続性エンジンの正常な実行に影響を及ぼす可能性のある問題についてリポジトリ・メタデータがチェックされます。-L
オプションを指定したvalidaterpd
の使用方法の詳細は、「validaterpdユーティリティを使用したモデルのチェック」を参照してください。
構文
validaterpd
ユーティリティは次のパラメータを取ります。
validaterpd {-R repository_name | -I input_file_pathname | -D MDS_XML_document_directory} [-P repository_password] {-O output_txt_file_name | -C output_csv_file_name | -X output_xml_file_name} [-8] [-F fixed_rpd_name|-E] [-S] [-B]
説明:
repository_nameは、検証対象とするバイナリOracle BIリポジトリ・ファイルの名前およびパスです。
input_file_pathnameは、妥当性チェックの対象とするXML入力ファイルの名前とパスです。
MDS_XML_document_directoryは、入力されたMDS XMLドキュメントの場所です。
repository_passwordは、妥当性チェックの対象とするリポジトリのパスワードです。
repository_password引数はオプションです。パスワード引数を指定しないと、コマンドを実行するとき、パスワードの入力を求めるプロンプトが表示されます。セキュリティ侵害のリスクを最小化するために、パスワード引数をコマンドラインやスクリプトで指定しないことをお薦めします。パスワード引数のサポートは下位互換性を確保することのみを目的としているため、将来のリリースでは削除される予定です。スクリプト上の理由から、標準入力によってパスワードを指定できます。
output_txt_file_nameは、妥当性チェック結果を記録するテキスト・ファイルの名前とパスです。
output_csv_file_nameは、妥当性チェック結果を記録するcsvファイルの名前とパスです。
output_xml_file_nameは、妥当性チェック結果を記録するXMLファイルの名前とパスです。
MDS XMLドキュメントを実行することを指定するには、-M
を指定します。-D
を指定する場合は、-M
引数は必要ありません。すべてのオブジェクト定義を含む単一のMDS XMLファイルがある場合は、-M
を指定するだけで済みます。
-8
は、出力ファイルのエンコードがUTF-8であることを指定します。
-F
を指定すると、一部の内部検証エラーに対する自動修正を含んだ新しいバージョンのリポジトリがOracle BIリポジトリ・ファイル形式で作成されます。fixed_rpd_nameには、修正を保存するバイナリOracle BIリポジトリ・ファイルの名前およびパスを指定します。このオプションを選択すると、すべての修正のリストがファイルorainst\servers\obis1\logs\username_NQSAdminTool.log
に記録されます。
変更を入力リポジトリに保存するには、-E
を指定します(-R
も指定する必要があります)。このオプションを選択すると、すべての修正のリストがファイルorainst\servers\obis1\logs\username_NQSAdminTool.log
に記録されます。
-S
を指定すると、サーバー・エラーとナビゲーション・スペースのみがチェックされます。
-B
を指定すると、ビジネス・モデルの可用性のチェックがスキップされます。
例
次の例では、repository.rpdというリポジトリの検証情報を収めたresults.txtという出力ファイルが生成され、修正バージョンがfixed_repository.rpdに保存されます。
validaterpd -R repository.rpd -O results.txt -F fixed_repository.rpd Give password: my_rpd_password
次の例では、C:\MDS_dirにあるMDS XMLドキュメント内のリポジトリの検証情報を収めたresults.csvという出力ファイルが生成されます。
validaterpd -D C:\MDS_dir -C results.csv Give password: my_rpd_password
一般的な整合性チェック・メッセージ
この表を確認し、一般的に表示されるいくつかの整合性チェックの警告とエラーに関する情報を取得します。
この表は、一部のリストのみを示しており、表示される可能性があるすべての警告とエラーを示しているのではありません。
検証ルールの例 | タイプ | 説明 |
---|---|---|
[14031] 論理表FACT_TABLE_NAMEのソースの索引フィルタは、複数のディメンションを参照します。 |
エラー |
特定の論理表に複数のディメンションを参照するWHERE句フィルタを含む論理表ソースがあります。複数のディメンションを含むWHERE句は無効です。 |
[38126] 'Logical Table' '"Technology - WFA"."Fact WFA WO "'の名前の先頭または末尾にスペースがあります。 |
エラー |
オブジェクト名の先頭または末尾にスペースがあります。 リポジトリ・オブジェクト名の先頭または末尾をスペースにすることはできなくなりました。オブジェクト名の先頭または末尾にスペースがあると、問合せまたはレポートで問題が発生する場合があります。 |
[38012] 論理列DIM_Start_Date.YEAR_QUARTER_NBRには物理データ型のマッピングがなく、派生列でもありません。 [38001] 論理列DIM_Start_Date.YEAR_QUARTER_NBRに物理データ・ソースのマッピングが含まれていません。 |
エラー |
いずれの論理表ソースにもマップされていない論理列は、論理表ソース・マッピングが無効であり問合せの失敗の原因となるため、整合性エラーとしてレポートされます。 両方の特定の検証ルールは、同じ問題に関連しています。 |
[39062] レポート問合せに使用されている接続プール'"My_DB". "My_CP"'が初期化ブロック'Authorization'で使用されています。これは問合せのパフォーマンスに影響する場合があります。 |
警告 |
同じ接続プールが問合せと初期化ブロックの両方に使用されていることを示しています。この構成はお薦めしません。そのかわりに、初期化ブロックに専用の接続プールを作成します。そうしないと、問合せのパフォーマンスが低下したり、認証の初期化ブロックを実行できずにユーザー・ログインの応答が停止する可能性があります。 |
[39028] データベース'MyDB'の機能がデフォルトと一致しません。この結果、問合せ問題が発生する可能性があります。 |
警告 |
一部のデータベース機能のデフォルトは、Oracle Analytics Serverのこのリリースで変更されました。機能セットに特定のカスタマイズがなければ、データベース機能を新しいデフォルトにリセットすることをお薦めします。 |
[39003] 列DIM_Offer_End_Date.CREATE_DTの機能依存結合が見つかりません。 |
警告 |
この警告は、特定の列が無効な論理表ソースにマップされていることを示しています。デフォルトの動作が不適切な場合、警告によってこの問題についてリポジトリ開発者に注意しています。 |
[39059] 論理ディメンション表MY_DIMのレベルDailyに、上位レベルのファクト・ソースMY_FACT_SUM.MTHLY_SUMと結合するソースMY_DIM_DAILYがあります |
警告 |
このファクト論理表ソースにこのディメンションで設定された集計のマス目がありますが、このディメンションの論理表ソースに接続する結合が見つかりませんでした(または潜在的に不正な結合が見つかりました)。 これは、結合が存在しないか、存在しているが高レベルのファクト・ソースと低レベル次元ソースを接続しているため、潜在的に不正であることを意味します。このような結合は、実行すると問合せの回答でダブル・カウントが発生する可能性があるため、潜在的に不正になります。 たとえば、「Select year, yearlySales」という問合せについて考えます。monthTable表とyearlySales表との間にyearIdでの結合が存在していても、この結合により結果が12の倍数(各年の月数)に増加するため、これは使用できません。 アップグレード後に39059警告が発生したら、結合が仕様どおりに機能しているか、および結果が不正にダブル・カウントされていないかどうかを確認します。結合が仕様どおりであれば、39059警告は無視してください。 |
[39055] ファクト表"HR"."FACT - HC Budget"は論理ディメンション"HR"."DIM - HR EmployeeDim"の表と結合していません。これにより、プロジェクトの抽出時に問題が発生する可能性があります。 |
警告 |
この警告は、特定のファクトとディメンション・ソースの間に物理結合があるものの、ファクト表とディメンション表の間に相応の論理結合がないことを示しています。 |
[39054] ファクト表"Sales - STAR"."Fact - STAR Statistics"は論理ディメンション表"Sales - STAR"."Dim - Plan"と結合していません。これにより、プロジェクトの抽出時に問題が発生する可能性があります。 |
警告 |
この警告は、ファクト表の論理表ソースの集計コンテンツ・フィルタ「Group by Level」が、そのファクト表に結合されていない論理ディメンション表を参照していることを意味します。ファクト表がextract/MUDプロセスで抽出されない場合、結合されていないディメンションは抽出されません。その場合、抽出される論理表ソースの集計コンテンツは、元の論理表ソースと同じにはなりません。 |
[39057] 論理表ソース""HR"."Dim - Schedule"."SCH_DEFN""には、列マッピングまたは式で使用されていない物理表がマップされています。 |
警告 |
この警告は、特定の論理表ソースにマッピングで使用されていない無関係の表が追加されていることを示しています。この状況でエラーが発生することはありません。 |