Oracle Warehouse Builderには、単一論理モデルおよび複数の物理モデルをサポートする機能が用意されています。これにより、データ・ウェアハウスを設計して、複数のターゲット・システムに実装できます。さらに、Oracle Warehouse Builderは同じオブジェクト定義の複数の物理的に異なる実装をサポートしています。
この章では、Oracle Warehouse Builderの実装環境について説明します。オブジェクトの配布方法とETLロジックの実行方法についても説明します。
この章の内容は次のとおりです。
データ・ウェアハウスを設計した後、設計オブジェクトを配布および実行して、この設計をターゲット・スキーマに実装する必要があります。コントロール・センター・マネージャでは、配布および実行のすべての側面を表示および管理できる総合的な配布コンソールが提供されます。ここから、アクティブな「コントロール・センター」に格納されている情報にアクセスできます。
配布とは、Oracle Warehouse Builderワークスペースで定義された論理オブジェクトに従ってターゲット・ロケーションに物理オブジェクトを作成するプロセスです。ターゲット・スキーマを設計時に作成されたデータ・オブジェクトおよび定義済ETLオブジェクトは論理定義です。Oracle Warehouse Builderにより、ワークスペースにこれらのデータ・オブジェクトのメタデータが格納されます。これらのオブジェクトをターゲット・スキーマに物理的に作成するには、これらのオブジェクトを配布する必要があります。たとえば、デザイン・センターを使用して表を作成すると、この表のメタデータはワークスペースに格納されます。この表をターゲット・スキーマに物理的に作成するには、この表をターゲット・スキーマに配布する必要があります。
配布プロセスの一環として、Oracle Warehouse Builderはオブジェクトのスクリプトを検証および生成し、スクリプトをコントロール・センターに転送して、オブジェクトに関連付けられた配布アクションに対してスクリプトを起動します。オブジェクトは、プロジェクト・ナビゲータから、またはコントロール・センター・マネージャを使用して配布できます。
注意: オブジェクトを配布するたびに、Oracle Warehouse Builderでは、すべての設計オブジェクトに対するすべての変更がワークスペースに自動的に保存されます。プリファレンス」ダイアログ・ボックスの「コミットを要求」を選択すると、警告メッセージを表示できます。 |
配布できるのは、ユーザーにCOMPILE
権限があるオブジェクトのみです。デフォルトでは、ワークスペース内のすべてのオブジェクトに対してこの権限があります。ただし、ワークスペースの所有者が異なるセキュリティ・ポリシーを設定している場合があります。
注意: オブジェクトは常にOracle Warehouse Builderを使用して管理してください。配布した物理オブジェクトをSQLで手動で変更しないでください。そうしないと、論理オブジェクトと物理オブジェクトの同期がとれなくなり、予測できない結果を引き起こす可能性があります。 |
デザイン・センターで新しいオブジェクトを定義すると、オブジェクトはただちにコントロール・センター・マネージャの配布ロケーションの下にリストされます。オブジェクトにはそれぞれデフォルトの配布アクションがあり、この配布アクションは表示可能です。オブジェクトのデフォルト配布アクションは、オブジェクトの現在の設計ステータスと現在の配布ステータスの比較に基づいて決定されます。たとえば、まだ配布されていない表のデフォルト配布アクションは「作成」になります。以前に配布済の表のデフォルト・アクションは「アップグレード」になります。デフォルトを上書きするには、コントロール・センター・マネージャで別の配布アクションを選択します。
デフォルトは前回のアクションで設定され、オブジェクトのタイプによって異なります。
次の配布アクションがあります。
作成: ターゲット・ロケーションにオブジェクトを作成します。同じ名前のオブジェクトが存在する場合は、エラーが発生することがあります。たとえば、Oracle Warehouse Builderからオブジェクトが配布されていない場合にこのエラーが発生します。
アップグレード: 可能な場合、データを喪失することなくオブジェクトを変更します。アップグレード・アクションは元に戻して再実行できません。このアクションは、スケジュールなど、一部のオブジェクト・タイプには使用できません。
注意: コントロール・センターを使用して、DDLスクリプトにROW MOVEMENT 句を含む表をアップグレードすると、アップグレードは失敗します。
この問題を解決するには、表の行移動構成パラメータをNULLに設定してから、「アップグレード」アクションを使用して表を配布します。 |
削除: ターゲット・ロケーションからオブジェクトを削除します。
置換: オブジェクトを削除して、再度作成します。このアクションはアップグレードより早いですが、すべてのデータが削除されます。
オブジェクトを配布すると、Oracle Warehouse Builderによりオブジェクトに配布ステータスが割り当てられます。このステータスは配布の結果を表しています。配布ステータスはコントロール・センター・マネージャで表示できます。
配布ステータスは次のいずれかです。
未配布: オブジェクトがまだターゲット・スキーマに配布されていないことを示します。
正常終了: オブジェクトがターゲット・スキーマに正常に配布されたことを示します。
警告: オブジェクトの配布中に警告が生成されたことを示します。
失敗: オブジェクトの配布に失敗したことを示します。
MOLAPディメンション・オブジェクトを配布するには、ロケーションのバージョンとOracleモジュールの「PL/SQL生成モード」構成パラメータが設定されていることを確認します。キューブ編成のMVをサポートする11g AWを生成するには、ロケーション・バージョンは少なくとも11gR1以上、「PL/SQL生成モード」構成パラメータはデフォルトまたは11gリリース1以上である必要があります。
ETLオブジェクトにはマッピングとプロセス・フローが含まれています。マッピングまたはプロセス・フローの配布には、次の手順が含まれます。
必要に応じて、PL/SQL、SQL*LoaderまたはABAPスクリプトを生成します。
必要なロケーションを登録し、必要なコネクタを配布します。これにより、物理ロケーションとそのコネクタの詳細が実行時に利用可能になります。
PL/SQL、XPDL、SQL*LoaderまたはABAPのスクリプトをデザイン・センターからコントロール・センターに転送します。
Oracle Warehouse Builderプロセス・フローを正常にOracle Workflowに配布するには、『Oracle Warehouse Builderインストレーションおよび管理ガイド』の説明に従って、Oracle Workflowの正しいバージョンにアクセスします。
CTのマッピングまたはWebサービスを配布する前に、 「コントロール・センター・エージェント(CCA)の起動」の説明に従って、コントロール・センター・エージェントを起動する必要があります。
コード・テンプレートのマッピングまたはWebサービスを配布する手順は、次のとおりです。
.ear
ファイルを生成します。
.earファイルをコントロール・センター・エージェントに関連付けられたOC4Jサーバーに転送します。
スケジュールに関連付けられたETLオブジェクトに応じて、スケジュールをOracle DatabaseまたはConcurrent Managerに配布できます。
スケジュールの配布先のリモートのOracle WorkflowロケーションおよびリモートのOracle Warehouse Builder 10gロケーションの場合は、ターゲット・ロケーションにCREATE SYNONYM
システム権限があることを確認します。評価ロケーションが指定されている、または配布ロケーションがコントロール・センター・スキーマとは異なるデータベース・インスタンスを参照する場合は、配布ロケーションにはCREATE DATABASE LINK
システム権限が必要です。
マッピング、プロセス・フロー、変換、コード・テンプレートのマッピングおよびWebサービスなどのETLロジックを含むオブジェクトの場合、実行という追加ステップがあります。実行とは、配布済オブジェクトに定義されたETLロジックを実行するプロセスです。
通常、オブジェクトは配布されて複数回実行されます。オブジェクト定義が変更された場合は、オブジェクトを再配布する必要があります。たとえば、定義後マッピングを配布するとします。マッピングは特定の間隔(日次または週次)で実行するようにスケジュールできます。マッピング定義が変更されると、マッピングを再配布する必要があります。
たとえば、表からデータを取り出し、ソース・データ上で変換し、ターゲット表にロードするマッピングを定義するとします。このマッピングを配布すると、このマッピングに生成されたPL/SQLコードはターゲット・スキーマに格納されます。このマッピングを実行すると、ETLロジックが実行され、データがソース表から取得されて変換され、ターゲット表にロードされます。
もう1つの例は、表内のデータが表に定義されたデータ・ルールと一致するかどうかを確認するWebサービスの定義例です。Webサービスを配布すると、Webサービスに生成された.ear
ファイルがコントロール・センター・エージェントに転送されます。Webサービスを実行すると、Webサービスで定義されたETLロジックが実行され、表内のデータが表で定義されたデータ・ルールに違反していないかを検証するチェックが実行されます。
Oracle Warehouse Builderでは、オブジェクトの論理設計が配布の物理詳細から分離されています。この分離は、構成パラメータに物理詳細を格納することによって実現します。名前付きの構成と呼ばれるオブジェクトには、すべての構成設定が格納されます。名前付きの構成を使用して、同じ設計の異なるシステム(開発、本番、テスト)に対して、異なる物理パラメータを実装します。これにより、開発環境からテスト環境、さらに本番環境にOracle Warehouse Builderアプリケーションを容易に移動することができます。たとえば、開発システムで、NOPARALLELとしてパラレル設定を指定できます。本番システムでは、パラレル設定にはPARALLELを指定し、16程度の値に設定できます。
各配布ロケーションに、それぞれオブジェクト・パラメータの設定が異なる名前付き構成を作成できます。各名前付き構成は1つのコントロール・センターとのみ関連付けられます。
関連項目: 複数構成の作成の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。 |
プロジェクトに複数の構成を作成すると、各構成のオブジェクトに異なる構成パラメータを設定できます。常に、この構成の1つのみがアクティブ化され、アクティブ構成と呼ばれます。たとえば、PROD_CONFIG
、DEV_CONFIG
およびQA_CONFIG
の3つの構成があるとします。表SALES_TAB
には、3つの構成のそれぞれに異なる構成パラメータを設定できます。
関連項目: 複数構成の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。 |
オブジェクトを右クリックし、「構成」を選択すると、アクティブ構成のオブジェクトの構成パラメータが新しい「構成」タブに表示されます。ツールバーの構成リストを使用して異なる構成を選択してアクティブ構成を変更すると、新しくアクティブ化された構成の構成パラメータが既存の構成パラメータの右に示されます。
プロジェクトの他の構成の構成パラメータは、「構成」タブの上に表示されるツールバーの「構成列の管理」をクリックすると表示できます。「構成の選択」ダイアログ・ボックスが表示されます。このダイアログボックスには、プロジェクト内で定義されたすべての構成が示されます。「構成」タブに構成パラメータを表示する構成を選択し、「OK」をクリックします。選択した構成のパラメータが、現在の構成パラメータに隣接して表示されます。
異なる構成の構成プロパティは、「構成」タブの上に表示されるツールバーの「違いをハイライト表示」をクリックすると比較できます。Oracle Warehouse Builderでは、選択した様々な構成で設定が異なる構成パラメータがハイライト表示されます。これにより、各構成内のオブジェクトの構成設定を比較できます。
「構成」タブから特定の構成の構成パラメータを削除するには、「構成列の管理」をクリックします。表示される「構成の選択」ダイアログボックスで、「構成」タブから設定を削除する構成の選択を解除し、「OK」をクリックします。
アクティブな構成の構成パラメータのセットは常に「構成」タブに表示され、このセットは削除できません。
データ・システムのライフサイクルでは、一般に次の手順を実行して配布プロセスでシステムを作成し、実行プロセスでデータをシステムに移動します。
ツールバーの構成リストから、オブジェクト設定および使用するコントロール・センターが指定された名前付きの構成を選択します。
データ・オブジェクトとETLオブジェクトをターゲット・ロケーションへ配布します。個別に配布、1つずつ順に配布、すべて一度に配布のいずれも可能です。
オブジェクトの配布の詳細は、「オブジェクトの配布」を参照してください。
配布結果を確認します。オブジェクトを配布できなかった場合は、問題を修正し、再度配布します。
配布結果の詳細は、「配布結果の確認」を参照してください。
マッピング、プロセス・フローなどの実行可能オブジェクトの場合は、ETLプロセスをただちに開始、または後で実行をスケジュールすることもできます。
ETLプロセスの開始の詳細は、「ETLジョブの開始」を参照してください。
ETLオブジェクトのスケジューリングの詳細は、 「ETLジョブのスケジュール を参照してください。
ユーザーの要求やソース・データの変更などにあわせて、ターゲット・オブジェクトの設計を変更します。
変更したオブジェクトの配布アクションを「アップグレード」または「置換」に設定します。
配布アクションの詳細は、「配布アクションについて」を参照してください。
手順1から4を繰返します。
注意: Oracle Warehouse Builderでは、配布前に、ワークスペースに対するすべての変更が自動的に保存されます。 |
オブジェクトは、プロジェクト・ナビゲータまたはコントロール・センター・マネージャを使用して配布できます。プロジェクト・エクスプローラからの配布は、デフォルト・アクションに制限されており、作成」、「置換」、「削除」または「更新」に設定されている可能性があります。デフォルト・アクションは、最後に配布されてからのオブジェクト設計への変更内容によって決定します。デフォルト・アクションを上書きするには、配布プロセスを完全に制御するコントロール・センター・マネージャを使用します。
ETLオブジェクトを配布したら、 「ETLジョブの開始」の説明に従って、ETLオブジェクトで定義されたETL操作を実行するスクリプトを明示的に起動する必要があります。
コントロール・センター・マネージャを使用してオブジェクトを配布すると、Oracle Warehouse Builderによって配布するオブジェクトのすべての依存オブジェクトが自動的に配布されます。
注意: コントロール・センター・マネージャの動作は、「プリファレンス」ダイアログ・ボックスの多数の設定によって制御されます。実際の配布プロセスは、追加の設定によって制御されます。ツールメニューの、「プリファレンス」をクリックします。「コントロール・センター・モニター」および「配布」の下に、設定がリストされます。設定の説明は、「ヘルプ」をクリックしてください。 |
コントロール・センター・マネージャを使用したオブジェクトの配布手順
プロジェクト・ナビゲータで、配布するオブジェクトが含まれるプロジェクトを開きます。
「ツール」メニューから「コントロール・センター・マネージャ」を選択します。
プロジェクトの構成をアクティブにするために、コントロール・センターにアクセス権を付与するコントロール・センター・マネージャが表示されます。このメニューを選択できない場合は、適切な名前付きの構成およびコントロール・センターがアクティブであることを確認します。
関連項目: 構成の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。 |
リレーショナルまたはROLAPディメンジョン・オブジェクトを配布する場合は、これらのオブジェクトの実装詳細が指定されていることを確認します。これはバインドすることによって指定できます。
詳細は、「ディメンジョン・オブジェクトのリレーショナル実装」および「ディメンジョン・オブジェクトのROLAP実装」を参照してください。
(オプション)コード・テンプレートのマッピングまたはWebサービスを配布する場合は、 「コントロール・センター・エージェント(CCA)の起動」の説明に従って、コントロール・センター・エージェントを起動します。
コントロール・センター・マネージャのナビゲーション・ツリーで、配布するオブジェクトが含まれるロケーション・ノードを展開します。
配布するオブジェクトを選択します。
複数のオブジェクトを選択する場合は、[Ctrl]キーを押したままにして複数のオブジェクトを選択します。
ノードを選択すると、特定のノードに含まれるすべてのオブジェクトを配布できます。たとえば、特定のモジュールにあるすべての表を配布するには、そのモジュールの表ノードを選択します。モジュール内のすべのオブジェクトを配布するには、モジュールを選択します。
「オブジェクトの詳細」パネルの「詳細」タブで、選択したオブジェクトの配布アクションを設定します。
デフォルト配布アクションを使用して選択したオブジェクトを配布するには、「詳細」タブで、デフォルト・アクション」をクリックします。
選択したオブジェクトを配布します。
オブジェクトをコントロール・センター・マネージャに配布するには、ツールバーの「配布」をクリックします。
オブジェクトをローカル・ファイルへ配布するには、「ファイル」メニューから、 「配布」、「ファイルへ」の順に選択します。ファイルを保存するディレクトリを選択し、ファイルに名前を付けます。
注意: ローカル・ファイルへの配布オプションを使用すると、指定したディレクトリにファイルが作成されます。このファイルのファイル権限はOracle所有者に設定されます。ファイルを読み取るには、ファイルに対する権限を変更する必要があります。 |
プロジェクト・ナビゲータを使用してオブジェクトを配布する場合、使用される配布アクションはOracle Warehouse Builderで設定されたデフォルト・アクションです。デフォルト配布アクションの詳細は、「配布アクションについて」を参照してください。
オブジェクトを配布する前に、オブジェクトが正常に生成されていることを確認します。ターゲット・スキーマにオブジェクトを作成するために必要なコードは生成すると作成されます。
プロジェクト・ナビゲータを使用したオブジェクトの配布手順
プロジェクト・ナビゲータで、プロジェクトを展開してから配布するオブジェクトが含まれるモジュールを展開します。
配布するオブジェクトのすべての依存オブジェクトが正常に配布されていることを確認します。
たとえば、リレーショナル・ディメンジョンを配布する前に、ディメンジョンの実装詳細を格納する表と、サロゲート識別子の生成に使用する順序がすべて配布されていることを確認します。プロセス・フローを配布する場合は、プロセス・フローで使用するすべのマッピングまたは変換が正常に配布されていることを確認します。
リレーショナルまたはROLAPディメンジョン・オブジェクトを配布する場合は、これらのオブジェクトの実装詳細が指定されていることを確認します。これはバインドすることによって指定できます。
詳細は、「ディメンジョン・オブジェクトのリレーショナル実装」および「ディメンジョン・オブジェクトのROLAP実装」を参照してください。
コード・テンプレートのマッピングまたはWebサービスを配布する場合は、 「コントロール・センター・エージェント(CCA)の起動」の説明に従って、コントロール・センター・エージェントを起動します。
配布するオブジェクトを選択し、ツールバーの「配布」をクリックします。
または
配布するオブジェクトを選択してから、メニューから「配布」をクリックします。
複数のオブジェクトを選択するには、オブジェクトの選択時に[Ctrl]キーを押したままにします。
配布が完了すると、「ログ」ウィンドウに新しいタブが開き、各配布の詳細が表示されます。
設計オブジェクトを定義するスキーマと異なるターゲット・システムに設計オブジェクトを配布する場合は、次の追加手順を実行する必要があります。
ターゲット・システムにOracle Warehouse Builderをインストールします。
リポジトリ・アシスタントを使用して、ターゲット・スキーマ用のワークスペースとリポジトリ・ユーザーを作成します。
グローバル・ナビゲータで、新しい構成とその構成を使用する新しいコントロール・センターを作成します。コントロール・センターはターゲット・システムに作成したワークスペースに対応している必要があります。
新しく作成した構成をデフォルト構成として設定します。
リモート・ターゲット・スキーマに対応するロケーションを作成します。
設計とETLオブジェクトを配布します。
オブジェクトを配布すると、配布結果を確認して配布ステータスをチェックできます。オブジェクトが正常に配布されなかった場合は、配布に生成されたエラー・メッセージを表示できます。
コントロール・センター・マネージャを使用して配布されたオブジェクトの配布結果の表示
コントロール・センター・マネージャを使用してオブジェクトを配布すると、「コントロール・センター・ジョブ」パネルの「ステータス」列を使用してジョブの進行状況を監視できます。ジョブが完了すると、オブジェクトの新しい配布ステータスが「詳細」タブに表示されます。結果を確認し、スクリプトを表示できます。
配布されたスクリプトを表示する手順は、次のとおりです。
コントロール・センター・マネージャの「コントロール・センター・ジョブ」パネルで、配布済スクリプトを表示する配布に関連するジョブをダブルクリックします。
選択したジョブの「ジョブ詳細」ウィンドウが表示されます。このウィンドウには、配布中に発生したエラーの詳細が表示されます。
「ジョブ詳細」ウィンドウで、ナビゲーション・ツリーのオブジェクトを選択します。
「スクリプト」タブで、スクリプトを選択して「コードの表示」をクリックするか、スクリプト名をダブルクリックします。
プロジェクト・ナビゲータを使用して配布されたオブジェクトの配布結果の表示
プロジェクト・ナビゲータを使用してオブジェクトを配布すると、各配布の「ログ」ウィンドウに新しいタブが表示されます。このタブには、オブジェクト名と配布ステータスを含めたノード・ツリーが含まれています。ノードを展開して、次のノードを表示します。
検証: 展開するとオブジェクトの検証メッセージが表示されます。
スクリプト: 展開するとオブジェクトに生成されたスクリプトが表示されます。
配布: 展開すると配布ステータスが表示されます。配布中に発生したエラーの詳細がここにリストされます。PL/SQLマッピングを配布する場合は、 パッケージの本体またはパッケージ仕様にエラーが発生したかどうかの情報も含まれます。
配布されたスクリプトを表示する手順は、次のとおりです。
「ログ」ウィンドウで、表示する配布済スクリプトの配布関連のタブを選択します。
オブジェクト名が表示されているノード、スクリプト・ノードの順に展開します。
配布に使用されたスクリプトがスクリプト・ノードの下にリストされます。
表示するスクリプトをダブルクリックします。
「ドキュメント」ウィンドウに、生成されたコードを含む新しいタブが開きます。このタブには、ソース、仕様、本体の各サブタブが含まれています。仕様サブタブにはパッケージ仕様が、本体サブタブにはパッケージ本体が含まれています。
オブジェクトの配布に失敗すると、仕様および本体の各サブタブを使用してエラーが発生したコードを表示できます。
ETLとは、ソース・ロケーションからデータを抽出し、マッピングで定義されたように変換し、ターゲット・オブジェクトにロードするプロセスです。マッピング、プロセス・フローまたはデータ監査の実行を開始するときは、データをジョブとしてOracle Warehouse Builderジョブ・キューに送信します。ジョブはただちに開始、またはスケジュールを作成し使用している場合はスケジュールした時間に開始できます。スケジュールの詳細は、「スケジュールの定義」を参照してください。
配布と同様に、プロジェクト・ナビゲータまたはコントロール・センター・マネージャからマッピング、プロセス・フローまたはデータ監査を実行できます。また、SQLスクリプトを実行するOracle Warehouse Builder外部のツールを使用して、これらのジョブを開始することもできます。
マッピング、プロセス・フロー、またはデータ監査の起動手順は、次のとおりです。
オブジェクトの配布(必要な場合)
オブジェクトの配布の詳細は、「オブジェクトの配布」を参照してください。
プロジェクト・ナビゲータまたはコントロール・センター・マネージャを使用したオブジェクトの実行は、次の項で説明します。
プロジェクト・ナビゲータからETLを開始する手順は、次のとおりです。
マッピングまたはプロセス・フローを選択して、「ファイル」メニューから「開始」を選択します。
実行(開始)するETLオブジェクトごとに、実行ログを含む新しいタブが「ログ」ウィンドウに表示されます。タブ・タイトルは、オブジェクト名のあとにジョブIDが付きます。このタブを使用して、実行ステータスを監視および実行結果を表示します。
コード・テンプレート・マッピングやWebサービスなど、コントロール・センター・エージェントを使用するオブジェクトを実行すると、ジョブのログ・ファイルがOWB_HOME
/owb/jrt/log/jrt/job
job_id
/log.xml
ディレクトリ・パスに格納されます。このディレクトリ・パスで、job_id
は実行されたジョブのIDです。このログ・ファイルを使用して、配布中およびコード・テンプレートのマッピングまたはWebサービス実行中に発生するエラーを解決します。
コントロール・センター・マネージャからETLを開始する手順は、次のとおりです。
マッピングまたはプロセス・フローを選択して、ツールバーの「開始」をクリックします。
または、マッピングまたはプロセス・フローを選択して、「ファイル」メニューから「開始」を選択することもできます。
Webサービス実行の詳細は、「Webサービスの実行」を参照してください。
ETLオブジェクトを実行すると、Oracle Warehouse Builderの「ログ」ウィンドウのタブに実行結果が表示されます。別のタブを使用すると、各ETLジョブの実行結果が表示されます。
実行結果には、ETLジョブに関する詳細情報が含まれています。情報は、実行結果タブの次の列を使用して表示されます。
選択済行: ETLジョブ中にソース・オブジェクトから選択された行数を表します。
挿入済行: ETLジョブ中にターゲット・オブジェクトに挿入された行数を表します。
更新済行: ETLジョブの一環として更新されたターゲット・オブジェクト内の行数を表します。
削除済行: ETLジョブ中にターゲット・オブジェクトから削除された行数を表します。
エラー: ETLジョブ実行中に発生したエラー数を表します。
警告: ETLジョブ実行中に発生した警告数を表します。
開始時間: ETLジョブが開始された時間を表します。
経過時間: ETLジョブ完了までの時間を表します。
実行結果タブのアイコン
実行結果タブの上のアイコンを使用すると、タブ上に表示する情報を選択できます。表12-1は、アイコンとその用途を示したものです。
表12-1 実行結果タブのアイコン
アイコン | 名前 | 説明 |
---|---|---|
警告を表示 |
ETLジョブ実行中に発生する警告を実行結果タブにリストします。切替え可能です。 |
|
エラーを表示 |
ETLジョブ実行中に発生するエラーを実行結果タブにリストします。切替え可能です。 |
|
パラメータを表示 |
ETLジョブ実行中に使用されるパラメータ値をリストします。パラメータはパラメータ・ノードの下にリストされます。 |
|
ジョブの停止 |
現在実行中のETLジョブの実行を停止します。このアイコンは、実行が完了または開始していない場合は無効化されます。 |
|
ソースに移動 |
現在実行中のETLオブジェクトのエディタが表示されます。 |
|
詳細の表示 |
実行詳細ダイアログボックスが表示されます。 |
ETLジョブのリターン・ステータス
完了した各ETLジョブのリターン・ステータスは、次の値のいずれかになります。
ETLを完了した後は、Oracle Warehouse Builder内のデータ・オブジェクトを確認し、結果が期待どおりであることを簡単に検証できます。
データ・オブジェクトに格納されているデータの表示手順:
プロジェクト・ナビゲータで、オブジェクトを右クリックし、「データ」を選択します。「データ・ビューア」が開き、オブジェクトの内容が表示されます。
ETLのスケジュールには、次のいずれかの方法を使用できます。
スケジューラを使用します。
「スケジュールの定義」を参照してください。
PL/SQLパッケージDBMS_SCHEDULER
PL/SQLを使用して、Oracle Databaseスケジューラを使用します。
DBMS_SCHEDULER
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
サード・パーティのスケジュール・ツールの使用
コントロール・センター・マネージャを使用してオブジェクトを実行する以外に、SQL*Plusを使用できます。Oracle Warehouse Builderに同梱されたsqlplus_exec_template
という名前のスクリプトを使用します。または、sqlplus_exec_background_template
を使用してバックグラウンドでジョブを実行します。
SQLPLUS_EXEC_TEMPLATE
スクリプトをSQL*Plusで実行するには、次の手順に従います。
デザイン・センターの「ツール」メニューから、SQL*Plusを選択します。
「SQL*Plus」パネルが表示されます。
リポジトリ所有者ではなくOracle Warehouse Builderユーザーとして接続します。
次のような構文を使用して、スクリプトを起動します。
@%OWB_HOME
%\owb\rtp\sql\sqlplus_exec_template MY_RUNTIME MY_WAREHOUSE PLSQL
MY_MAPPING "," ","
Oracle Warehouse Builderには、SQLスクリプトを使用して配布ジョブ、実行ジョブ、コントロール・センターを管理できるように多くのSQLスクリプトがインストールされています。これらのスクリプトは、OWB_HOME
/owb/rtp/sql
ディレクトリにあります。これらのスクリプトにあるコメントは、その使用方法の説明です。
関連項目: これらのスクリプトの使用の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。 |
シナリオ
数か月間本番状態にあるデータ・ウェアハウスの管理を担当しているとします。データ・ウェアハウスは、人事管理(HR
)およびオーダー・エントリ(OE
)という2つのソース・スキーマを使用して作成され、ウェアハウス(WH
)ターゲット・スキーマにロードされました。最近、HR
およびOE
スキーマの表に2つの変更がされたことがわかりました。WH
スキーマを更新して、これらの変更を反映する必要があります。
変更#1: 最初の変更はHR
スキーマの変更でした。REGIONS
表のREGION_NAME
列の長さが25文字から100文字に変更されました。
図12-1は、REGIONS
表の変更を示したものです。
変更#2: 2つ目の変更はOE
スキーマの変更でした。LOT_SIZE_NUMBER
という行が、データ型NUMBER、精度8、スケール0でORDER_ITEMS
表に追加されました。
図12-2は、変更されたORDER_ITEMS表を示しています。
解決策
WH
スキーマを更新するには、まずこれらの変更の影響を測定してから、ターゲット・スキーマの更新プランを作成して実行する必要があります。次の手順は、実行する必要がある概要を示したものです。
手順1: 変更されたソース・オブジェクトの識別
手順2: 変更による影響の測定
手順3: 変更されたオブジェクトの再インポート
手順4: データ・フロー内のオブジェクトの更新
手順5: ターゲット・スキーマの再設計
手順6: 再配布スクリプト
手順7: 新規ETLロジックのテスト
手順8: Discoverer EULの更新
手順9: ETLロジックの実行
事例
手順1: 変更されたソース・オブジェクトの識別
データ・ウェアハウスに変更分を反映する最初の手順は、ソース・オブジェクト内の変更を識別することです。ソース・オブジェクトが変更されたことを通知できるプロシージャまたはシステムが配備されている必要があります。
このシナリオでは、HR
およびOE
スキーマを管理するグループが、オブジェクトの一部が変更されたことを通知してきました。最初の変更はHR
スキーマの変更でした。より長い名前に対応できるように、REGION_NAME
列が25文字から100文字に拡張されました。2番目の変更はOE
スキーマの変更でした。LOT_SIZE_NUMBER
列が追加され、WH
スキーマに統合する必要があります。
手順2: 変更による影響の測定
変更を識別した後、ターゲット・スキーマに対する影響を測定する必要があります。
HR
スキーマへの変更1については、依存オブジェクトをすべて更新する必要があります。そのためには、REGIONS
表を再インポートしてから、REGION_NAME
列を使用するオブジェクトを更新する必要があります。依存オブジェクトを識別するには、影響分析ダイアグラムを使用できます。この表を使用するマッピングも更新する必要があります。
OE
スキーマの変更2については、 表の再インポートおよびマッピングの更新に加えて、新しい列をWH
スキーマに統合する方法を見つける必要があります。売上の1つの単位内の部品または項目の数の動向を追跡するために列が追加されたため、WH
スキーマのWH
sキューブにNUMBER_OF_IND_UNITS
というメジャーを追加し、このメジャーを各オーダーに割り当てます。続いて、この新しい列を SALES
キューブに接続する必要があります。
手順3: 変更されたオブジェクトの再インポート
2つのソース・オブジェクトが変更されているので、ワークスペースにメタデータ定義を再インポートする必要があります。ナビゲーション・ツリーからHR
スキーマ内のREGIONS
表およびOE
スキーマ内のORDER_ITEMS
表の両方を選択し、メタデータのインポート・ウィザードを使用して定義を再インポートします。
Oracle Warehouse Builderにより、これが更新であることが自動的に検知され、変更された定義の更新のみが実行されます。インポート・プロセスの後に表示される「インポート結果」ダイアログ・ボックスに、同期化の詳細が表示されます。「OK」をクリックし、インポートを続行してワークスペースへ変更をコミットします。インポートを中断する場合は、「元に戻す」をクリックします。
手順4: データ・フロー内のオブジェクトの更新
HR
スキーマ内の変更1のように、ソース・オブジェクト内の変更により既存のオブジェクトおよび属性のみが変更された場合は、影響分析ダイアグラムを使用して調整する必要のあるオブジェクトを識別します。
このシナリオでは、データのロードが適切に続行されることを確実にするために、REGIONS
表に応じて異なるすべてのオブジェクト内の列の長さを調整する必要があります。
データ・フロー内のオブジェクトの更新手順:
ナビゲーション・ツリーからHR
スキーマ内のREGIONS
表を選択します。「表示」を選択してから、「影響」をクリックします。
ドキュメント・エディタに影響分析ダイアログを含む新しいタブが表示されます。これにより、REGIONS
表の影響を受けるオブジェクトはWH
スキーマ内のCUSTOMER
ディメンジョンのみであることがわかります。
この手順では、リポジトリ・ブラウザを設定しておくことが必要です。この設定方法の詳細は、『Oracle Warehouse Builderインストレーションおよび管理ガイド』を参照してください。
ディメンジョン・エディタ内のCUSTOMER
ディメンションを開き、リージョン名レベル属性を文字長100に更新します。
ソースをターゲットに接続するMAP_CUSTOMER
マッピングを開きます。REGIONS
Table演算子およびCUSTOMER
Dimension演算子の両方については、データ・オブジェクトからマッピング演算子へのインバンド同期化を実行します。
マッピング演算子は、マッピング・オブジェクトと同期される必要があり、マッピング・オブジェクトは更新されたオブジェクトに基づいてコードを生成するために示されます。
これで、変更1に関連付けられたメタデータの更新は完了です。
変更2では新しい列が追加されたため、変更1の場合のようにデータ・フローを更新する必要はありません。ORDER_ITEMS
Table演算子を使用するすべてのマッピングに対して、必ずインバウンド同期化を実行します。ORDER_ITEMS
表の影響分析ダイアグラムから、影響を受けるのはマッピングMAP_SALES
のみであることがわかります。
手順5: ターゲット・スキーマの再設計
変更2では、新しいLOT_SIZE_NUMBER
列がORDER_ITEMS
表に追加されたため、WH
ターゲット・スキーマを再設計してこの新しいデータをキューブに取り込む必要があります。その場合は、NUMBER_OF_IND_UNITS
という新しいメジャーをSALES
キューブに追加して取り込みます。
ターゲット・スキーマの再設計手順:
NUMBER
データ型、精度8、スケール0のメジャーNUMBER_OF_IND_UNITS
をSALES
キューブに追加します。
SALES
キューブの系統ダイアグラムを表示して、SALES
キューブを含むマッピングを確定します。すべてのSALES
キューブのマッピング演算子に対してインバウンド同期化を実行します。
マッピングMAP_SALES
を開き、表ORDER_ITEMS
がインバウンド同期化されていることを確認します。
ORDER_ITEMS
表内のLOT_SIZE_NUMBER
列をJoiner演算子に接続してからSet Operation演算子に接続し、次にAggregator演算子に追加します。Aggregator演算子内で加算を行っていることを確認します。
最後に、Aggregator演算子のLOT_SIZE_NUMBER
出力属性をSALES
キューブのNUMBER_OF_IND_UNITS
入力属性に接続します。
手順6: 再配布スクリプト
マッピングがデバッグされた後、デザイン・センターを使用してスクリプトを再生成および再配布します。コントロール・センター・マネージャを使用してデフォルトの配布アクションを検出します。Oracle Warehouse Builderにより、実行する配布のタイプが検出されます。
手順7: 新規ETLロジックのテスト
すべてのオブジェクトを調整し、WH
ターゲット・スキーマがすべての変更を反映して更新された後、マッピングから生成されたETLロジックをテストします。マッピング・デバッガを使用してこのタスクを完了します。エラーがある場合は、エラーを修正してスクリプトを再配布します。
手順8: Discoverer EULの更新
レポート作成ツールとしてOracle Discovererを使用している場合は、EULを更新します。
Oracle Discoverer EULの更新手順:
オブジェクトの構造またはデータが変更されたため、EULで更新する必要があるオブジェクトを識別します。この場合、変更されたオブジェクトはREGIONS
表、SALES_ITEMS
表およびSALES
キューブです。
プロジェクト・ナビゲータで、手順1で識別されたすべてのオブジェクトを選択し、「導出」を右クリックして選択します。
導出を実行ウィザードが表示され、これらのオブジェクトを含むビジネス定義モジュール内のこれらのオブジェクト定義が更新されます。
これらの変更されたオブジェクトを含むビジネス定義モジュール内の「アイテム・フォルダ」ノードを開きます。
手順1で識別されたオブジェクトを選択し、「配布」を右クリックして選択します。
オブジェクトへの変更がOracle Discover EUL内で更新されます。
手順9: ETLロジックの実行
マッピングの配布後、ETLロジックを実行し、データをターゲットにロードします。