Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 11g リリース1 (11.1.1) B63028-07 |
|
![]() 前 |
![]() 次 |
この章では、Oracle Business Intelligenceで集計の永続性を設定し、使用する方法について説明します。
データ・ウェアハウスの多くの専門家は、高度に集約された問合せのパフォーマンスを大幅に向上させるために集計データ表を作成します。これらの集計表にはあらかじめ計算された結果が格納され、その結果はディメンションの一連の属性を範囲とする集計メジャー(通常は合計)です。集計表の使用は、意志決定サポート・システムにおいて問合せの応答時間を向上させるために一般的に使用されるテクニックです。
SQL問合せを使用する場合、またはどの表が存在するかのみを理解しその意味を理解していないツールを使用する場合、集計表の数が増加するにつれて集計表の使用がより複雑になります。Oracle BIサーバーの集計ナビゲーション機能を利用すると、問合せにおいて集計表に格納されている情報を自動的に使用することが可能になります。Oracle BIサーバーを利用することにより、ユーザーは適切なビジネス上の質問を行うことに集中でき、最も高速に回答を返す表がどれであるかはサーバーによって判断されます。
Oracle Business Intelligenceには、ソース・データベース内の集計を利用するための集計ナビゲーション機能があります(詳細は第11章を参照)。ただし、データ集計の作成と維持、およびデータベース・スクリプトのロードと対応するメタデータのマッピングには時間がかかることがあります。そのため、Oracle Business Intelligenceには、集計表の作成とロード、およびOracle Business Intelligenceの対応するメタデータのマッピングを自動化する、集計の永続性機能が用意されています。
この章には次のトピックが含まれます:
集計の永続性を使用して、Oracle BIサーバーの問合せ用の集計を作成します。集計の永続性ウィザードを使用することにより、集計指定スクリプトの作成が自動化されます。このスクリプトを稼働中のOracle BIサーバーに対して実行すると、集計の永続性エンジンによって集計表が作成され、ナビゲーション用のメタデータにマップされます。集計の永続化を行うと、パフォーマンス向上のための索引および統計がリレーショナル表に作成されます。
集計の永続性ウィザードは、Oracle BIサーバーに対して、スケジュールに基づいて実行できるSQLスクリプトを作成します。集計の永続性ウィザードで、自身のパフォーマンス・デザインに基づいて、各スターまたはキューブのメジャー、ディメンションおよびその他のパラメータを指定します。このスクリプトは、ベースレベル表の各ロードの後に実行する必要があり、それによって、ロード・ウィンドウが完了してユーザーが問合せの実行を始めるときには、常に、集計が詳細レベルのデータと同期しているようになります。
集計作成は、クラスタ内のマスター・サーバーに対して実行します。メタデータの変更がスレーブに伝播されるまで多少時間がかかります。クラスタのリフレッシュ時間はユーザーによる制御が可能なオプションですが、スレーブ・サーバーがリフレッシュされる前にスレーブ・サーバーに対する問合せが行われると、正しくない結果が返される可能性があります。適切なクラスタ・リフレッシュ間隔を設定するのは管理者の役目です。
集計の永続性では、集計が格納されるターゲット・データベースに表またはキューブを作成するための専用の接続プールが必要になります。Oracle BIリポジトリではフェデレーションが可能なため、集計のターゲットは、詳細ソースと同じデータベース、完全に別のデータベースのいずれでも構いません。この専用の接続プールは、集計の永続性ウィザードの手順の中で選択するため、このウィザードを実行する前に作成する必要があります。
ディメンション(レベル)の集計には、デフォルトの接頭辞SA_
が自動的に追加されます。NQSConfig.INIファイルのAGGREGATE_PERSISTENCEセクションにある
AGGREGATE_PREFIX
パラメータを更新することによって、このデフォルトの接頭辞を変更することができます。
AGGREGATE_PREFIX = "prefix_name" ;
集計を格納するのに使用されるターゲット・スキーマは適切に保護する必要があり、パブリック・アクセスを許可してはいけません。このスキーマには、表や索引への接続、およびそれらの作成や削除に関する権限を設定する必要があります。デフォルトでは、BIAdministratorsグループに属するユーザーのみが集計を管理できます。
仮想プライベート・データベース(VPD)のセキュリティ・フィルタがアクティブになっている表に対しては、集計の永続性を使用しないでください。VPDフィルタが適用されずに集計情報が永続化される可能性があり、セキュリティ上のリスクが生じます。
Oracle Business Intelligenceの以前のバージョンでは、集計の永続性による制限のために、集計が作成できない、または無効な集計が作成される場合がありました。現行のバージョンのOracle Business Intelligenceでは、次に記載するように集計の永続性が改善されて、有用な集計を自動的に作成し、固定データ設定エラーやモデリングの問題が発生することなく集計を作成できます。
集計の永続性により、代理キーが作成され、ディメンションをファクト集計表に結合することができます。多くの場合、ソース・データベースとターゲット・データベースのインスタンスは同一ではないため、以前のOracle BIサーバーでは、代理キーの作成中にクロス・データベース結合(ソート・マージ結合)を実行する必要がありました。この結合方法を使用すると、ディメンションをファクト表に結合する際に、ファクト集計の内部的なソートを複数回繰り返す必要があったため、高コストでした。
現行リリースのOracle BI Serverでは、ハッシュ結合を使用することにより代理キーの作成が改善されました。可能な場合、リクエスト変数がファクト集計母集団問合せへ新たに自動追加されます。このリクエスト変数が設定されると、問合せエンジンでパラレルのディメンション表に対してファクト表の結合の前にハッシュ結合が作成されます。
Oracle BIサマリー・ウィザードに「代理キーの使用」オプションが表示され、代理キーを使用する必要がある時を知らせます。このオプションが選択されると、using_surrogate_key
句が集計指定内のすべてのレベルに追加されます。
以前のリリースでは、集計の永続性は1つ以上の指定された集計レベルに対して一意のレベル・キーを使用しました。レベル・キーが一意ではない場合、モデル・チェック・マネージャにより一意ではないレベル・キーに関する警告が表示されます。問合せがそのような集計をもとにしている場合、正しい値が得られません。または、TimesTenの集計作成が正常に終了せず、「一意の索引」エラーが発生します。
現行リリースでは、集計の永続性は、一意ではないレベル・キーを自動修正、またはハードニングします。集計の作成中に、集計の永続性エンジンは一意ではないレベル・キーを特定し、可能な場合、親レベルからキー列を追加することにより一意の拡張キーを生成します。一意の拡張キーは、集計上のすべての操作で使用されます。キーは、集計のためだけに内的に拡張され、メタデータ(キー定義)は変更されないことに留意してください。
Oracle BI Summary Advisor feature to identify which aggregates will increase query performance and if the level key for the level is not unique and cannot be auto-corrected by aggregate persistence, then all fact aggregates dependent on the level will not be materialized.
Oracle BIサマリー・アドバイザでは、定義された一意のレベル・キーを使用して集計するか、自動修正(ハードニング)でレベル・キーを一意にすることをお奨めします。ただし、基礎となるデータを変更すると、集計に影響することに留意してください。
パフォーマンスの向上のために、自然キーのかわりに代理キーを使用して集計を作成することをお奨めします。自然キーを使用している場合、自動修正またハードニングはあまり効果的ではありません。特に準備-作成モードの操作で機能しません。
以前のリリースでは、集計の永続性は、非バランス型またはスキップ・レベル階層のある論理ディメンションに対する集計を作成できませんでした。
現行のリリースでは、集計の永続性が改善され、非バランス型またはスキップ・レベル階層のある論理ディメンションに対する集計を作成できます。このような集計は、代理キーを使用してもしなくても作成できます。Oracle BIサマリー・アドバイザも改善されて、非バランス型またはスキップ・レベル階層のある論理ディメンションに対する集計を推奨します。
Oracle BIサーバーでは、AGO、TODATEおよびPERIODROLLINGなどの時系列関数をサポートするために、時系列キーが必要でした。論理ディメンションの最下位キーのみが時系列である場合にのみ、時系列関数が正しく処理を実行します。ただし、以前のバージョンのOracle Business Intelligenceでは、高いレベルの時系列キーが存在しないため、時系列関数を使用する問合せを処理する場合に、高いレベルの集計をOracle BIサーバーで使用できませんでした。
現行リリースでは、集計の永続性は、時系列キーのない集計を作成する時間レベルに対して、CK_
接頭辞の付いた時系列キーを生成します。新しい列が物理ディメンション集計表に追加されて、時系列キーの値を保存し、新しい論理列が時間ディメンションの論理表に追加されます。この列は、物理ディメンション集計表に追加される新しい列にマッピングされます。
現行のリリースでは、delete aggregates
文を使用すると、生成された時系列キーをサポートするために、すべての作成されたメタデータを削除します。
以前のリリースでは、集計の永続性は、指定されたレベルの組合せに対する件数の値を計算および保存しました。ただし、これらの集計は高グレインでのメジャーに関連する問合せの処理で使用できず、Oracle BIサーバーは問合せを正常に終了するためにベース・ファクト表から対応するデータをフェッチする必要がありました。このような要因により、集計の有用性が低下し、不十分な問合せが生成されました。
現行のリリースでは、Oracle BIサーバーは重複していない件数メジャーのある集計を利用して、高グレインでのメジャーに対する問合せを処理できます。集計の永続性ウィザードには「「重複を除いた件数」メジャーをRAW値として永続化」オプションが含まれ、これを選択すると、指定された有効な重複していない件数メジャーのすべてにas_raw_values
が付加されます。このオプションが選択されると、集計の永続性では、システム生成された集計論理表ソースへの対応する論理列に、集計式が上書きされます。Oracle BIサマリー・アドバイザでは、重複していない件数メジャーに対する永続性の方法の両方を使用することをお奨めします。
集計の作成時には、集計データによって大きな利点が得られるのはどの問合せであるかを特定する必要があります。可能なかぎり高いレベルで集計することによって、最良の結果が得られます。遅い問合せを特定するには、次のタスクを実行します。
Oracle BIサーバーの使用状況トラッキングを有効にします。使用状況トラッキングの統計情報は、データベースの最適化、集計の戦略、ユーザーや部門が利用したリソースに基づく課金など、様々な方法で利用できます。Oracle BIサーバーは、詳細な問合せレベルで使用状況を追跡します。使用状況トラッキングを有効にすると、すべての問合せの統計情報が使用状況ログ・ファイルに書き込まれるか、またはデータベースの表に挿入されます。
注意: 使用状況トラッキングでは、データベースへの直接インサートの手法を使用することを強くお薦めします。使用状況トラッキングの完全な情報は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の使用状況トラッキングの管理に関する項を参照してください。 |
問合せの実行時間を分析し、最も時間のかかる問合せを集計の候補として特定します。集計の作成にかかる実行時間は、ユーザーが選択する集計の種類によって異なります。大きなファクト表の集計作成は、小さな表よりも時間がかかります。作成する集計の選択は慎重に行ってください。
Oracle Exalytics Machine上でOracle Business Intelligenceを実行している場合、Oracle BIサマリー・アドバイザ機能を使用して、問合せのパフォーマンスが向上するのはどの集計であるのか特定し、推奨集計を作成するスクリプトを生成できます。
注意: Oracle Exalytics Machine上でOracle Business Intelligenceを実行していない場合、Oracle BIサマリー・アドバイザ機能は使用できません。 |
この項には次のトピックが含まれます:
問合せ時間を短縮するために、ロールアップ・データを含む問合せに対して事前に計算された結果を格納する集計表を作成できます。ただし、集計を作成する前に、使用状況トラッキング統計を分析し、問合せのパフォーマンスが向上するのはどの集計であるのかを特定する必要があります。多くの時間と労力を要する手動による集計の特定のかわりに、特定のリソースの制約を満たしつつ、最大の問合せパフォーマンスを得られる問合せパターンに基づいた集計表の最適なリストをインテリジェントにお薦めするサマリー・アドバイザ機能を使用できます。その後、サマリー・アドバイザによって集計作成スクリプトが生成され、それを実行すると、推奨集計表を作成できます。
サマリー・アドバイザ機能には、次のようないくつかの部分があります。
指定された統計データベースへの統計収集。サマリー・アドバイザ統計を収集するには、使用状況トラッキング機能を有効化する必要があります。
収集された統計と推奨集計を評価するための、管理ツールのサマリー・アドバイザ・ウィザードによるサマリー・アドバイザの実行。
この項には次のトピックが含まれます:
サマリー・アドバイザで推奨を生成するには、その前に、サマリー・アドバイザが使用する使用状況統計の代理サンプルを取得する必要があります。この作業を実行するには、次の方法のいずれかを使用します。
本番システム上で、使用状況トラッキングおよびサマリー・アドバイザ・ロギングを有効化し、数日間にわたってユーザーにBIサーバーに対する問合せを実行してもらいます。サマリー・アドバイザ統計表に、使用状況統計が移入されます。詳細は、「使用状況トラッキングの有効化」および「サマリー・アドバイザ・ロギングの有効化」を参照してください。
使用状況トラッキングとサマリー・アドバイザ・ロギングを有効化すると、本番システムのパフォーマンスにわずかに影響します。
テスト環境で、Oracle BIサーバーに対して代理ワークロードを実行し、サマリー・アドバイザ統計を収集します。代理ワークロードは、一般的に要求される論理SQL文のリストです。通常、代理ワークロードは本番環境から取得します。
代理ワークロードが用意できたら、テスト環境のOracle BIサーバーで使用状況トラッキングとサマリー・アドバイザ・ロギングを有効化し、nqcmd
ユーティリティを使用してそのOracle BIサーバーに対してワークロードを実行します。nqcmdの使用方法の詳細は、「リポジトリのテストおよび絞込みのためのnqcmdの使用方法」
を参照してください。サマリー・アドバイザ統計表に、使用状況統計が移入されます。
システムで、使用状況トラッキングは有効化されていたが、サマリー・アドバイザ・ロギングは有効化されていなかった場合は、サマリー・アドバイザ統計の生成ツールを実行して、使用状況トラッキング・データをサマリー・アドバイザ統計表に転送できます。このシナリオは、11.1.1.6.0より前のユーザーがOracle BIサマリー・アドバイザ機能のあるOracle BI Enterprise Editionの最新バージョンにアップグレードする場合が対象となります。これらのユーザーは、使用状況トラッキング・データを持っていても、サマリー・アドバイザ統計を持っていない場合があります。
サマリー・アドバイザ統計表に代理データが移入された後、サマリー・アドバイザによってデータを分析し、集計の推奨を生成して問合せを高速化できます。
これを行うには、管理ツールのOracle BIサマリー・アドバイザ・ウィザードを実行して集計指定を生成し、nqcmd
を使用してその集計指定を使用して集計を作成します。詳細は、「Oracle BIサマリー・アドバイザ・ウィザードの使用方法」および「Oracle BIに対する集計指定の実行」を参照してください。
現在、Oracle BIサマリー・アドバイザでは、Oracle TimesTen In-Memory Database上の集計の作成のみがサポートされています。サポートされるバージョンについては、「システム要件と動作要件」を参照してください。
同じオプションを再度入力することなく、後でOracle BIサマリー・アドバイザ・ウィザードを再実行できるように、サマリー・アドバイザのオプションをファイルに保存することもできます。
Oracle BI EE 11gリリース1 (11.1.1.7)以降、Oracle BIサマリー・アドバイザにはメジャー・サブセットの推奨事項が用意されています。つまり、サマリー・アドバイザでは今後、分析済の問合せワークロードに存在しており、集計が作成された場合に問合せワークロードを最適化できる特定のメジャーが含まれている集計のみを対象とすることをお薦めします。
これまでサマリー・アドバイザでは、論理ファクト表と同様に多くのメジャーを含んだ集計をお薦めしましたが、このために問合せで使用されないメジャーや、集計を使用して最適化できないメジャーが作成されることもありました。これらのメジャーの作成とリフレッシュは記憶領域を浪費し、集計の作成およびリフレッシュ時間の長期化にいたりました。
メジャー・サブセットの推奨事項は、デフォルトでは、次のリストで説明するように、11gリリース1 (11.1.1.7)で有効になっています。
サマリー・アドバイザーには、お薦めされる集計の問合せワークロードで使用されないメジャーは含まれません。
集計ファクト表のサイズの見積りは、見積りの際に論理ファクト表のすべてのメジャーを使用するのではなく、推奨メジャー・サブセットに基づいて行われます。
サマリー・アドバイザーには、お薦めされる集計において集計の永続性に無効なメジャーは含まれません。
旧リリースからOracle BI EE 11gリリース1 (11.1.1.7)にアップグレードしている場合は、次の点に注意してください。
この機能では、11.1.1.7.0以降のバージョン値を持つサマリー統計データが入力されたMEASURECOLUMNIDVECTOR列およびGROUPBYCOLUMNIDVECTOR列が含まれているサマリー統計表が必要です。パッチ・セット・アシスタントを実行した後で、新しい列をリポジトリにインポートして、ワークロードを再実行する必要があります。さらに、新しい統計でサマリー・アドバイザを再実行して、集計を再作成します。
パッチ・セット・アシスタントの実行の詳細は、『Oracle Fusion Middlewareパッチ・ガイド』を参照してください。
パッチ・セット・アシスタントの実行後に新しい列をインポートしない場合でも、サマリー・アドバイザは使用できますが、メジャー・サブセットの推奨事項は有効になりません。
11.1.1.7.0以前と11.1.1.7.0の両方の統計データが特定の集計グレインに対してサマリー・アドバイザで分析された場合、このグレインでお薦めされる集計に対して11.1.1.7.0以前の動作が施行されます(つまり、すべてのメジャーが含まれます)。
Oracle BIサマリー・アドバイザ機能を使用する前に、収集した統計を格納するデータベースを設定する必要があります。ターゲット・データベースでリポジトリ作成ユーティリティ(RCU)を実行し、必要な統計スキーマを作成する必要があります。詳細は、『Oracle Fusion Middleware Oracle Business Intelligenceインストレーション・ガイド』のリポジトリ作成ユーティリティ(RCU)を使用したデータベース・スキーマの作成に関する項を参照してください。
通常、Oracle Business Intelligenceとともに使用するためにインストールしたデータベースを統計データベースとして使用します。それは、このデータベースにはすでにRCUで作成したスキーマが存在するためです。サマリー・アドバイザ用にRCUで作成した表の名前は、S_NQ_SUMMARY_ADVISOR
です。
また、そのデータベースを、Oracle BIリポジトリの物理レイヤーにインポートすることも必要です。
サマリー・アドバイザには、使用状況トラッキングに使用するものと同じデータベースを使用する必要があります。使用状況トラッキング用にデータベースとスキーマをすでに設定済である場合は、この項の手順を省略できます。
統計データベースを設定する手順は、次のとおりです。
選択した外部データベース上でリポジトリ作成ユーティリティを実行します。Oracle Business Intelligenceとともに使用するためにインストールしたデータベースをサマリー・アドバイザ統計に使用するように選択した場合は、そのデータベースには、すでにRCUで作成された表があるため、この手順を省略できます。
管理ツールを開き、データベースを物理レイヤーにインポートします。詳細は、「リレーショナル・データ・ソースからのメタデータのインポート」を参照してください。
リポジトリを保存して閉じます。
Fusion Middleware Controlを使用して、リポジトリをアップロードし、問合せに使用できるようにします。詳細は、「リポジトリを問合せで使用可能にする」を参照してください。
表13-1に、S_NQ_SUMMARY_ADVISOR
表の列を示します。
表13-1 S_NQ_SUMMARY_ADVISORの列
列 | 説明 |
---|---|
GROUPBYCOLUMNIDVECTOR |
処理パスでグループ化の列を表す論理列オブジェクトのアップグレードIDFoot 1 。 |
LOGICALFACTTABLEID |
論理ファクト表のアップグレードID。 |
LOGICALTABLESOURCEIDVECTOR |
論理表ソースのアップグレードID。 |
LOGICAL_QUERY_ID |
S_NQ_ACCTのID列を参照する外部キー。この列は、この処理パスを生成した論理SQLを特定する際に役立ちます。 |
MEASURECOLUMNIDVECTOR |
処理パスでメジャーを表す論理列オブジェクトのアップグレードID。 |
PROCESSINGTIMEINMILLISEC |
この処理パスで費やされた時間(ミリ秒)。 |
QUERYLEVELIDVECTOR |
処理パスにおける論理レベルのアップグレードID。 |
QUERYSTATUS |
内部使用専用。 |
ROW_COUNT |
処理パスで取得された行数。この列のデータは、将来のリリースでOracle BIサマリー・アドバイザが使用するために予約されています。 |
SOURCECELLLEVELIDVECTOR |
論理表ソースにおける論理レベルのアップグレードID。 |
VERSION |
Oracle BIサーバーのバージョン番号。 |
脚注 1 処理パスとは、Oracle BIサーバーの社内用語です。これは、1つのファクト論理表ソースを含む副問合せを表します。
サマリー・アドバイザ統計を収集する前に、使用状況トラッキングを有効化する必要もあります。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の使用状況トラッキングの管理に関する項を参照してください。
統計を収集する準備ができたら、サマリー・アドバイザ・ロギングを有効化できます。新しい(アップグレードしたものではない)インストールの場合、サマリー・アドバイザ・パラメータは中央で管理します。Fusion Middleware ControlのシステムMBeanブラウザを使用して、サマリー・アドバイザ・パラメータを設定します。
システムMBeanブラウザを使用してサマリー・アドバイザ・ロギングを有効化する手順は、次のとおりです。
Fusion Middleware Controlの「ナビゲータ」ウィンドウで、「WebLogicドメイン」フォルダを開き、bifoundation_domainノードを開きます。
「AdminServer」ノードを右クリックし、「システムMBeanブラウザ」を選択します。
「アプリケーション定義のMBeans」を開き、oracle.biee.adminを開いてbifoundation_domainを開きます。
次のようにしてそのドメインをロックします。
BIDomainを開き、group=ServiceのBIDomain MBeanを選択します。
「操作」タブを表示します。
「ロック」リンクをクリックします。
BIDomain.BIInstance.ServerConfigurationを開き、BIDomain.BIInstance.ServerConfiguration MBeanを選択します。
UsageTrackingCentrallyManaged属性がtrueに設定されていることを確認します。UsageTrackingCentrallyManagedがfalseに設定されている場合は、次のパラメータは、システムMBeanブラウザではなく、各Oracle BIサーバー・コンピュータ上のNQSConfig.INIファイルを使用して管理します。
SummaryAdvisorTableName
SummaryStatisticsLogging
UsageTrackingConnectionPool
UsageTrackingDirectInsert
UsageTrackingEnabled
UsageTrackingPhysicalTableName
統計を収集するデータベース表の完全修飾名にSummaryAdvisorTableName属性を(Oracle BIリポジトリの物理レイヤーに表示されているとおりに)設定します。例:
"My_DB"."DEV_BIPLATFORM"."S_NQ_SUMMARY_ADVISOR"
指定する表名は、使用状況トラッキングに使用するものと同じデータベース・オブジェクトおよび接続プールに属している必要があります。
SummaryStatisticsLoggingを次のいずれかのオプションに設定します。
サマリー・アドバイザ・ロギングを有効にするには、YESと入力します。
外部結合を含む論理問合せに対してのみサマリー・アドバイザ・ロギングを有効にするには、LOG_OUTER_JOINT_QUERIES_ONLYと入力します。サマリー・アドバイザ・ロギングを完全に有効にすることで生じるパフォーマンスへの多少の影響が気になる場合は、このオプションの使用を検討してください。
変更を適用した後、次のようにしてドメインのロックを解放します。
oracle.biee.admin、Domain:bifoundation_domain、BIDomainの下のgroup=ServiceのBIDomain MBeanに戻ります。
「操作」タブを表示します。
コミット操作の1つをクリックします。
Oracle Business Intelligenceの「概要」ページに移動し、「再起動」をクリックします。
アップグレードのお客様の場合は、サマリー・アドバイザ・パラメータはデフォルトでは中央で管理されません。前の手順で説明したようにUsageTrackingCentrallyManagedをtrueに設定し、システムMBeanブラウザを使用してパラメータを更新するか、NQSConfig.INIを使用してサマリー・アドバイザ・パラメータを管理できます。
これらのパラメータに対して中央管理が無効になっている場合にNQSConfig.INIでサマリー・アドバイザ・ロギングを有効化するには、次の手順に従います。
Oracle BIサーバー・コンピュータで、テキスト・エディタでNQSConfig.INIファイルを開きます。このファイルは、次の場所にあります。
ORACLE_INSTANCE/config/OracleBIServerComponent/coreapplication_obisn
編集する前に、ファイルのバックアップ・コピーを作成します。
[USAGE_TRACKING]セクションで、次のパラメータを更新します。
SUMMARY_STATISTICS_LOGGING
を次のいずれかのオプションに設定します。
YES:
サマリー・アドバイザ・ロギングを有効にします。
LOG_OUTER_JOINT_QUERIES_ONLY
: 外部結合を含む論理問合せに対してのみサマリー・アドバイザ・ロギングを有効にします。サマリー・アドバイザ・ロギングを完全に有効にすることで生じるパフォーマンスへの多少の影響が気になる場合は、このオプションの使用を検討してください。
統計を収集するデータベース表の完全修飾名にSUMMARY_ADVISOR_TABLE_NAME
を(Oracle BIリポジトリの物理レイヤーに表示されているとおりに)設定します。例:
SUMMARY_ADVISOR_TABLE_NAME = "My_DB"."DEV_BIPLATFORM"."S_NQ_SUMMARY_ADVISOR";
指定する表名は、使用状況トラッキングに使用するものと同じデータベース・オブジェクトおよび接続プールに属している必要があります。
ファイルを保存して閉じます。
Oracle BIサーバーを再起動します。
複数のOracle BIサーバー・インスタンスがある場合は、すべてのOracle BIサーバー・インスタンスについて、各NQSConfig.INIファイルでこれらの手順を繰り返します。
サマリー・アドバイザ統計を生成した後、管理ツールのOracle BIサマリー・アドバイザ・ウィザードを実行して集計指定スクリプトを生成し、それを実行して集計を作成できます。サマリー・アドバイザ・ウィザードは、オンライン・モードでのみで実行できます。
また、Oracle BIサマリー・アドバイザ・ウィザードをコマンドラインから実行することもできます。詳細は、「nqaggradvisorユーティリティを使用してOracle BIサマリー・アドバイザを実行」を参照してください。
サマリー・アドバイザ・ウィザードを実行する前に、物理レイヤーに集計を作成する予定のターゲット・データベースをマップする必要があります。これを行うには、必要なデータベース、接続プールおよび物理スキーマ・オブジェクトを手動で作成します。
Oracle BIサマリー・アドバイザ・ウィザードを実行する手順は、次のとおりです。
オンライン・モードで、管理ツールでリポジトリを開きます。
モデル・チェック・マネージャを実行して、リポジトリに、Oracle BIサマリー・アドバイザのパフォーマンスと結果に影響を及ぼすモデリングの問題が含まれていないことを確認することをお薦めします。詳細は、「モデル・チェック・マネージャを使用したモデリングの問題のチェック」を参照してください。
注意: モデル・チェック・マネージャは、一部のチェックのためにバックエンドのデータ・ソースに対して問合せを実行するので、オフピーク時に実行することをお薦めします。また、大規模なリポジトリに対してモデル・チェック・マネージャを実行すると、長い時間がかかることがあります。パフォーマンスを向上させるには、「統計によるフィルタ処理」を使用するか、選択したオブジェクトに対してのみモデル・チェック・マネージャを実行するようにしてください。 |
「ツール」→「ユーティリティ」を選択します。
スクロールして「Oracle BIサマリー・アドバイザ」を選択し、「実行」をクリックします。
Oracle BIサマリー・アドバイザ・ウィザードは、Oracle Exalytics Machine上でOracle Business Intelligenceを実行している場合にのみ使用できます。
Oracle BIサマリー・アドバイザ・ウィザードの最初のページの「フィルタ・ログ - 論理ファクト表」で、オプションでサマリー・アドバイザの推奨を生成する特定の論理ファクト表を選択できます。デフォルトでは、すべての論理ファクト表が含められています。
Oracle BIサマリー・アドバイザ・ウィザードを以前に使用したことがあり、フィルタ基準、ターゲットおよびその他のオプションをXMLファイルとして保存してある場合は、「ファイルからパラメータのロード」をクリックし、前に保存したオプションを現在のウィザード・セッションにロードできます。ファイルへの基準の保存の詳細は、手順11を参照してください。
サマリー・アドバイザ表(システムMBeanブラウザのSummaryAdvisorTableName、またはNQSConfig.INIのSUMMARY_ADVISOR_TABLE_NAMEパラメータで指定)が空である場合、サマリー・アドバイザは続行できません。「統計の生成」をクリックし、既存の使用状況トラッキング・データに基づいてサマリー・アドバイザ・ロギング統計を生成します。詳細は、「統計を生成するためのOracle BIサマリー・アドバイザ統計ジェネレータの使用方法」を参照してください。
注意: 「オプション」ダイアログの「一般」タブで、「サマリー・アドバイザ・ウィザードでの統計生成の有効化」を選択した場合のみ、「統計の生成」ボタンが表示されます。 |
次の画面に進む準備ができたら、「次」をクリックします。
「フィルタ・ログ - 時間ウィンドウ」画面で、オプションで、期間に基づいてサマリー・アドバイザ・ロギング統計にフィルタを適用できます。これを行うには、サマリー・アドバイザの実行に含める統計の「開始日」および「終了日」を入力します。期間を入力したら、「更新」をクリックして、ビューをリフレッシュします。
次の画面に進む準備ができたら、「次」をクリックします。
「フィルタ・ログ - 実行時間しきい値」画面で、オプションで、論理表ソースごとに最小問合せ時間しきい値を設定することでフィルタを適用できます。たとえば、「最小累積時間」に5秒を指定した場合、累積合計問合せ時間が5秒以上の論理表ソースのみがサマリー・アドバイザの実行に含められます。
次の画面に進む準備ができたら、「次」をクリックします。
「ターゲット」画面で、集計用のターゲット・コンテナおよび関連付ける接続プールを選択します。この場所に、集計表が作成されます。オプションで、複数のターゲット・コンテナを指定できます。
「データベース・スキーマ」、「接続プール」、およびターゲットの「容量」(MB単位)を指定し、「ターゲットの追加」をクリックしてリストにそれを追加します。「すべてクリア」をクリックしてターゲットの既存のリストをクリアするか、個別のターゲットの横にある「削除」ボタンをクリックしてそれを削除します。
Oracle BIサマリー・アドバイザでの使用に対して現在サポートされているのは、Oracle TimesTen In-Memory Databaseのデータベース・スキーマのみです。
次の画面に進む準備ができたら、「次」をクリックします。
「ファイルの場所の選択」画面で、「参照」をクリックし、集計指定(SQLスクリプト)を格納する場所を選択します。
「次へ」をクリックします。
「停止基準」画面で、次のように推奨のこのセットに対してオプションで実行の制約を指定できます。
結果を返すまでのサマリー・アドバイザの最長実行時間を指定できます。
新しい集計を追加する際に、そのワークロードで影響を受けるすべての問合せのパフォーマンスに対する最小向上パーセンテージを指定できます。
サマリー・アドバイザは、反復最適化アルゴリズムを使用します。サマリー・アドバイザでは、反復の回ごとに、異なるセットの集計が評価されます。この画面で最小向上パーセンテージを指定すると、サマリー・アドバイザによって、2つの連続する回の推定される向上が比較され、その向上が、指定した最小パーセンテージに満たない場合は停止されます。
各回の推定される向上を示す計算式は次のとおりです。
Estimated Gain = [(total query time at the beginning of the round) - (total query time at the end of the round)] / (Initial total query time prior to the first round)
例:
初期合計問合せ時間= 1000秒
1回目の終わり:
合計問合せ時間= 500秒
向上= (1000 - 500)/1000 = 50%
2回目の終わり:
合計問合せ時間= 250秒
向上= (500 - 250)/1000 = 25%
次の画面に進む準備ができたら、「次」をクリックします。
「その他」画面で、オプションで、1つの集計の最大サイズをMB単位で指定できます。将来のサマリー・アドバイザ・セッションで再使用するために、このセッションの基準およびオプションを格納するXML出力ファイルの場所を指定することもできます。
「代理キーの使用」オプションを使用することをお奨めします。代理キーを使用すると、作成された集計を使用する問合せのパフォーマンスが向上します。
「優先オプティマイザ見積り」を選択して、サマリー・アドバイザのプロセス中のパフォーマンスを向上させます。このオプションを選択すると、サマリー・アドバイザは、実際に行数問合せを発行するのではなく、可能なときに、データベース問合せオプティマイザから発生するカーディナリティの見積りを使用できます。このオプションは、Oracle Database、Microsoft SQL Server、およびIBM DB2で使用できます。
サマリー・アドバイザでデータベース問合せオプティマイザ見積りを使用する場合は、関連データベース・オブジェクトの統計情報が使用可能であり、最新である必要があります。詳細は、Oracle Databaseのドキュメントを参照してください。
このオプションを選択しない場合、サマリー・アドバイザではバックエンドのデータ・ソースに対して行数問合せを発行して、そのデータ・ソースの特定の問合せの行数(カーディナリティ)を取得しますが、この実行には長時間を要する場合があります。
最良の見積りを取得する方法のガイドラインについては、適切なデータベースのドキュメントを参照してください。たとえば、Oracle Databaseの場合は、複数の列問合せのカーディナリティ見積りを改善するために、列グループ機能の使用が必要になることがあります。
注意: 特定のグレインに対するエントリがサマリー・アドバイザのキャッシュ・ファイルにすでに存在している場合は、実際の行数問合せであるか、またはカーディナリティ見積りの問合せであるかどうかに関係なく、そのグレインのサンプリングを試みる問合せはサマリー・アドバイザでは発行されません。この場合のベスト・プラクティスは、「優先オプティマイザ見積り」オプションを選択または選択解除するときに、サマリー・アドバイザのキャッシュ・ファイルを削除することです。これを行うには、管理ツールのコンピュータで次のディレクトリにある ORACLE_INSTANCE\bifoundation\OracleBIServerComponent\ coreapplication_obisn\aggr |
「問合せで使用されているメジャーのみ含める」を選択し、問合せで使用されているメジャーを含めます。このオプションを選択しないと、論理ファクト表内のすべてのメジャーが推奨事項内に含まれます。これには、サマリー・アドバイザで分析済のワークロードで使用されないメジャーも含まれます。
「次へ」をクリックします。
「実行」画面で、「実行」をクリックし、サマリー・アドバイザ・プロセスを使用して推奨を生成します。
このプロセスを停止するには、任意の時点で「停止」をクリックします。サマリー・アドバイザを停止したり、完了するまで実行した場合は、それまでに見つかった集計の推奨が表示されます。
このプロセスが完了したら、「次へ」をクリックします。
「フィルタ集計」画面で、集計の推奨の現在のセットを確認します。オプションで、特定の集計の行の「含める」オプションをオフにすることで、それを作成プロセスから除外できます。
「次へ」をクリックします。
「スクリプトの終了」画面で、生成されるスクリプトを確認します。問題がない場合は、「終了」をクリックしてスクリプトを保存します。
SQLファイルを使用した集計表の作成の詳細は、「Oracle BIに対する集計指定の実行」を参照してください。
Oracle BIサマリー・アドバイザ統計ジェネレータを使用して、既存の使用状況トラッキング・データに基づいてサマリー・アドバイザ・ロギング統計を生成できます。
統計ジェネレータを実行するユーザーは、oracle.bi.server.impersonateUser権限を持っている必要があります。権限の管理の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のFusion Middleware Controlを使用したアプリケーション・ポリシーの作成に関する項を参照してください。
Oracle BIサマリー・アドバイザ統計を生成する手順は、次のとおりです。
Oracle BIサマリー・アドバイザ・ウィザードの最初のページで「統計の生成」をクリックすることで、統計ジェネレータを起動します。「Oracle BIサマリー・アドバイザ統計ジェネレータ」画面が表示されます。
注意: 「オプション」ダイアログの「一般」タブで、「サマリー・アドバイザ・ウィザードでの統計生成の有効化」を選択した場合のみ、「統計の生成」ボタンが表示されます。 |
図13-1は、統計ジェネレータの画面を示しています。
「コンテナ」および「表」には、使用状況トラッキング・データ(入力表)を含むOracle BIリポジトリの物理表の完全修飾名を形成する適切なオプションを選択します。この表に基づいた問合せは、サマリー・アドバイザ統計を生成するために使用されます。
UsageTrackingPhysicalTableName MBean、またはNQSConfig.INIのPHYSICAL_TABLE_NAMEパラメータで指定されているものとは異なる入力使用状況トラッキング表を指定することをお薦めします。異なる表を指定することで、入力使用状況トラッキング表が、統計ジェネレータの実行によって生成される新しいデータから影響を受けることはなくなります。
また、入力使用状況トラッキング表のQUERY_BLOB物理列オブジェクトは、基盤となるデータに合った長さを持っている必要があります。これは、統計ジェネレータがそれから論理SQL文字列を読み取るときに、切捨てが行われないようにするために必要です。QUERY_BLOB列が存在しない場合、統計ジェネレータはQUERY_TEXT列から論理SQL文字列を読み取ります。
「開始日」および「終了日」には、オプションで、使用状況トラッキング・データにフィルタを適用するための開始日と終了日を入力します。指定した日もデータ範囲に含まれます。
「最短問合せ時間」には、オプションで、問合せ時間にフィルタを適用するための秒数を入力します。このフィルタを指定すると、指定した値以上の時間がかかる問合せの使用状況トラッキング・データのみが使用されます。
「論理レポジトリ名」には、オプションで、リポジトリ名にフィルタを適用するための1つ以上のOracle BIリポジトリの名前を入力します。このフィルタを指定すると、これらのリポジトリに対して要求された問合せの使用状況トラッキング・データのみが使用されます。
値はカンマ区切り形式(RPD_name_1[,RPD_name_2,...])で指定します。
オプションで、そのような問合せを含めるには「行制限を超えた問合せを含める」を選択します。このオプションを選択しない場合は、正常に完了した問合せの使用状況トラッキング・データのみが使用されます。
「実行モード」については、サマリー・アドバイザ統計の生成中の物理問合せの実行を可能にするには、オプションで「より正確なタイミング・データを生成する問合せの実行(低速)」を選択します。
「統計の生成」をクリックし、指定した使用状況トラッキング・データからOracle BIサマリー・アドバイザ統計を生成します。
管理ツールでOracle BIサマリー・アドバイザ・ウィザードを使用するかわりに、Oracle BIサーバー・ユーティリティnqaggradvisor
を使用して、サマリー・アドバイザをコマンドラインから実行できます。サマリー・アドバイザ統計を生成した後、nqaggradvisor
を使用して集計指定スクリプトを生成し、それを実行して集計を作成できます。nqaggradvisor
ユーティリティは、Oracle Business IntelligenceをOracle Exalytics Machine上で実行している場合にのみ使用できます。
ngaggradvisor
の実行前に、bi-init
を実行して、適切に初期設定されたコマンド・プロンプトを起動する必要があります。詳細は、「Oracleインスタンスに初期化したシェル・ウィンドウを起動するためのbi-initの実行」を参照してください。
構文
nqaggradvisor
ユーティリティは次のパラメータを取ります。
nQAggrAdvisor -d dataSource | -u userName | -o outputFile | -c tupleInQuotes [-p password] [-F factFilter] [-z maxSizeAggr] [-g gainThreshold] [-l minQueryTime] [-t timeoutMinutes] [-s startDate] [-e endDate] [-C on/off] [-M on/off] [-K on/off]
説明:
dataSource
は、サマリー・アドバイザを接続して実行するOracle BIサーバーのODBCデータ・ソース名です。
userName
は、データ・ソースにログインするユーザー名です。指定されたユーザーは、管理ツールをオンライン・モードでオープンし、Oracle BIサマリー・アドバイザを使用するために必要な権限を持つ必要があります。
outputFile
は、集計指定スクリプトの出力の完全修飾パスおよびファイル名です。
tupleInQuotes
は、集計の永続性ターゲットです。完全修飾接続プール、完全修飾スキーマ名およびMB単位の容量を指定する必要があります。
password
は、userName
に対応するパスワードです。これを指定しないと、nQAggrAdvisor
を実行する際に、ユーザーがパスワードを求められます。
factFilter
は、ファクト・フィルタ・ファイル名です。ファクト・フィルタ・ファイルには、サマリー・アドバイザの推奨事項を生成する論理表の完全修飾名が含まれます。個々の論理ファクト表の完全修飾名を、別々の行に追加します。ファクト・フィルタを指定しないと、リポジトリ内のすべての論理ファクト表が分析に含まれます。
maxSizeAggr
は、集計のMB単位の最大サイズです。
gainThreshold
は、反復最適化アルゴリズムに新しい集計を追加する場合に、サマリー・アドバイザに必要なワークロード内で影響を受けるすべての問合せのパフォーマンス・ゲインが改善された割合の最少パーセンテージです。この値が満たされない場合、サマリ・アドバイザが停止します。デフォルト値は1
です。
minQueryTime
は、サマリー・アドバイザの実行に含まれる前に、各論理表ソースで必要な秒単位の最少の問合せ時間しきい値です。デフォルト値は0
です。
timeoutMinutes
は、結果を返すまでのサマリー・アドバイザの分単位の最長実行時間です。0
を指定すると、無制限になります。デフォルト値は0
です。
startDate
は、サマリー・アドバイザの実行に含める統計の開始日です。
endDate
は、サマリー・アドバイザの実行に含める統計の終了日です。
-C
は、オプティマイザの予測を使用するかどうかを指定します。on
またはoff
を指定します。デフォルトはoff
です。
-M
は、推奨事項にどのメジャーを含めるかを指定します。on
を指定して、ワークロードで使用中のメジャーを含めます。off
を選択すると、論理ファクト表内のすべてのメジャーがふくまれます。これには、サマリー・アドバイザで分析済のワークロードで使用されないメジャーも含まれます。デフォルトはoff
です。
-K
は、代用キーを使用するかどうか指定します。on
またはoff
を指定します。デフォルトはon
です。
例
次の例では、tupleInQuotes
パラメータを正常に指定する方法を示します。
nQAggrAdvisor -d "AnalyticsWeb" -u "Administrator" -p "ADMIN" -o "C:\temp\aggr_advisor.out.txt" -c "DW_Aggr"."Connection Pool","DW_Aggr".."AGGR",1000
次の例では、gainThreshold
、startDate
およびendDate
パラメータを正常に指定する方法を示します。
nQAggrAdvisor -d "AnalyticsWeb" -u "Administrator" -p "ADMIN" -o "C:\temp\aggr_advisor.out.txt" -F "C:\temp\fact_filter.txt" -g 10 -c "TimesTen_instance1"."Connection Pool","dbo",2000 -s "2011-05-02 08:00:00" -e "2011-05-07 18:30:00" -C on -M on -K off
集計の永続性ウィザードを使用してSQLファイルを作成すると、それを使用して集計表を作成およびロードし、それらをメタデータにマップできます。この結果作成されるSQLファイルは、実行中のOracle BIサーバーに対して実行する必要があります。
集計の永続性ウィザードは集計指定の生成時に必要な多くの制約を自動的に適用するため、このウィザードの使用を強くお薦めします。ただし、このウィザードを使用せずに、集計論理SQLを手動で記述することもできます。独自の集計指定を記述する場合は、「集計指定作成の手動での記述」に記載されているガイドラインに従ってください。
集計の永続性ウィザードを実行する前に、物理レイヤーに集計を作成する予定のターゲット・データベースをマップする必要があります。これを行うには、必要なデータベース、接続プールおよび物理スキーマ・オブジェクトを手動で作成します。
注意: Oracle Exalytics Machine上でOracle Business Intelligenceを実行している場合、集計の永続性ウィザードのかわりにサマリー・アドバイザ機能を使用して、問合せのパフォーマンスが向上するのはどの集計であるのか特定し、推奨集計を作成するスクリプトを生成できます。詳細は、「集計の問合せの候補を特定するためのOracle BIサマリー・アドバイザの使用方法」を参照してください。 |
集計の永続性ウィザードを使用するには:
モデル・チェック・マネージャを実行して、リポジトリに、集計の作成とパフォーマンスに影響を及ぼすモデリングの問題が含まれていないことを確認することをお薦めします。詳細は、「モデル・チェック・マネージャを使用したモデリングの問題のチェック」を参照してください。
注意: モデル・チェック・マネージャは、一部のチェックのためにバックエンドのデータ・ソースに対して問合せを実行するので、オフピーク時に実行することをお薦めします。また、大規模なリポジトリに対してモデル・チェック・マネージャを実行すると、長い時間がかかることがあります。パフォーマンスを向上させるには、「統計によるフィルタ処理」を使用するか(使用可能な場合)、選択したオブジェクトに対してのみモデル・チェック・マネージャを実行するようにしてください。 |
管理ツールでリポジトリを開きます(まだ開いていない場合)。
モデル・チェック・マネージャは、オンライン・モードで実行する必要があります。ただし、集計の永続性・ウィザードは、オンライン・モードでもオフライン・モードでも実行できます。
「ツール」→「ユーティリティ」→「集計の永続性」を選択し、「実行」をクリックします。
「ファイルの場所の選択」画面で、集計作成スクリプトの完全なパスおよびファイル名を指定します。新しいファイル名、既存のファイル名のいずれも指定することができます。
通常、Oracle BIサーバーに対してSQLスクリプトを実行する場合、DDLが作成され、それがターゲット・データベース・スキーマに対して実行され、集計表が作成されます。次に、ソースからそれらがロードされ、最後にOracle BIサーバーのメタデータが作成されます。これにより、集計ナビゲーション機能で新しい表が使用できるようになります。
また、Oracle BIサーバーのSQLスクリプトとは別のファイルにDDLを保存する場合は、ターゲットDDLを別のファイルに生成を選択することもできます。このオプションを選択すると、自動生成されたDDLを変更して、それをOracle BIサーバーから独立して実行することが可能になり、柔軟性が向上します。たとえば、記憶域パラメータや索引の設定を変更することができます。
別のファイルにターゲットDDLを生成を選択すると、2つのSQLスクリプトが「場所」フィールドに指定したディレクトリに生成されます。
集計作成スクリプト(script_name)
集計準備スクリプト(script_name_DDL)
別のファイルにターゲットDDLを生成を選択し、ウィザードのステップを完了した後は、一般的に次のように実行します。
サーバーに対して、集計準備スクリプトを実行します。このアクションによって、次の場所にDDLファイルが作成されます。
ORACLE_INSTANCE\bifoundation\OracleBIServerComponent\coreapplication_obisn\ aggr
生成されたDDLファイルをターゲット・データベースに対して実行し、表を作成します。
集計作成スクリプトを実行し、表に移入します。
「ファイルの場所の選択」画面でオプションの指定が完了したら、「次へ」をクリックします。
「ビジネス・メジャーの選択」画面で、集計するメジャーを選択します。これを行うには、上部ペインでビジネス・モデルを選択し、次に下部ペインで1つのファクト表またはメジャーのセットを選択します。複数のファクト表にまたがるメジャーを選択することはできません。複数のメジャーを選択するには、[Ctrl]キーを押しながらクリックします。連続する範囲のメジャーを選択するには、[Shift]キーを押しながらクリックします。
オプションとして、「「重複を除いた件数」メジャーをRAW値として永続化」を選択して、as_raw_values
句をすべての有効な重複しない件数メジャーに追加し、システム生成された集計論理表ソースへの対応する論理列に、集計式の上書きを設定します。このオプションを設定すると、集計の永続性は重複を除いた件数の実際の値を保存します。このオプションを選択しないと、集計の永続性は指定されたレベルの組合せに対するあらかじめ計算された件数を保存します。
最初の集計表ブロックの作成時には、「スクリプトの表示」ボタンは利用できないことに注意してください。
図13-2は、「ビジネス・メジャーの選択」画面を示しています。
適切なメジャーを選択したら、「次へ」をクリックします。
「レベルの選択」画面で、1つ以上のディメンションの論理レベルを選択することによって集計のレベルを指定します。ファクト-ディメンションの結合で使用される代理キーを指定することができます。
集計対象のファクト表とディメンション表の間のデフォルトの結合オプションは、選択した論理レベルに定義されている主キーです。このレベルの主キーが大きくて複雑である場合、ファクト表への結合はコストが高くなります。したがって、この場合は代理キーを使用することをお薦めします。代理キーは人工的に生成されたキーであり、通常は数字です。たとえば、レベル集計表内の代理キーはこの結合を簡素化させ、ファクト表から不要な(レベルの主キーの)列が削除されます。これにより、ファクト表は軽量化されます。
代理キーの使用によって変化するのは問合せの応答時間のみであり、問合せの論理的な結果に違いはありません。ただし、代理キーの生成によって集計表のロード時間が長くなるという副作用が生じる場合があります。したがって、推奨設定は次のようになります。
選択した論理レベルの主キーが単一の数値列である場合、通常は代理キーを使用するオプションは選択しません。なぜなら、これを選択してもパフォーマンス上のメリットはなく、ロード処理にかかる時間が増えるだけだからです。
選択した論理レベルの主キーがテキスト文字列であるか、または複数の論理列から構成されている場合は、この集計ディメンションに結合される問合せのパフォーマンスを向上させるため、通常は代理キーを使用します。ただし、代理キーの生成によって、その集計ディメンション表のロード時間が長くなる場合があることに注意してください。
代理キーの詳細は、「ディメンション集計表への代理キーの追加」を参照してください。
図13-3は、「レベルの選択」画面を示しています。
適切な集計レベルを選択したら、「次へ」をクリックします。
「接続プールの選択」画面で、集計表の場所を指定するための適切な項目を選択します。
デフォルトの集計表の名前が設定されており、表の名前に接頭辞が付加されています。生成されるファクト表のデフォルトの接頭辞はag
です。ディメンション(レベル)集計用に作成される表のデフォルトの接頭辞はSA_
であり、これはNQSConfig.INIのAGGREGATE_PREFIX
プロパティを更新することによって変更できます。構成設定の変更の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』を参照してください。
図13-4は、「接続プールの選択」画面を示しています。
接続プールの情報を設定したら、「次へ」をクリックします。
「終了」画面では、「スクリプトの表示」ボタンが利用可能になっており、論理SQLスクリプトを表示して確認することができます。別の集計を定義するか(デフォルト)、またはウィザードを終了するかを選択し、「次へ」をクリックします。
「スクリプトの終了」画面に、完全なパスとファイル名が表示されます。「終了」をクリックします。
SQLファイルを使用した集計表の作成の詳細は、「Oracle BIに対する集計指定の実行」を参照してください。
この項では、モデル・チェック・マネージャを使用して、Oracle BIサマリー・アドバイザと集計の永続性エンジンに影響を及ぼす可能性のあるモデリングの問題をチェックする方法について説明します。
この項には次のトピックが含まれます:
モデル・チェック・マネージャを使用して、Oracle BIサマリー・アドバイザと集計の永続性エンジンの正常な実行に影響を及ぼす可能性のある問題についてリポジトリ・メタデータをチェックできます。Oracle Business Intelligenceでは、これまで集計が作成できなかったいくつかの事項について、サマリー・アドバイザおよび集計の永続性による取り扱い方法が改善されています。詳細は、「集計の永続性の改善点」を参照してください。
モデル・チェック・マネージャの実行のユーザー・エクスペリエンスは、整合性チェック・マネージャの実行に非常によく似ていますが、これら2つのツールには、次のような3つの主な違いがあります。
モデル・チェック・マネージャは、整合性チェック・マネージャとは異なり、一部のチェックのために、サマリー統計表(「統計によるフィルタ処理」の使用時)およびバックエンドのデータ・ソースへのアクセスを必要とします。バックエンド問合せの一部は高負荷になる可能性があるため、モデル・チェック・マネージャはオフピーク時に実行することをお薦めします。
モデル・チェック・マネージャは、オンライン・モードでのみ実行できます。
モデル・チェック・マネージャは、リポジトリ・メタデータに何も変更を加えません。問題の可能性があることを示すフラグを設定するだけです。
モデル・チェック・マネージャは、整合性チェック・マネージャと同様に、エラー・メッセージと警告メッセージの両方を返します。モデル・チェック・マネージャによって特定されたエラーを修正する必要があります。そうしないと、Oracle BIサマリー・アドバイザによる推奨事項が正しくないものになったり、集計の永続性エンジンによる集計の作成が失敗したりすることがあります。警告を修正することをお薦めしますが、必須ではありません。警告で特定された問題は、Oracle BIサマリー・アドバイザによる推奨事項の的確性を損なったり、集計の永続性エンジンのパフォーマンスを低下させたりすることにつながります。
モデル・チェック・マネージャは、パフォーマンス改善のために、データベースに対してパラレル問合せを実行します。デフォルトでは、24個のスレッドが有効になっています。モデル・チェック・マネージャのデフォルトのスレッド数を変更するには、オペレーティング・システムの環境変数としてMODEL_CHECKER_MAX_THREADS
を作成し、設定します。指定可能な最大スレッド数は100です。
Oracle BIサマリー・アドバイザに対しては、Oracle BIサマリー・アドバイザ・ウィザードの実行前ではなく、サマリー・アドバイザ統計の収集後にモデル・チェック・マネージャを実行します。集計の永続性に対しては、集計の永続性・ウィザードの実行直前にモデル・チェック・マネージャを実行します。または、初期集計作成の失敗後、モデル・チェック・マネージャを実行して、選択したオブジェクトに関する問題を特定することができます。
管理ツールを使用してモデル・チェック・マネージャをグローバルに実行するには、「ファイル」メニュー→「モデルのチェック」を選択します。サブメニューから次のいずれかのオプションを選択します。
完全: Oracle BIリポジトリのビジネス・モデルとマッピング・レイヤーにあるすべてのオブジェクトをチェックします。
統計によるフィルタ処理: 統計表に従ってアクティブな問合せの対象となった、ビジネス・モデルとマッピング・レイヤーにあるファクト表オブジェクトおよび関連するディメンションのみをチェックします。大規模なリポジトリに対するプロセスを高速化するには、このオプションを選択します。
このオプションは、Oracle Exalytics Machineでのみ使用可能です。Exalytics以外のシステムで統計によるフィルタ処理を実行しようとしたり、統計表が使用可能でないときにフィルタ処理を実行しようとしたりすると、モデル・チェック・マネージャは統計によるフィルタ処理を行うことができないことを説明する警告が表示されます。
サマリー・アドバイザの統計表の設定の詳細は、後続のセクションを参照してください。
管理ツールを使用して選択したオブジェクトに対してモデル・チェック・マネージャを実行するには、1つまたは複数のビジネス・モデル、ディメンション・オブジェクトまたは論理ファクト表を右クリックし、「モデルのチェック」を選択します。そして、前述のように、サブメニューから「完全」または「統計によるフィルタ処理」を選択します。「統計によるフィルタ処理」メニュー・オプションは、ファクト表オブジェクトおよびビジネス・モデル・オブジェクトでのみ使用可能であることに注意してください。
大規模なリポジトリでモデル・チェック・マネージャを使用する場合、パフォーマンスを向上させるには、「統計によるフィルタ処理」を使用するか(使用可能な場合)、選択したオブジェクトに対してのみモデル・チェック・マネージャを実行することをお薦めします。
1つまたは複数のオブジェクトに対してモデル・チェック・マネージャを実行すると、図13-5に示されているように、「モデル・チェック・マネージャ」ダイアログが表示されます。
リポジトリを編集して問題を修正するには、行をダブルクリックして、そのオブジェクトのプロパティのダイアログを開くか、行を選択して「移動」をクリックします。問題を修正し、「OK」をクリックします。
「モデル・チェック・マネージャ」ダイアログで次のアクションを実行することもできます。
「表示」ボックスのオプションを使用して、エラーのみを表示する、警告のみを表示する、またはその両方を表示することを選択できます。
列のヘッダーをクリックして、メッセージの行をソートします。
モデル・チェック・マネージャの結果をテキスト、CSVまたはXML形式に保存するには、「名前を付けて保存」をクリックします。
メッセージをコピーして、スプレッドシートなどの他のファイルに貼付けできるようにするには、1つまたは複数の行を選択し、「コピー」をクリックします。行を選択せずに「コピー」をクリックすると、すべてのメッセージがコピーされます。
モデルを再度チェックするには、「全オブジェクトのチェック」をクリックしてグローバル・チェックを実行します。または、右上隅の「リフレッシュ」ボタンをクリックして、前回のチェックでエラーがあったオブジェクトのみをチェックします。
「オブジェクト」列でオブジェクトの修飾名を表示するには、「修飾名の表示」をクリックします。
ステータス・バーには、どのオブジェクトがチェックされたか、および表示されているすべての行のサマリーが表示されます。
Oracle BIサーバーのユーティリティvalidaterpd
を使用し、-L
オプションを指定して、コマンドラインからモデルをチェックすることができます。-L
を指定してこのユーティリティを実行すると、管理ツールでモデル・チェック・マネージャがチェックする場合と同様のモデル・チェックを実行できます。validaterpd
ユーティリティは、WindowsシステムとUNIXシステムの両方で使用できます。
モデル・チェック・モードでvalidaterpd
を実行するには、実行中のOracle BIサーバーのDSNを指定する必要があります。
validaterpd
の実行前に、bi-init
を実行して、適切に初期設定されたコマンド・プロンプトを起動する必要があります。詳細は、「Oracleインスタンスに初期化したシェル・ウィンドウを起動するためのbi-initの実行」を参照してください。
整合性チェック・モードでのvalidaterpdの実行の詳細は、「validaterpdユーティリティを使用したリポジトリの整合性チェック」を参照してください。
構文
validaterpd
ユーティリティは、モデル・チェック・モードで次のパラメータを取ります。
validaterpd -L -D DSN_name -U DSN_user_name [-P DSN_password] {-O output_txt_file_name |-C output_csv_file_name | -X output_xml_file_name} [-W] [-S] [-8]
説明:
-L:
モデル・チェック・モードを指定します。
-D:
実行中のOracle BIサーバーのDSN。
-U:
Oracle BIサーバーのDSNのユーザー名。
-P:
Oracle BIサーバーのDSNのパスワード。
パスワード引数はオプションです。パスワード引数を指定しなかった場合、コマンドの実行時にパスワードを入力するように求められます。セキュリティ違反のリスクを最小限に抑えるために、コマンド・ラインまたはスクリプトではパスワード引数を指定しないことをお薦めします。パスワード引数のサポートは下位互換性の保持を目的としており、将来のリリースでは削除される予定です。スクリプトのために、パスワードを標準入力によって渡すことができます。
-O:
結果をテキスト・ファイルで出力するには、このオプションを使用します。
-C:
結果をCSVファイルで出力するには、このオプションを使用します。
-X:
結果をXMLファイルで出力するには、このオプションを使用します。
-8:
UTF-8出力を指定するには、このオプションを使用します(オプション)。
-W:
オプションとして、ホワイトリストされたオブジェクト・ファイルを含めることができます。このテキスト・ファイルでは、チェックする必要のある論理オブジェクトの限定数が指定されます。各論理オブジェクトの完全修飾名を1行に入力します。-W
が指定されていない場合は、すべての論理オブジェクトがチェックされます。
-S:
統計表に従ってアクティブな問合せの対象となったオブジェクトのみをチェックするには、このオプションを使用します。-S
が指定されていない場合は、すべてのオブジェクトがチェックされます。-W
も同時に指定された場合、ホワイトリスト・ファイルにはビジネス・モデルと論理ファクト表のみが含まれます(その他のオブジェクトはチェックされません)。このオプションは、Oracle Exalytics Machineでのみ使用可能です。
例
validaterpd -L -D DSNName -U Username -O results.txt Give password: my_dsn_password
前出の例では、DSNName接続を使用してRPDに接続し、RPD内のすべてのモデルをチェックし、出力をresults.txtに書き込んでいます。
validaterpd -L -D DSNName -U Username -O results.txt -W whitelist.txt -S Give password: my_dsn_password
前出の例では、DSNName接続を使用してRPDに接続し、モデル・チェックを実行して、出力をresults.txtに書き込んでいます。whitelist.txtにリストされたオブジェクトのみがチェックされます。また、-Sが指定されているため、統計表に従ってアクティブな問合せの対象となったオブジェクトのみがチェックされます。
-Wと-Sを同時に指定した場合、ホワイトリストにはビジネス・モデルと論理ファクト表のみを含めることができます。その他のオブジェクトはチェックされません。
スクリプト・ファイルの作成に集計の永続性ウィザードを使用しないことを選択した場合、このファイルを手動で記述することができます。ただし、集計の永続性ウィザードを使用することをお薦めします。
集計の作成時にOracle BIサーバーによってデータベースが変更されるのを望まない場合は、集計の永続性ウィザードでターゲットDDLを別のファイルに生成オプションを選択することによって、それを指定することができます。集計の永続性ウィザードによって、空の集計表を作成するためのDDLファイル(集計準備スクリプト)が作成されます。この後、集計表にデータを移入するために、集計作成スクリプトを実行する必要があります。このオプションは、表作成のためのデータベースへのアクセスが制限されている場合に柔軟性を提供します。集計作成スクリプトを実行する前に集計準備スクリプトを実行する必要があることに注意してください。
この項には次のトピックが含まれます:
作成プロセス時には次の制約が課されます。
有効なメジャー。有効なメジャーは有効な集計ルールを持っている必要があります。レベルベース・メジャーには次の制約が適用されます。
レベルが総計のエイリアスである場合、その集計指定のレベルのリスト内にそのディメンションが存在してはいけません。
このメジャーに定義される他のすべてのレベルは、その集計指定のレベルのリスト内に存在している必要があります。
前述の制約が満たされない場合、集計指定全体が破棄されます。また、次のいずれかの条件に当てはまる場合、作成プロセスにおいてメジャーは無視されます。
メジャーがセッションまたはリポジトリ変数にマップされています。
メジャーが導出メジャーです。
メジャーにデフォルトの集計ルール(なし)が設定されています。
無視されたメジャーは、必ずしも集計指定に影響するとは限りません。集計の作成には残りのメジャーが使用されます。
有効なレベル。有効なレベルは有効な主キーを持つ必要があります。レベルが無効である場合、集計指定は破棄されます。また、次のいずれかの条件に当てはまる場合、レベルまたはその主キーの属性は無視されます。
属性がセッションまたはリポジトリ変数にマップされています。
属性が同一の論理表からのものではありません。
有効な集計指定。有効な集計指定は次のプロパティを持ちます。
名前の長さが1 - 18文字です(1文字、18文字も可)。
1つ以上の有効なレベルが指定されています。
1つ以上の有効なメジャーが指定されています。
有効な接続プールを持つ必要があります。
有効な出力コンテナを持つ必要があります(データベース/カタログ/スキーマ)。
接続プールとコンテナは同一のデータベースに属する必要があります。
各ディメンションに指定可能なレベルは1つのみです。
メジャーは同一のファクト表からのものでなくてはなりません。
指定内のすべての論理コンポーネントは、同一のサブジェクト・エリアのものでなくてはなりません。
レベルの集計はデータベース全体をスコープとするため、出力コンテナ内に同じ名前がすでに存在する場合、集計指定は無視されます。ただし、同一のファクト集計名に対して異なるカタログまたはスキーマが指定される場合、同一のデータベース内の別のスコープであれば、同じ名前の複数のファクトを持つことが許可されます。
ファクトに結合されていないディメンションが存在する場合、集計指定は破棄されることに注意してください。
すべてのメタデータの名前(論理ファクト列を除く)は完全修飾です。操作には、作成と削除の2つのモードがあります。すべての集計指定を1つの集計作成文に含めることを強くお薦めします。
集計指定を記述する際は、次のガイドラインに従ってください。
スクリプト・ファイルの最初にはDelete文を置きます。新しい集計を作成する前にシステムによって生成された集計を削除することが不可欠です。これにより、データの一貫性が保たれること、および作成操作の実行前に無効な集計や不完全な集計が削除されることが保証されます。集計を削除する文の構文は次のとおりです。
Delete aggregates [list of fully qualified physical table names];
例:
Delete aggregates "src".."INCR"."fact_1", "src".."INCR"."fact_2";
オプションで、削除する物理表のカンマ区切りリストを含めることができます。含める表は、集計作成スクリプトの前回の実行によってシステムで生成されたものである必要があります。リストされたファクト表に結合されているすべてのディメンション表も削除されます。
ディメンション表が複数のファクト表に結合されている場合、それは、他の結合されている表もリストされていないかぎり削除されません。
ファクト表に加えて、Delete文を使用して、孤立ディメンション表(他のどのファクト表にも結合されていないディメンション表)を削除することもできます。集計作成が失敗すると、孤立ディメンション表が発生することがあります。
削除文によって、時系列キーが集計の永続性に追加された際に、時間ディメンションの論理表に追加された論理キーおよび論理列も削除されます。
次にCreate文を配置します。集計を作成する文の構文は次のとおりです。
Create|Prepare aggregates aggr_name_1 for logical_fact_table_1 [(logical_fact_column_1, logical_fact_column_2, count_distinct_logical_fact_column_1 as_raw_values, ...)] at levels (level_1, level_2, …) using connection pool connection_pool_name_1 in schema_name_1 [ ,aggr_name_2 for logical_fact_table_3 [(logical_fact_column_5, logical_fact_column_2,…)] at levels (level_3, level_2, …) using connection pool connection_pool_name_2 in schema_name_2] ;
as_raw_values
は、単一の集計ルールを持つ重複しない件数のメジャーを伴っている必要があります。単一の集計ルールには、ルールが1つだけあり、ディメンション・ベースではありません。
1つの集計作成の文の中に複数の集計を指定する場合は、次のガイドラインに従ってください。
複数の集計指定はカンマで区切り、集計作成スクリプト全体の終わりにはセミコロンを入力します。
このファイルでは、集計削除文は先頭に1つのみ指定するようにします。1回のETLの実行で削除は1回のみ実行されるようにします(リセットが要求される場合を除く)。
注意: 初回以降に実行されるすべての集計スクリプトでは、集計削除文は含めないようにするか、または以前に作成したすべての集計を削除するようにしてください。 |
代理キーを使用する集計の作成は、次の項を参照してください。
ファクト表とレベル集計表との結合オプションのデフォルトでは、レベル集計の主キーが使用されます。このレベルの主キーが大きくて複雑である(多数の列で構成されている)場合、ファクト表への結合はコストが高くなります。代理キーは人工的に生成されたキーであり、通常は数字です。レベル集計表内の代理キーはこの結合を簡素化させ、ファクト表から不要な(レベルの主キーの)列が削除され、ファクト表のサイズが小さくなります。代理キーをディメンション(レベル)集計表に追加すると、ファクト表への結合を簡素化でき、問合せのパフォーマンスが向上することがあります。さらに、代理キーによって、各集計表が一意の識別子を持つようになります。
複数のファクト表間でレベルが共有される場合があります。この場合、あるファクトでは代理キーが使用され、別のファクトではディメンション集計の主キーがされる可能性があります。この状況を解決するためのいくつかのオプションを次に示します。
レベルに対して、代理キー、主キーのいずれが使用されるかを示すメタデータ・プロパティを設定します。
レベルの集計では常に代理キーを作成します(処理のコストは比較的低い)。ファクト集計をそれに結合する際に代理キーと主キーのいずれを使用するかについては、後で決定します。
各ディメンションに対して結合タイプを指定する方法の他に、スター全体で代理キーを使用するかどうかを指定する方法があります。これにより構文が簡潔になる場合がありますが、ユーザー・オプションの利用に制限が生じたり、集計作成プロセスの速度が低下したりすることがあります。
集計の作成/準備のための次の構文には、変更箇所[Using_Surrogate_Key]が含まれています。各レベルに代理キー・オプションを指定することができます。このオプションを指定しないと、ファクト表およびディメンション表は、レベル集計の主キーを使用して結合されます。
Create|Prepare aggregates aggr_name_1 [file output_file_name] for logical_fact_table_1 [(logical_fact_column_1, logical_fact_column_2,…)] at levels (level_1 [Using_Surrogate_Key], level_2, …) using connection pool connection_pool_name_1 in schema_name_1 [ ,aggr_name_2 for logical_fact_table_3 [(logical_fact_column_5, logical_fact_column_2,…)] at levels (level_3, level_2, …) using connection pool connection_pool_name_2 in schema_name_2] ;
現在のプロセスへの変更は、リポジトリおよびデータベース内の物理メタデータ・レイヤーに制限されています。
Using_Surrogate_Key
結合オプションを使用すると、次のような結果になります。
レベル集計の場合、次のようになります。
物理メタデータでは次のようになります。
レベル集計表は、levelName_upgradeID
SK
という名前の新しい列を持ちます(競合がチェックされます)。これは、ディメンション集計の代理キーの列です。全文字数が18文字を超える場合、levelName
は切り詰められることに注意してください。
データベースでは次のようになります。
レベル集計表は、levelName_upgradeID
SK
という名前の対応する列を持ちます。ここでも、全文字数が18文字を超える場合、levelName
は切り詰められます。
これはRCOUNT()
を使用してデータが設定されます。
ファクト集計の場合、次のようになります。
物理メタデータでは次のようになります。
ファクト集計表には、レベルの主キーの列は含まれません。
かわりに、レベル集計の代理キーに対応する新しい列が表に追加されます。
この列の型はレベルの代理キーと同じです。
この列の名前は、レベル集計の列の名前と同じです(競合がチェックされます)。
ファクト表とレベル表は、この代理キーのみを使用して結合されます。
データベースでは次のようになります。
ファクト集計表も対応する代理キーを持ちます。
移入を通じて利用可能な新機能を使用してデータを設定します。
この項では、Oracle BIサーバーに対して集計指定スクリプトを実行する方法を説明します。このスクリプトを実行する前に、Oracle BIサーバーに対してODBC DSNを作成し、適切なログ・レベルが設定されるようにする必要があります。その後、BI Administratorsグループのメンバーであるユーザーとして、nqcmd
を使用してこのスクリプトを実行できます。
集計指定スクリプトを実行する手順は、次のとおりです。
集計作成スクリプトを実行するには、クラスタ化DSNではなく実行中のOracle BIサーバーのDSNに直接接続する必要があります。次の点に注意してください。
単一ノード・クラスタ: 各Oracle BIサーバーのインストール時に作成されるDSNは、単一ノード・デプロイメントの場合でもデフォルトでクラスタ化されているため、集計指定を実行する対象となるOracle BIサーバーに対して手動でDSNを作成する必要があります。
複数ノード・クラスタ: マスターOracle BIサーバーに対して直接、集計指定を実行する必要があります。集計指定を実行する対象となるマスターOracle BIサーバーに対して非クラスタDSNを作成します。オンライン・モードで管理ツールの「クラスタ・マネージャ」を使用して、どのOracle BIサーバーがマスターであるのか判別できます。
Oracle BIサーバーのODBC DSNの作成方法の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionインテグレーターズ・ガイド』のOracle Business Intelligenceと他のクライアントとの統合に関する項を参照してください。
スクリプトを実行する前に、適切なロギング・レベルを設定することをお薦めします。ロギング・レベルを2以上にすると、nqquery.logにトレース・ログが記録されます。ログの対象となるイベントには、集計の実行計画や、集計の作成および削除の順序が含まれます。ロギング・レベルが高いほど、問合せおよび実行計画に関してより詳細な情報が提供されます。たとえば、実行される問合せを調べるには、ロギング・レベル4以上を指定します。ログ・レベルを1以上にすると、nqquery.logにエラー・ログが記録されます。また、nqserver.logにはログ・レベルに関係なくログが記録されます。
最初に、次のいずれかの方法を使用してロギング・レベルを設定します。
スクリプトを実行するユーザーのリポジトリ・ユーザー・オブジェクトでロギング・レベルを設定する。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の問合せログの管理に関する項を参照してください。
LOGLEVELシステム・セッション変数を作成して設定する。LOGLEVELによって、個別のユーザーに設定されているロギング・レベルが上書きされます。詳細は、「セッション変数の作成」を参照してください。
その後、集計作成スクリプトを直接編集し、各集計削除文または集計作成文のリクエスト変数としてロギング・レベルを設定する必要があります。例:
set variable LOGLEVEL=7 : delete aggregates; set variable LOGLEVEL=7 : create aggregates... ;
nqcmd
を使用してリクエスト変数を設定する場合は、デリミタとしてコロンを使用する必要があります。
BI Administratorsグループのユーザーとして、nqcmd
を使用して、ステップ1で作成したOracle BIサーバーの非クラスタDSNに接続します。その後、集計指定スクリプトを実行します。
nqcmdの実行の詳細は、「リポジトリのテストおよび絞込みのためのnqcmdの使用方法」
を参照してください。
注意: クラスタ化環境では、集計指定スクリプトは、バックグラウンドでスレーブOracle BIサーバーのローリング再起動を実行します。集計の永続性スクリプトの実行中は、Fusion Middleware Controlまたは構成ファイルで他の構成変更を行わないことをお薦めします。ローリング再起動ではスレーブ・サーバーのみが再起動されるため、マスターOracle BIサーバーに、スレーブOracle BIサーバーとは異なる構成設定のセットがロードされる状況になる場合があります。これが発生した場合、マスターOracle BIサーバーを再起動します。 |
SQLスクリプトを実行すると、Oracle BIサーバーのメタデータ内、およびバックエンド・データベース内に集計が作成され、永続化されます。
一連の集計が作成されるとき、1つの集計の作成が失敗すると、集計の永続性エンジンは、失敗した集計とその依存性の作成をスキップし、リストの次の集計に進むことに注意してください。
ログ・ファイルをチェックして、失敗した集計を特定します。孤立した集計ディメンション(他のどのファクト表にも結合していないもの)が作成された場合は、集計削除コマンドを使用してそれを削除します。
表 13-2は、様々なライフ・サイクル・ユースケースに対して集計を永続化するためのユーザー・タスクをまとめたものです。
これらのユース・ケースは、単一または複数の集計の永続性ターゲットに対する操作に焦点を当てており、単一または複数ノード・デプロイメントに対する操作を説明するものではありません。多くの部分において、ユーザー・タスクは、単一ノード・デプロイメントと複数ノード・デプロイメントの両方に対して同じです。唯一の違いは、クラスタ化デプロイメントでは、マスターOracle BIサーバーに接続する必要があり、スレーブ・サーバーのローリング再起動は、バックグラウンドで実行されることです。詳細は、「Oracle BIに対する集計指定の実行」を参照してください。
表13-2 集計の永続性のライフ・サイクル・ユースケース
番号 | ユースケース | 説明 |
---|---|---|
1 |
単一の集計の永続性ターゲットに対する集計の作成 |
集計の作成のみを実行するには、集計作成スクリプトを変更し、先頭の集計削除文を削除します。その後、 |
2 |
単一の集計の永続性ターゲットに対する集計の削除 |
集計を削除するには、
Delete aggregates [list of fully qualified physical fact table names];
例: Delete aggregates; または Delete aggregates "src".."INCR"."fact_1", "src".."INCR"."fact_2"; |
3 |
単一の集計の永続性ターゲットに対する集計のリフレッシュ |
かわりに、ユース・ケース2の説明に従って集計を手動で削除してから、ユース・ケース1に示すように集計を作成することもできます。この手動による方法は、すべての集計を削除するが、集計作成スクリプトでは特定の集計のみが削除されるように指定されている場合に便利です。 |
4 |
複数の冗長な集計の永続性ターゲットに対する集計の作成 |
複数のターゲット上に集計クローンを作成するには、集計作成スクリプトを変更し、集計作成文を、ターゲットの数だけコピーします。 たとえば、次の集計作成文を含むスクリプトがあるとします。 set variable LOGLEVEL=7 : create aggregates "myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt1"."cp" in "tgt1".."double1"; そのブロックをコピーし、それを最初のブロックの下に貼り付け、2番目のターゲット用に接続プールとスキーマ情報を変更します。例: set variable LOGLEVEL=7 : create aggregates "myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt2"."cp" in "tgt2".."double2"; すべてのターゲット用のブロックをコピーして変更したら、スクリプトを保存します。その後、 |
5 |
複数の集計の永続性ターゲットに対する集計の削除 |
複数のターゲット上の集計を削除するには、 set variable LOGLEVEL=7 : delete aggregates "tgt1".."double1"."myfactaggr"; set variable LOGLEVEL=7 : delete aggregates "tgt2".."double2"."myfactaggr"; |
6 |
複数の冗長な集計の永続性ターゲットに対する集計のリフレッシュ |
このユース・ケースの詳細は、「可用性の高い集計をリフレッシュするためのダブル・バッファリングの使用方法」を参照してください。 |
7 |
複数のパーティション化された集計の永続性ターゲットに対する集計のリフレッシュ |
場合によっては、様々な集計が複数のターゲットにわたってパーティション化されていることもあります。この手法は、メモリー使用量が最大になりますが、可用性の高い集計を提供しません。パーティション化された集計をリフレッシュするには、次の中からデプロイメントに合った方法を実行してください。
|
複数の集計の永続性ターゲットにわたる集計クローンがある場合、集計をリフレッシュする際はダブル・バッファリングを使用して停止時間を作らないようにできます。これを行うには、リフレッシュを制御するように集計作成および削除SQL文を手動でコールします。
始めに、最初のターゲット上の集計を削除します。次に、最初のターゲットで集計を作成し、非アクティブ・スキーマとして集計が削除されていないターゲットを指定し、リフレッシュで古いデータが使用されないようにします。その後、各ターゲットに対してこのプロセスを繰り返します。最後のターゲットをリフレッシュする際は、その時点までに他のスキーマのデータはすでにリフレッシュされているため、非アクティブ・スキーマを指定する必要はありません。
非アクティブ・スキーマを指定するには、集計作成文の前にリクエスト変数INACTIVE_SCHEMASを設定します。例:
set variable INACTIVE_SCHEMAS='"tgt2".."double2"' :
非アクティブ・スキーマとしてリフレッシュされていないスキーマのみ指定します。すでにリフレッシュ済または削除済のスキーマを指定しないでください。
複数の非アクティブ・スキーマを指定するには、カンマ区切りリストを使用します。リストに空白がないことを確認します。
例13-1は、2つのターゲット上で集計をリフレッシュするためのダブル・バッファリングの使用方法を示しています。
例13-1 2つのターゲット上の集計クローンのリフレッシュ
ターゲットtgt1とtgt2上に次の集計クローンがあるとします。
"myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt1"."cp" in "tgt1".."double1", "myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt2"."cp" in "tgt2".."double2";
リフレッシュ中に少なくとも1つの集計クローンを使用可能にするには、次の手順に従います。
次のようにして最初のターゲット上の集計クローンを削除します。
set variable LOGLEVEL=7 : delete aggregates "tgt1".."double1"."myfactaggr";
最初のターゲットの集計を作成し、2番目のターゲットを非アクティブ・スキーマとして指定して、そのデータがリフレッシュで使用されないようにします。
set variable LOGLEVEL=7, INACTIVE_SCHEMAS='"tgt2".."double2"' : create aggregates "myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt1"."cp" in "tgt1".."double1";
次のようにして2番目のターゲットの集計クローンを削除します。
set variable LOGLEVEL=7 : delete aggregates "tgt2".."double2"."myfactaggr";
2番目のターゲットの集計クローンを作成します。最初のターゲットはすでにリフレッシュされているめた、非アクティブ・スキーマは指定しないでください。
set variable LOGLEVEL=7 : create aggregates "myfactaggr" for "FACT_1"("MEASURE_1") at levels ("INCR"."DIM1_LEVEL1Dim"."DIM1_LEVEL1 Detail") using connection pool "tgt2"."cp" in "tgt2".."double2";
注意: 複数の集計の永続性ターゲットにまたがる集計クローンがある場合、追加のインスタンスが、初期インスタンスのリフレッシュ時に問合せの負荷を引き受けるホット・スペアとなります。集計クローンは、受信問合せのロード・バランシングでは使用されません。 |
この項では、TimesTenソースでの集計作成に関連する構成手順と機能について説明します。この項には次のトピックが含まれます:
Oracle Exalytics Machine上のTimesTenソースの設定の具体的な手順は、『Oracle Fusion Middleware Oracle Exalytics In-Memory Machineインストレーションおよび管理ガイド』も参照してください。
TimesTenソース上に集計を作成するには、そのインスタンスに対してPL/SQLが有効化されており、そのPL/SQLの最初の接続属性PLSQLが1に設定されていることを確認する必要があります。PL/SQLは、インストール時に有効にすることも、インストール後にttmodinstallユーティリティを実行して有効にすることもできます。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』を参照してください。
TimesTenの圧縮表で集計を作成する場合は、管理ツールで、「データベース」ダイアログの「機能」タブでデータベース機能COMPRESSED_COLUMNS
をオンにします。「機能」タブの使用方法の詳細は、「データ・ソースでサポートされるSQL機能の指定」を参照してください。
TimesTenのリリース11.2.2.3以降で集計を作成している場合は、次の機能を有効にしてパフォーマンスを改善することができます。
REDOロギングの無効化
パラレルでの索引作成
バックグラウンドでのデータベース・チェックポイントの実行
これらの機能を有効化するには、次の手順を実行します。
編集するためにopmn.xmlを開きます。opmn.xmlは次の場所にあります。
ORACLE_INSTANCE/config/OPMN/opmn/opmn.xml
Oracle BIサーバー・プロセスのias-componentタグを探します。例:
<ias-component id="coreapplication_obis1" inherit-environment="true>
<environment>サブタグの下で、次のTimesTen変数を更新します。
<variable id="ORACLE_BI_TT_DISABLE_REDO_LOGGING" value="1"/> <!-- This disables redo-logging, enabling faster creation of aggregates. '0' if you wish to disable this feature. --> <variable id="ORACLE_BI_TT_PARALLEL_INDEX_CREATION" value="1"/> <!-- This enables AggrPersist to create indexes in parallel, making creation of aggregates faster. '0' if you wish to create TimesTen indexes sequentially. --> <variable id="ORACLE_BI_TT_BACKGROUND_CHECKPOINT_INTERVAL" value="10"/> <!-- This changes how often TimesTen will flush its data to disk. If this element is missing, the default is every 10 seconds. If explicitly set, it will flush to disk every N seconds, 10 in this example. '0' will disable background flushing. Enabling background flushing speeds up creation of aggregates, by avoiding a large blocking flush at the end of the aggregate creation process. -->
ファイルを保存して閉じます。
OPMNを再起動します。
BIサーバー・プロセスを実行している各コンピュータで前述の手順を繰り返します。同じコンピュータで複数のBIサーバー・インスタンスを実行している場合は必ず、opmn.xmlで各インスタンスについてias-componentタグを適切に更新してください(例: ias-component id="coreapplication_obis1"、ias-component id="coreapplication_obis2")。
TimesTenのリリース11.2.2.5以降で集計を作成している場合は、パラレル挿入を有効にできます。パラレル挿入では、複数のスレッドを割り当てて単一表への行の挿入に対応します。この拡張により、TimesTenで集計を作成する際のパフォーマンスが向上します。前の手順に加えて、次の手順を実行します。
パラレル挿入機能を有効にする手順は、次のとおりです。
編集するためにopmn.xmlを開きます。opmn.xmlは次の場所にあります。
ORACLE_INSTANCE/config/OPMN/opmn/opmn.xml
Oracle BIサーバー・プロセスのias-componentタグを探します。例:
<ias-component id="coreapplication_obis1" inherit-environment="true>
<environment>サブタグの下で、次のTimesTen変数を更新します。
<variable id="ORACLE_BI_AGGR_PARALLEL_INSERT" value="ENABLE"/> <!-- This enables parallel insert using TimesTen's default thread count allocations, providing faster creation of aggregates. Set the value to an integer >=2 to specify a custom thread count for TimesTen. AggrPersist will request that TimesTen allocate the input number of threads for use in performing parallel inserts. If the number of thread counts exceeds TimesTen's maximum number, then TimesTen and AggrPersist will use the maximum number instead. --> <variable id="ORACLE_BI_AGGR_DIMENSION_TO_FACT_RATIO = 1:4"/> <!-- Optional. This specifies the ratio of threads to dedicate to a dimension table versus a fact table. Using a ratio allows thread allocation to scale to the size of the TimesTen ThreadPool. There is one thread pool per TimesTen connection pool. If this variable is omitted or is invalid, the value defaults to 1:4. Suppose you specifiy a 1:4 ratio and there is one Dimension and one Fact table in an Aggregate Persistence batch of tables. When a TimesTen Connection Pool's thread pool has 5 threads, then one Dimension table will have one thread and one Fact table will have four threads. And, when a TimesTen Connection Pool's thread pool has ten threads, then one Dimension table will have two threads and one Fact table will have eight threads. -->
ファイルを保存して閉じます。
OPMNを再起動します。
BIサーバー・プロセスを実行している各コンピュータで前述の手順を繰り返します。同じコンピュータで複数のBIサーバー・インスタンスを実行している場合は必ず、opmn.xmlで各インスタンスについてias-componentタグを適切に更新してください(例: ias-component id="coreapplication_obis1"、ias-component id="coreapplication_obis2")。
この項では、サマリー・アドバイザおよび集計の永続性プロセスのトラブルシューティング方法について説明します。内容は次のとおりです。
エラーが発生するいくつかの原因を次に示します。
ネットワークの障害
データベースのディスク容量不足
不正な集計のリクエスト
一連の集計の作成中に1つの集計の作成が失敗すると、集計の永続性エンジンは失敗した集計の作成とその依存関係をスキップし、リストでの次の集計に進みます。ログ・ファイルをチェックして、失敗した集計を特定します。
エラーが生じた場合は、次の方法のいずれかで失敗した集計を削除する必要があります。
メタデータとデータベースから手動で集計を削除します。集計メタデータを特定するには、物理表および論理表ソースに対してIs System Generatedフィルタを使用してリポジトリに問い合せします。詳細は、「リポジトリの問合せ」を参照してください。
集計削除指定を使用して失敗した集計を自動的に削除します。特に、この方法を使用して、孤立した集計ディメンション(他のどのファクト表とも結合していないもの)を削除します。
モデル・チェック・マネージャを実行して、リポジトリに、Oracle BIサマリー・アドバイザと集計の永続性のパフォーマンスと結果に影響を及ぼすモデリングの問題が含まれていないことを確認します。詳細は、「モデル・チェック・マネージャを使用したモデリングの問題のチェック」を参照してください。