ヘッダーをスキップ
Oracle Warehouse Builderユーザーズ・ガイド
11gリリース1(11.1)
E05734-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

25 ターゲット・スキーマへの配布およびETLロジックの実行

Oracle Warehouse Builderには、単一の論理モデルと複数の物理モデルをサポートする機能が用意されています。そのため、一度データ・ウェアハウスを設計すれば、その設計を複数のターゲット・システムに実装できます。さらに、Warehouse Builderは同じオブジェクト定義の物理的に異なる複数の実装もサポートしています。

この章では、Warehouse Builderの実装環境について説明します。スケジュールを作成および使用してETLロジックの実行を自動化する方法についても説明します。

この章の内容は次のとおりです。

Warehouse Builderにおける配布と実行について

データ・ウェアハウスを設計した後、設計オブジェクトを配布および実行して、この設計をターゲット・スキーマに実装する必要があります。コントロール・センター・マネージャには、配布と実行のあらゆる側面を表示および管理できる包括的な配布コンソールが用意されています。コントロール・センター・マネージャは、アクティブなコントロール・センターに格納された情報へのアクセスを可能にします。

配布について

配布は、Warehouse Builderワークスペース内の論理オブジェクトから、ターゲット・ロケーション内に物理オブジェクトを作成するプロセスです。

ターゲット・スキーマ設計時に作成されるデータ・オブジェクトは論理定義です。Warehouse Builderは、このデータ・オブジェクトのメタデータをワークスペースに格納します。データ・オブジェクトをターゲット・スキーマに物理的に作成するには、データ・オブジェクトを配布する必要があります。たとえば、デザイン・センターを使用して表を作成すると、この表のメタデータはワークスペースに格納されます。この表をターゲット・スキーマに物理的に作成するには、この表をターゲット・スキーマに配布する必要があります。オブジェクトの配布には、デザイン・センターまたはコントロール・センター・マネージャを使用します。


注意:

オブジェクトを配布するたびに、Warehouse Builderでは、すべての設計オブジェクトに対するすべての変更がワークスペースに自動的に保存されます。「プリファレンス」ダイアログ・ボックスの「コミットを要求」を選択すると、警告メッセージの表示を選択できます。

マッピングまたはプロセス・フローの配布には、次の手順が含まれます。

  • 必要に応じて、PL/SQL、SQL*LoaderまたはABAPスクリプトを生成します。

  • 必要なロケーションを登録し、必要なコネクタを配布します。これにより、物理ロケーションとそのコネクタの詳細が実行時に利用可能になります。

  • PL/SQL、XPDL、SQL*LoaderまたはABAPのスクリプトをデザイン・センターからコントロール・センターに転送します。

マッピングまたはプロセス・フローを配布した後は、「ETLジョブの開始」の説明に従って、スクリプトを明示的に起動する必要があります。

配布できるのは、ユーザーにCOMPILE権限があるオブジェクトのみです。デフォルトでは、ワークスペース内のすべてのオブジェクトに対してこの権限があります。ただし、ワークスペースの所有者が異なるセキュリティ・ポリシーを設定している場合があります。

デザイン・センターのナビゲーション・ツリーから直接配布するか、またはコントロール・センター・マネージャを使用して配布できます。


注意:

オブジェクトは常にWarehouse Builderを使用して保守してください。配布した物理オブジェクトをSQLで手動で変更しないでください。そうしないと、論理オブジェクトと物理オブジェクトの同期がとれなくなり、予測できない結果を引き起こす可能性があります。

配布アクション

デザイン・センターで新しいオブジェクトを定義すると、オブジェクトはただちにコントロール・センター・マネージャの配布ロケーションの下にリストされます。オブジェクトにはそれぞれデフォルトの配布アクションがあります。この配布アクションは表示可能です。オブジェクトのデフォルト配布アクションは、オブジェクトの現在の設計ステータスと現在の配布ステータスの比較に基づいて決定されます。たとえば、まだ配布されていない表のデフォルト配布アクションは「作成」になります。以前に配布済の表のデフォルト・アクションは「アップグレード」になります。デフォルトを上書きするには、コントロール・センター・マネージャで別の配布アクションを選択します。

デフォルトは前回のアクションで設定され、オブジェクトのタイプによって異なります。

次の配布アクションがあります。

  • 作成: ターゲット・ロケーションにオブジェクトを作成します。同じ名前のオブジェクトがすでに存在する場合は、エラーが発生することがあります。たとえば、オブジェクトがまだWarehouse Builderから配布されていない場合などです。

  • アップグレード: 可能な場合、データを喪失することなくオブジェクトを変更します。アップグレードは、元に戻して再実行できます。このアクションは、スケジュールなど、一部のオブジェクト・タイプには使用できません。

  • 削除: ターゲット・ロケーションからオブジェクトを削除します。

  • 置換: オブジェクトを削除して再作成します。このアクションは、「アップグレード」より高速ですが、データはすべて削除されます。

配布ステータス

オブジェクトを配布すると、Warehouse Builderによりオブジェクトに配布ステータスが割り当てられます。このステータスは配布の結果を表しています。配布ステータスはコントロール・センター・マネージャで表示できます。

配布ステータスは次のいずれかです。

  • 未配布: オブジェクトがまだターゲット・スキーマに配布されていないことを示します。

  • 正常終了: オブジェクトがターゲット・スキーマに正常に配布されたことを示します。

  • 警告: オブジェクトの配布中に警告が生成されたことを示します。ステータスをダブルクリックすると、警告の詳細が表示されます。

  • 失敗: オブジェクトの配布に失敗したことを示します。ステータスをダブルクリックすると、配布に失敗した理由の詳細が表示されます。

実行について

マッピング、プロセス・フロー、変換などのETLロジックを含むオブジェクトの場合、実行という追加ステップがあります。実行とは、配布済オブジェクトに定義されたETLロジックを実行するプロセスです。

たとえば、表のデータを取得してソース・データの変換を実行し、変換したデータをターゲット表にロードするマッピングを定義するとします。このマッピングを配布すると、このマッピングに対して生成されたPL/SQLコードがターゲット・スキーマに格納されます。このマッピングを実行すると、ETLロジックが実行され、データがソース表から取得されて変換され、ターゲット表にロードされます。

配布および実行プロセス

データ・システムのライフサイクルでは、一般に次の手順を実行して配布プロセスでシステムを作成し、実行プロセスでデータをシステムに移動します。

  1. オブジェクト設定および使用するコントロール・センターが指定された名前付きの構成を選択します。

  2. オブジェクトをターゲット・ロケーションに配布します。個別に配布、1つずつ順に配布、すべて一度に配布のいずれも可能です。

    オブジェクトの配布の詳細は、「オブジェクトを配布」を参照してください。

  3. 配布の結果を確認します。オブジェクトの配布に失敗した場合は、問題を修正し、再試行してください。

  4. ETLプロセスを開始します。

    ETLプロセスの開始の詳細は、「ETLジョブの開始」を参照してください。

  5. ユーザーの要求やソース・データの変更などにあわせて、ターゲット・オブジェクトの設計を変更します。

  6. 変更したオブジェクトの配布アクションを「アップグレード」または「置換」に設定します。

  7. これらの手順を繰り返します。


注意:

Warehouse Builderでは、配布前に、ワークスペースに対するすべての変更が自動的に保存されます。

オブジェクトを配布

配布とは、生成済のコードを使用してメタデータからターゲット・ロケーションに物理オブジェクトを作成するプロセスです。配布プロセスの一環として、Warehouse Builderはオブジェクトのスクリプトを検証および生成し、スクリプトをコントロール・センターに転送して、オブジェクトに関連付けられた配布アクションに対してスクリプトを起動します。オブジェクトは、プロジェクト・エクスプローラから、またはコントロール・センター・マネージャを使用して配布できます。

プロジェクト・エクスプローラからの配布は、デフォルト・アクションに制限されています。デフォルト・アクションは、「作成」、「置換」、「削除」または「更新」に設定されている可能性があります。デフォルト・アクションは、最後に配布されてからのオブジェクト設計への変更内容によって決定します。デフォルト・アクションを上書きするには、配布プロセスを完全に制御するコントロール・センター・マネージャを使用します。コントロール・センター・マネージャは、配布時にオブジェクトを検証し、生成します。


注意:

コントロール・センター・マネージャの動作は、「プリファレンス」ダイアログ・ボックスの多数の設定によって制御されます。配布は、追加の設定によって制御されます。

「ツール」メニューから「プリファレンス」をクリックします。「コントロール・センター・モニター」および「配布」の下に、設定がリストされます。設定の説明は、「ヘルプ」をクリックしてください。


プロジェクト・エクスプローラから配布する手順は、次のとおりです。

オブジェクトを選択して、ツールバーの「配布」アイコンをクリックします。また、オブジェクトを選択した後に、「設計」メニューから「配布」を選択できます。

ステータス・メッセージが、デザイン・センター・ウィンドウの下部に表示されます。配布が完了したことを通知する場合は、配布前にプリファレンスで「配布完了メッセージの表示」を選択します。

コントロール・センター・マネージャから配布する手順は、次のとおりです。

  1. プロジェクトを開きます。

  2. 「ツール」メニューから「コントロール・センター・マネージャ」を選択します。

    プロジェクトの構成をアクティブにするために、コントロール・センターにアクセス権を付与するコントロール・センター・マネージャが表示されます。このメニューを選択できない場合、適切な名前付きの構成およびコントロール・センターがアクティブであることを確認します。


    関連項目:

    Oracle Warehouse Builderインストレーションおよび管理ガイドの「追加構成の作成」

  3. コントロール・センター・マネージャのナビゲーション・ツリーで、配布するオブジェクトを含む「ロケーション」ノードを開きます。配布するオブジェクトを選択します。

    オブジェクトの選択時に、[Ctrl]キーを押したままにすると複数のファイルを選択できます。

  4. 選択したオブジェクトの配布アクションを、「オブジェクトの詳細」パネルで設定します。

    • 「詳細」タブで、「デフォルト・アクション」をクリックします。

      デフォルト・アクションは、オブジェクトのタイプ、およびオブジェクトが以前に配布されているかどうかによって異なります。たとえば、アップグレード・アクションは、ディメンションとスケジュールではサポートされていません。配布ツリーで「変更済オブジェクト」フィルタを使用すると、アクションを伴わないオブジェクトを検索できます。

    • 「詳細」タブで、「配布アクション」フィールドをクリックし、アクションを選択します。

  5. 「配布」アイコンをクリックします。

Warehouse Builderは、ジョブの生成時に開いている必要がありますが、配布時に開いている必要はありません。コントロール・センター・マネージャは、どの段階でも閉じることができます。

ビジネス定義のOracle Discovererへの配布

ビジネス定義を作成した後、それをOracle Discovererに配布できます。ビジネス定義の配布に使用する方法は、配布先となるOracle Discovererのバージョンおよび使用するライセンス・オプションによって異なります。


注意:

この機能を使用するには、Oracle Databaseライセンス情報で説明されている追加オプションが1つ以上必要です。


注意:

Oracle Discovererのロケーションにビジネス定義を配布するには、EUL所有者にCREATE DATABASE LINK権限が必要です。

表25-1は、様々なライセンス・オプションを使用して、ビジネス定義をOracle Discovererに配布する場合の、ライセンス・オプションの可能な組合せを示しています。

表25-1 ビジネス定義の様々な配布方法


Warehouse Builderコア機能 Warehouse BuilderのEnterprise ETLオプション

Oracle Discoverer 10gリリース2より前のバージョン

ビジネス定義のスクリプトを生成し、これらのスクリプトを.eexファイルにコピーして.eexファイルをOracle Discovererにインポートします。

「コア機能を使用したビジネス定義の配布」を参照してください。

コントロール・センターを使用して.eexファイルを作成し、.eexファイルをOracle Discovererにインポートします。

「旧バージョンのOracle Discovererへのビジネス定義の配布」を参照してください。

Oracle Discoverer 10gリリース2

ビジネス定義のスクリプトを生成し、これらのスクリプトを.eexファイルにコピーして.eexファイルをOracle Discovererにインポートします。

「コア機能を使用したビジネス定義の配布」を参照してください。

「コントロール・センター」を使用してOracle Discovererに直接配布します。

「ビジネス定義のOracle Discovererへの直接配布」を参照してください。


ビジネス定義のOracle Discovererへの直接配布

コントロール・センターまたはプロジェクト・エクスプローラを使用することで、他のデータ・オブジェクトを配布するのと同様にビジネス定義をOracle Discovererに直接配布できます。ビジネス定義は、これらのビジネス定義が含まれるビジネス定義モジュールと関連付けられたDiscovererのロケーションに配布されます。

ビジネス定義を配布する前に、有効なDiscovererのロケーションがビジネス定義モジュールに関連付けられていることを確認します。Discovererのロケーションをビジネス定義モジュールへ関連付ける方法の詳細は、「接続情報の設定」を参照してください。

ビジネス定義をOracle Discoverer 10gリリース2に直接配布する場合は、次の手順を実行します。

  1. ビジネス定義の定義が含まれている.eexファイルを作成します。

  2. ビジネス定義が含まれるビジネス定義モジュールに関連付けられたDiscovererのロケーションに指定されたEULに接続します。


    注意:

    EULがオブジェクト定義とは別のデータベースにある場合、コネクタが作成されます。このコネクタはビジネス定義を配布するときに配布されます。

  3. .eexファイルをOracle Discovererにインポートします。

    インポート中に新しいビジネス定義が既存の定義の一番上に追加されます。EULを検証し、冗長な定義を削除する必要があります。たとえば、4つのアイテムが含まれているアイテム・フォルダを配布します。その結果、アイテム・フォルダから1つのアイテムを削除します。アイテム・フォルダを再配布するとき、4つのアイテムが残っています。これは、新しい定義のみが追加されても古い定義は削除されないためです。

旧バージョンのOracle Discovererへのビジネス定義の配布

10gリリース2より前のバージョンのOracle Discovererには、ビジネス定義を直接配布できません。ただし、次の回避策を使用してDiscovererにビジネス定義を転送することはできます。

10gリリース2より前のバージョンのDiscovererと関連付けられたロケーションにビジネス定義を配布すると、配布に失敗します。ただし、ビジネス定義を含む.eexファイルが作成されます。この.eexファイルには2022.eexのようなデフォルト名が割り当てられ、OWB_ORACLE_HOME¥deployed_scriptsディレクトリに格納されます。Oracle Discovererを使用してEULに接続し、この.eexファイルをインポートできます。

コア機能を使用したビジネス定義の配布

Warehouse Builderのコア機能を使用すると、ビジネス定義をOracle Discovererに直接配布できません。また、「旧バージョンのOracle Discovererへのビジネス定義の配布」で説明されているように、コントロール・センターを使用して.eexファイルを作成することもできません。しかし、次の項で説明する手順を実行すると、ビジネス定義をDiscovererに保存できます。

次の手順に従い、ビジネス定義をDiscovererに保存します。

  1. 有効なロケーションをビジネス定義が含まれているビジネス定義モジュールに関連付けます。

    このロケーションではビジネス定義の配布はできませんが、ロケーションを定義すると、EULユーザーの資格証明を生成済のコードに確実に含めることができます。ロケーションを定義するとき、インテリジェンス・オブジェクトの参照するリレーショナル・スキーマがオブジェクトと同一のデータベースにあるかどうかがチェックされます。異なるデータベースにある場合、次のことが実行されます。

    • Discovererロケーションへのコネクタが作成されます。

    • コネクタの使用するデータベース・リンクの名前が生成済のコードに含められます。

    ビジネス定義モジュールに関連付けられているDiscovererのロケーション・ノードでコネクタが作成されます。このコネクタを配布してデータベース・リンクを作成されることを確認します。

  2. Discovererに配布するビジネス定義が含まれているビジネス定義モジュールを右クリックして「生成」を選択します。

    生成結果ウィンドウが表示されます。

  3. 生成結果ウィンドウの「スクリプト」タブにナビゲートします。

    このタブには、これらの定義のために生成されたスクリプトを格納する関連ファイル名前を持つすべてのビジネス定義がリストされています。

  4. Oracle Discovererに保存するすべてのオブジェクトを選択します。

    [Ctrl]キーを押し続けることで複数のファイルを選択できます。

  5. 「別名で保存」ボタンをクリックします。

    「別名で保存」ダイアログ・ボックスが表示されます。

  6. 生成したスクリプトを保存するディレクトリを選択します。すべてのファイルを1つのディレクトリに保存してください。

    たとえば、ディレクトリc:¥sales¥generated_scriptsに生成したすべてのスクリプトを保存します。

  7. 生成されたすべてのスクリプトを1つの.eexファイルにコピーします。

    オペレーティング・システム・コマンドを使用して、生成されたスクリプトを1つのファイルに連結します。たとえば、Windowsの場合、コマンド プロンプト・ウィンドウを開き、次の手順を実行します。

    c:> CD c:\sales\generated_scripts
    c:\sales\generated_scripts> COPY *.xml sales_scripts.eex
    

    これにより、生成されたすべての.xmlファイルがsales_scripts.eexという.eexファイルにコピーされます。

  8. テキスト・エディタを使用して前の手順で作成した.eexファイルを編集して、次の手順を実行します。

    1. ファイルの先頭に次の行を追加します。

      <?xml version="1.0" encoding="UTF-8"?>
      <EndUserLayerExport SourceEULId="20030730144738"
      SourceEULVersion="4.1.9.0.0" MinimumCodeVersion="4.1.0"
      ExportFileVersion="4.1.0">
      
    2. ファイルの末尾に次の行を追加します。

      </EndUserLayerExport>
      
  9. Oracle Discoverer Administratorを開いて、ビジネス定義をインポートするEULに接続します。

  10. 「ファイル」メニューから「インポート」を選択します。

    インポート・ウィザードが表示されます。

  11. 作成した.eexファイルをDiscoverer Administratorにインポートします。

配布結果の確認

ウィンドウの下部に表示されるステータス・メッセージ、および「コントロール・センター・ジョブ」パネルの「ステータス」列を確認することで、ジョブの進行状況を監視できます。

ジョブが完了すると、オブジェクトの新しい配布ステータスが「詳細」タブに表示されます。結果を確認し、スクリプトを表示できます。

配布の詳細を表示する手順は、次のとおりです。

ジョブの詳細パネルで配布するジョブをダブルクリックします。

配布結果のウィンドウが表示されます。このウィンドウの説明を参照するには、「ヘルプ」メニューの「トピック」を選択してください。

配布されたスクリプトを表示する手順は、次のとおりです。

  1. 前述の手順で説明したように、配布結果のウィンドウを開きます。

  2. ナビゲーション・ツリーで該当するオブジェクトを選択します。

  3. 「スクリプト」タブで、スクリプトを選択して「コードの表示」をクリックするか、スクリプト名をダブルクリックします。

ETLジョブを開始

ETLは、ソース・ロケーションからデータを抽出し、マッピングで定義したとおりに変換し、ターゲット・オブジェクトにロードするプロセスです。ETLを開始するときは、データをジョブとしてWarehouse Builderジョブ・キューに送信します。このジョブはすぐに開始できます。また、スケジューラを作成および使用する場合は、スケジュールされた時間に開始できます。スケジュールの詳細は、「スケジュールの定義および使用のプロセス」を参照してください。

配布と同様に、ETLをプロジェクト・エクスプローラから開始することも、コントロール・センター・マネージャを使用して開始することもできます。また、SQLスクリプトを実行するWarehouse Builder外部のツールをして、ETLを開始することもできます。

マッピングまたはプロセス・フローの開始には、次の手順があります。

  1. PL/SQL、SQL*LoaderまたはABAPスクリプトの生成(必要な場合)

  2. スクリプトの配布(必要な場合)

  3. スクリプトの実行

プロジェクト・エクスプローラからETLを開始する手順は、次のとおりです。

マッピングまたはプロセス・フローを選択して、「設計」メニューから「開始」を選択します。

コントロール・センター・マネージャからETLを開始する手順は、次のとおりです。

マッピングまたはプロセス・フローを選択して、ツールバーの「開始」アイコンをクリックします。

または、マッピングまたはプロセス・フローを選択して、「ファイル」メニューから「開始」を選択することもできます。


関連項目:

SQL*PlusによるETLジョブの開始の詳細は、Oracle Warehouse Builder APIおよびスクリプト・リファレンスを参照してください。

データの表示

ETLを完了した後は、Warehouse Builder内のデータ・オブジェクトを確認し、結果が期待どおりであることを簡単に検証できます。

データを表示する手順は、次のとおりです。

プロジェクト・エクスプローラで、オブジェクトを右クリックして「データ」を選択します。「データ・ビューア」が開き、オブジェクトの内容が表示されます。

ETLジョブのスケジュール

ETLのスケジュールには、次のいずれかの方法を使用できます。

他のロケーションへの配布

ワークスペースには、多数のターゲット・ロケーションが含まれている場合があります。オブジェクトは、一度に1つのターゲット・ロケーションにのみ配布できます。ただし、それぞれ異なるモジュール(またはプロジェクト全体)を異なるロケーションに配布したり、同じモジュールを複数のロケーションに配布することはできます。手順は、オブジェクトがすでに配布されているかどうかによって異なります。

異なるモジュールを同じシステムの異なるスキーマに配布する手順は、次のとおりです。

  1. 新規スキーマに対するターゲット・ロケーションを作成します。

  2. モジュールを作成または編集し、新規ロケーションに関連付けます。

  3. 以前の配布と同じコントロール・センターを使用します。

  4. 通常どおり配布します。

モジュールを同じシステムの2番目のスキーマに配布する手順は、次のとおりです。

注意: 2番目のスキーマに配布するために新規構成を作成する必要はありませんが、追加の構成パラメータを変更している場合は、作成した方が便利です。

  1. スキーマに対するロケーションを作成します。

  2. プロジェクト・エクスプローラで、モジュールをダブルクリックします。

    「モジュールの編集」ダイアログ・ボックスが開きます。

  3. 「データのロケーション」タブで、新規ロケーションを「使用可能なロケーション」から「選択されたロケーション」に移動して、「OK」をクリックします。

  4. プロジェクト・エクスプローラで、モジュールを選択して「構成」アイコンをクリックします。

    「構成プロパティ」ダイアログ・ボックスが開きます。

  5. 「識別」の下で、「ロケーション」プロパティに対するリストから新規ロケーションを選択し、「OK」をクリックします。

  6. 通常どおり配布します。

モジュールを異なるシステムの2番目のスキーマに配布する手順は、次のとおりです。

  1. ターゲット・システムを設定します。

    1. ターゲット・システムにWarehouse Builderをインストールします。

    2. リポジトリ・アシスタントを使用して、ターゲット・スキーマ用のワークスペースとユーザーを作成します。

  2. ローカルのデザイン・センターで、ターゲット・システムのワークスペースに対する新規構成および新規コントロール・センターを作成し、これをデフォルト構成にします。

  3. リモート・スキーマに対するターゲット・ロケーションを定義します。

  4. 通常どおり配布します。

ランタイム・プリファレンス

OWB_ORACLE_HOME/owb/bin/admin/Runtime.propertiesファイルを使用して、オプションのランタイム・プラットフォーム・プリファレンスを変更できます。このセクションでは、変更可能なプロパティについて説明します。

SQL Loaderランタイム・プリファレンス

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.oracle_home_10g

    SQL*Loaderが実行されるOracle 10gホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「10.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.oracle_home_9i

    SQL*Loaderが実行されるOracle 9iホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「9.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.oracle_home_8i

    SQL*Loaderが実行されるOracle 8iホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「8.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.oracle_home_default

    SQL*Loaderが実行されるOracleホームのデフォルトのロケーションが定義されています。このプロパティは、他に明示的なプロパティが設定されていない場合に選択されます。このプロパティが設定されていない場合は、コントロール・センターのORACLE_HOME環境変数が使用されるか、またはコントロール・センター自体のホームが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.sqlldr_exe_10g

    SQL*Loader実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「10.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.sqlldr_exe_9i

    SQL*Loader実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「9.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.sqlldr_exe_8i

    SQL*Loader実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「8.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLLoader.sqlldr_exe_default

    SQL*Loader実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、他に明示的なプロパティが設定されていない場合に選択されます。このプロパティが設定されていない場合は、UNIXのsqlldrやWindowsのSQLLDR.EXEなど、実行プラットフォームの標準の端末名が使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は、指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

SQL*Plusランタイム・プリファレンス

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_10g

    SQL*Plusが実行されるOracle 10gホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「10.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_8i

    SQL*Plusが実行されるOracle 8iホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「8.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_9i

    SQL*Plusが実行されるOracle 9iホームのロケーションが定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「9.」で始まる場合に選択されます。このプロパティが設定されていない場合は、oracle_home_defaultプロパティが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_default

    SQL*Plusが実行されるOracleホームのデフォルトのロケーションが定義されています。このプロパティは、他に明示的なプロパティが設定されていない場合に選択されます。このプロパティが設定されていない場合は、コントロール・センターのORACLE_HOME環境変数が使用されるか、またはコントロール・センター自体のホームが使用されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_10g

    SQL*Plus実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「10.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_9i

    SQL*Plus実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「9.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_8i

    SQL*Plus実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、ターゲット・ロケーションのバージョンが「8.」で始まる場合に選択されます。このプロパティが設定されていない場合は、sqlldr_exe_defaultプロパティが使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

  • property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_default

    SQL*Plus実行可能ファイルのロケーションまたは名前が定義されています。このプロパティは、他に明示的なプロパティが設定されていない場合に選択されます。このプロパティが設定されていない場合は、UNIXのsqlplusやWindowsのSQLPLUS.EXEなど、実行プラットフォームの標準の端末名が使用されます。その値で、実行可能な端末の名前または実行可能ファイルへのフルパスを指定できます。フルパス名は、指定したOracleホーム、binディレクトリおよび端末の名前で構成されます。

他のランタイム・プリファレンス

  • property.RuntimePlatform.0.delete_all_job_on_complete

    ジョブが正常に完了したことを示す監査レコードに対するアクションを表します。このプロパティを「True」に設定すると、正常に完了したすべてのジョブの監査実行レコードおよびマップ監査レコードが自動的に削除されます。このプロパティを「False」に設定すると、監査レコードは保持されます。デフォルトでは「False」に設定されています。

  • property.RuntimePlatform.0.logfile_max_size

    コントロール・センター・サービス・ログ・ファイルに記録されるトレース・メッセージの最大数を表します。このプロパティを設定する場合、この値に達すると新しいログ・ファイルが作成されます。その値は1000以上である必要があります。デフォルト値は0で、これは最大サイズの設定がないことを意味し、コントロール・センター・サービスを開始するときにのみ新しいログ・ファイルが作成されます。

  • property.RuntimePlatform.0.max_number_logfiles

    OWB_ORACLE_HOME/logサブディレクトリに自動的に保存されるログ・ファイルの数を表します。このプロパティは2以上に設定する必要があります。デフォルト値は10です。新しいログ・ファイルが作成される場合、ここで設定した数に達するまで、ログ・ファイルがlogサブディレクトリに保存されます。

  • property.RuntimePlatform.0.purge_delay_hours

    監査詳細を削除する条件を表します。ジョブ・ステータスに関係なく、開始時刻が指定した時間より前の配布ジョブまたは実行ジョブの監査詳細が削除されます。デフォルト値は24時間です。設定可能な最小値は1時間です。

  • property.RuntimePlatform.0.purge_minimum_minutes

    開始時刻が指定した分数に満たない配布または実行の監査の詳細は、ジョブ・ステータスにかかわらず削除されません。デフォルト値は10分で、最小値は1分です。

  • property.RuntimePlatform.0.recovery

    コントロール・センター・サービスが開始されるときに配布および実行がリカバリされるかどうかを制御します。デフォルト値はtrueです。これは、サービス開始時にまだビジー状態である配布または実行は再起動されることを意味します。falseの値は、このような状態の配布または実行はリカバリされず、非アクティブ化されることを意味します。

  • property.RuntimePlatform.0.platform_net_host_name

    コントロール・センターへの内部接続時に使用されるホスト名を定義します。RACインストールでは、通常、クラスタ内のノードではなくクラスタ全体が識別されます。このプロパティは、データベース・リンクがコントロール・センター・スキーマに接続するために必要なプロセス・フローおよびスケジュールに使用されます。このプロパティが設定されていない場合はコントロール・センター・サービスを実行するノードのホスト名が使用されます。

  • property.RuntimePlatform.0.platform_net_service_name

    コントロール・センターへの内部データベース接続時に使用されるTNS名を定義します。このプロパティは、データベース・リンクがコントロール・センター・スキーマに接続するために必要なプロセス・フローおよびスケジュールに使用されます。このプロパティが設定されていない場合はコントロール・センター・サービスの接続情報が使用されます。

例: ターゲット・スキーマの更新

シナリオ

本番環境にあるデータ・ウェアハウスの管理を数か月間担当しているとします。データ・ウェアハウスは最初、Human Resources(HR)およびOrder Entry(OE)という2つのソース・スキーマを使用して作成され、Warehouse(WH)ターゲット・スキーマにロードされました。最近、HRスキーマおよびOEスキーマ内の表に対する2つの変更を検出しました。これらの変更を反映してWHスキーマを更新する必要があります。

解決策

WHスキーマを更新するために、最初にこれらの変更による影響を測定し、次にターゲット・スキーマを更新する計画を作成して実行する必要があります。次の手順は、必要事項の概要を示します。

手順1: 変更されたソース・オブジェクトの識別

手順2: 変更による影響の測定

手順3: 変更されたオブジェクトの再インポート

手順4: データ・フロー内のオブジェクトの更新

手順5: ターゲット・スキーマの再設計

手順6: スクリプトの再配布

手順7: 新規ETLロジックのテスト

手順8: Discoverer EULの更新

手順9: ETLロジックの実行

事例

手順1: 変更されたソース・オブジェクトの識別

データ・ウェアハウスに変更分を反映する最初の手順は、ソース・オブジェクト内の変更を識別することです。これを実行するためには、ソース・オブジェクトが変更されたことを通知できるプロシージャまたはシステムが配備されている必要があります。

このシナリオでは、HRスキーマおよびOEスキーマを管理しているグループでいくつかのオブジェクトが変更されていることが検出されました。2つ変更があり、最初にHRスキーマが変更されました。より長いデータに対応できるように、REGION_NAME列が25文字から100文字に拡張されました。2番目にOEスキーマが変更されました。LOT_SIZE_NUMBER列が追加され、WHスキーマに統合する必要がありました。

手順2: 変更による影響の測定

変更を識別した後、ターゲット・スキーマに対する影響を測定する必要があります。

HRスキーマが変更された変更1では、依存するすべてのオブジェクトを更新する必要があります。これには、REGIONS表の再インポートおよびREGION_NAME列を使用するすべてのオブジェクトの更新が伴います。依存するオブジェクトを識別するために、影響分析ダイアグラムを使用できます。また、この表を使用するすべてのマッピングを更新する必要があります。

OEスキーマが変更された変更2では、表の再インポートおよびマッピングの更新に加えて、WHスキーマに新しい列を統合するための方法を見つける必要があります。売上の1つの単位内の部品または項目の数の動向を追跡するために列が追加されるので、WHスキーマ内のSALESキューブにNUMBER_OF_IND_UNITSというメジャーを追加し、このメジャーを各注文に割り当てます。続いてこの新しい列をSALESキューブに接続する必要があります。

手順3: 変更されたオブジェクトの再インポート

2つのソース・オブジェクトが変更されているので、ワークスペースにメタデータ定義を再インポートすることから開始する必要があります。ナビゲーション・ツリーからHRスキーマ内のREGIONS表およびOEスキーマ内のORDER_ITEMS表の両方を選択し、メタデータのインポート・ウィザードを使用して定義を再インポートします。

Warehouse Builderにより、これが更新であることが自動的に検知され、変更された定義の更新のみが実行されます。インポート・プロセスの最後に表示される「インポート結果」ダイアログ・ボックスに、同期化の詳細が表示されます。「OK」をクリックし、インポートを続行してワークスペースへ変更をコミットします。インポートを中断する場合は、「元に戻す」をクリックします。

手順4: データ・フロー内のオブジェクトの更新

HRスキーマ内の変更1のように、ソース・オブジェクト内の変更により既存のオブジェクトおよび属性のみが変更された場合は、影響分析ダイアグラムを使用して調整する必要のあるオブジェクトを識別します。

このシナリオでは、データのロードが適切に続行されることを確実にするために、REGIONS表に応じて異なるすべてのオブジェクト内の列の長さを調整する必要があります。

データ・フロー内のオブジェクトを更新する手順は、次のとおりです。

  1. ナビゲーション・ツリーからHRスキーマ内のREGIONS表を選択します。「表示」を選択し、次に「影響」をクリックします。

    メタデータ依存性マネージャが表示されます。影響分析ダイアグラムにより、REGIONS表により影響を受けるオブジェクトはWHスキーマ内のCUSTOMERディメンションのみであることが示されます。

    この手順では、リポジトリ・ブラウザがインストール済である必要があります。設定の詳細は、Oracle Warehouse Builderインストレーションおよび管理ガイドを参照してください。

  2. データ・オブジェクト・エディタ内のCUSTOMERディメンションが開き、リージョン名レベル属性が文字長100に更新されます。

  3. ソースをターゲットに接続するMAP_CUSTOMERマッピングを開きます。REGIONS表の演算子およびCUSTOMERディメンションの演算子では、データ・オブジェクトからマッピング演算子にインバウンド同期化を実行します。

    マッピング演算子は、マッピング・オブジェクトと同期される必要があり、マッピング・オブジェクトは更新されたオブジェクトに基づいてコードを生成するために示されます。

これで、変更1に関連付けられたメタデータの更新は完了です。

変更#2では、新しい列の追加後、変更#1と同じ方法でデータ・フローを更新する必要はありません。ORDER_ITEMS表の演算子を使用するすべてのマッピングに対して、必ずインバウンド同期化を実行します。図25-3に示すORDER_ITEMS表の影響分析ダイアグラムから、これがマッピングMAP_SALESのみであることがわかります。

図25-3 ORDER_ITEMSの影響分析ダイアグラム

図25-3の説明が続きます
「図25-3 ORDER_ITEMSの影響分析ダイアグラム」の説明

手順5: ターゲット・スキーマの再設計

変更2では新しいLOT_SIZE_NUMBER列がORDER_ITEMS表に導入されたので、WHターゲット・スキーマを再設計し、この新しいデータをキューブ内に組み込む必要があります。NUMBER_OF_IND_UNITSという新しいメジャーをSALESキューブに追加することにより、組込みを実行できます。

ターゲット・スキーマを再設計する手順は、次のとおりです。

  1. NUMBERデータ型、精度8、スケール0のメジャーNUMBER_OF_IND_UNITSSALESキューブに追加します。

  2. SALESキューブの系統ダイアグラムを表示してSALESキューブを含むマッピングを確定します。すべてのSALESキューブのマッピング演算子に対してインバウンド同期化を実行します。

  3. マッピングMAP_SALESを開き、表ORDER_ITEMSがインバウンド同期化されていることを確認します。

  4. ORDER_ITEMS表内のLOT_SIZE_NUMBER列を「JOIN」に接続し、続いて「SETOP」に接続し、次に「AGG」演算子に追加します。「AGG」演算子内で加算を行っていることを確認します。

  5. 最後に、AGG演算子のLOT_SIZE_NUMBER出力属性をSALESキューブのNUMBER_OF_IND_UNITS入力属性に接続します。

手順6: スクリプトの再配布

マッピングがデバッグされた後、デザイン・センターを使用してスクリプトを再生成および再配布します。コントロール・センター・マネージャを使用してデフォルトの配布アクションを検出します。Warehouse Builderにより、実行する配布のタイプが検出されます。

手順7: 新規ETLロジックのテスト

すべてのオブジェクトを調整し、WHターゲット・スキーマがすべての変更を反映して更新された後、マッピングから生成されたETLロジックをテストします。マッピング・デバッガを使用してこのタスクを完了します。エラーがある場合は、エラーを修正してスクリプトを再配布します。

手順8: Discoverer EULの更新

レポート作成ツールとしてDiscovererを使用している場合は、EULを更新します。

Discoverer EULを更新する手順は、次のとおりです。

  1. オブジェクトの構造およびデータが変更されたため、EULで更新する必要のあるオブジェクトを識別します。この場合、変更されたオブジェクトはREGIONS表、SALES_ITEMS表およびSALESキューブです。

  2. プロジェクト・エクスプローラで、手順1で識別されたすべてのオブジェクトを選択し、「導出」を右クリックして選択します。

    導出を実行ウィザードが表示され、これらのオブジェクトを含むビジネス定義モジュール内のこれらのオブジェクト定義が更新されます。

  3. これらの変更されたオブジェクトを含むビジネス定義モジュール内の「アイテム・フォルダ」ノードを開きます。

  4. 手順1で識別されたオブジェクトを選択し、「配布」を右クリックして選択します。

    オブジェクトへの変更がDiscover EUL内で更新されます。

手順9: ETLロジックの実行

マッピングの配布後、ETLロジックを実行し、データをターゲットにロードします。