15 ロード計画

Oracle Data Integratorのロード計画およびその作成方法について学習します。

ロード計画とは

Oracle Data Integratorロード計画の内容について理解します。

ロード計画は、ステップの階層を含むOracle Data Integrator (ODI)の実行可能オブジェクトです。ステップは、条件付き、パラレル、または順次に実行できます。この階層のリーフはシナリオです。ロード計画を構成する一連のシナリオには、パッケージ、マッピング、変数およびプロシージャの実行が含まれる場合があります。また、ロード計画では、エラーで終了するシナリオの例外処理戦略もサポートされています。

ロード計画は、コマンドライン、Oracle Data Integrator Studio、Oracle Data IntegratorコンソールまたはWebサービス・インタフェースから開始、停止および再開できます。また、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。ロード計画を実行すると、ロード計画インスタンスが作成されます。このロード計画インスタンスを実行する各試行は、別々のロード計画実行です。

ロード計画は本番環境で変更でき、本番のニーズに応じてステップを有効または無効にできます。ロード計画オブジェクトは、デザイナ・ナビゲータとオペレータ・ナビゲータで設計および表示できます。開発作業リポジトリに接続している場合は様々な設計操作(作成、編集、削除など)をロード計画オブジェクトで実行できますが、実行作業リポジトリでは一部の設計操作は使用できません。作成したロード計画は作業リポジトリに格納されます。ロード計画は、エクスポートして別のリポジトリにインポートし、様々なコンテキストで実行できます。

ロード計画は、一連の複数タイプのステップで構成されます。各ステップには、複数の子ステップを含めることができます。ステップ・タイプに応じて、ステップは条件付き、パラレルまたは順次に実行できます。デフォルトで、ロード計画には空のルート・シリアル・ステップが含まれます。このルート・ステップは必須であり、ステップ・タイプは変更できません。

ステップ・タイプは次のとおりです。
  • シリアル - その子ステップのシリアル実行を定義します。子ステップには順序が設定され、子ステップは前の子ステップが終了した後でのみ実行されます。
  • パラレル - その子ステップのパラレル実行を定義します。子ステップは、優先度順に即時に開始されます。
  • シナリオの実行 - シナリオの実行を起動します。
  • Case - これらのステップの組合せによって、変数の値に基づいた条件ブランチが可能になります。
  • When - Caseステップの下に複数のWhenステップがある場合は、条件を満たす最初に有効なWhenステップが実行されます。
  • Else - 条件を満たすWhenステップがない場合、またはCaseステップにWhenステップが含まれていない場合は、Elseステップが実行されます。

ロード計画インスタンスおよびロード計画実行はセッションに類似しています。相違点は、セッションは、再開時に新規実行が既存のセッションを上書きする点です。これに対し、新規ロード計画実行は既存のロード計画実行を上書きせず、このロード計画インスタンスに対する前のロード計画実行の後に追加されます。ロード計画インスタンスは、実行時に変更できません。

シナリオは、生産に指定されるアトミックなランタイム・コンポーネントです。本番管理者は、ロード計画を使用して特定の時間枠でETLジョブの実行にかかる時間を最適化し、すべてのETLジョブの管理を容易にすることで、様々なシナリオを編成できます。

『Oracle Data Integratorでの統合プロジェクトの開発』ロード計画の概要に関する項を参照してください。

『Oracle Data Integratorでの統合プロジェクトの開発』ロード計画の実行に関する項を参照してください。

『Oracle Data Integratorでの統合プロジェクトの開発』本番でのロード計画の使用に関する項を参照してください。

『Oracle Data Integratorの管理』ロード計画の実行に関する項を参照してください。

ロード計画の作成

Oracle Data Integratorでロード計画を作成する手順について学習します。

パラレルに2つのステップを実行する、単純なロード計画をODIで作成するには(この例では、PRODUCTおよびTIME:という2つのディメンションをロードします):
  1. デザイナ・ナビゲータに移動し、「ロード計画とシナリオ」タブをクリックします。タブのメニューから、「新規ロード計画」を選択します。
  2. 適切な名前を入力します。
  3. 「ステップ」タブをクリックします。

    ロード計画エディタが開き、ルート・ステップ・ノードが表示されます。

  4. ODIオブジェクトをパラレル・ステップとしてロード計画に追加します。「ステップの追加」(緑のプラス記号)をクリックして、「パラレル・ステップ」を選択します。「パラレル・ステップ」ノードがroot_stepの下に表示されます。
  5. 2つの新規プロシージャを定義し、パラレル・ノードの下にこれらを配置してパラレルで実行します。

    パラレル・ステップのデフォルトの再開タイプは「すべての子の再開」で、root_stepの再開タイプは「失敗から再開」です。

  6. ロード計画を保存します。
  7. ディメンションをロードするための2つのプロシージャ(PRODUCTとTIME)を定義し、これらをロード計画の「パラレル・ステップ」ノードに追加します。
    1. デザイナ・ナビゲータの「プロジェクト」タブで、プロジェクトおよびフォルダを展開します。「プロシージャ」を右クリックし、「新規プロシージャ」を選択します。
    2. PRODUCTディメンションをロードするためのプロシージャに適切な名前を入力します。環境に応じて他のフィールドを更新します。「保存」をクリックして編集タブを閉じます。
    3. 前述の2つの手順を繰り返して、TIMEディメンションをロードするためのプロシージャを作成し、保存します。
    4. データ・ウェアハウスのロード計画エディタに戻ります。パラレル・ステップがハイライト表示された状態で、「ステップの追加」(緑のプラス記号)をクリックして、「シナリオ実行ステップ」を選択します。
    5. ステップの既存のシナリオを選択するか、ステップを実行するシナリオがODIで自動的に生成される他のオブジェクト(パッケージ、インタフェース、変数およびプロシージャ)を選択します。ロード計画のパラレル・ノードでステップとして定義した2つのプロシージャを追加します。「シナリオ実行ステップの追加」画面で、「ルックアップ・シナリオ」(虫眼鏡)をクリックします。
    6. 「実行可能なオブジェクト・タイプ」として「プロシージャ」を選択します。PRODUCTディメンションをロードするプロシージャを選択します。「OK」をクリックします。
    7. 「新規シナリオ」ウィンドウに移動し、ODIでシナリオを作成してこのプロシージャを実行できるようにシナリオの名前を追加して、「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。デフォルトでは、ODIがプロシージャに対して生成する新しいシナリオの名前、およびロード計画に追加するステップ名は、プロシージャ名と同じです。

    8. 「終了」をクリックします。

      2つのパラレル・ステップの最初のステップが表示されます。

    9. ステップ階層の「パラレル」ノードをクリックし、再度「ステップの追加」(緑色のプラス記号)をクリックします。「シナリオ実行ステップ」を選択します。
    10. ステップfからhを繰り返して、ステップ階層のパラレル・ノードにTIMEディメンションをロードするための他のプロシージャを追加します。
単純なロード計画を作成して、2つのステップをシリアルに実行するには:
  1. デザイナ・ナビゲータに移動し、「ロード計画とシナリオ」タブをクリックします。タブのメニューから、「新規ロード計画」を選択します。
  2. 適切な名前を入力します。
  3. 「ステップ」タブをクリックします。

    ロード計画エディタが開き、ルート・ステップ・ノードが表示されます。

  4. ODIオブジェクトをシリアル・ステップとしてロード計画に追加します。
    1. 「ステップの追加」(緑のプラス記号)をクリックして、「シリアル・ステップ」を選択します。シリアル・ノードがroot_stepの下に表示されます。
    2. シリアル・ノードを選択した状態で、「ステップの追加」をクリックして「シナリオ実行ステップ」を選択します。
    3. 「シナリオ実行ステップの追加」ウィンドウで「ルックアップ・シナリオ」をクリックします。
    4. 「実行可能なオブジェクト・タイプ」として「プロシージャ」を選択します。プロシージャ名を選択します。「OK」をクリックします。「新規シナリオ」ウィンドウで、ODIでシナリオを作成してこのプロシージャを実行できるようにシナリオの名前としてデフォルトを受け入れ、「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。

    5. 「終了」をクリックします。

      最初のシリアル・ステップが表示されます。

    6. ステップ階層の「シリアル」ノードをクリックし、再度「ステップの追加」をクリックします。「シナリオ実行ステップ」を選択します。
    7. 「ルックアップ・シナリオ」をクリックして、「マッピング」を選択します。
    8. マッピング名を選択して、「OK」をクリックします。「新規シナリオ」ウィンドウで、ODIでシナリオを作成してこのマッピングを実行できるようにシナリオの名前としてデフォルトを受け入れ、「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。

    9. 「終了」をクリックします。
単純なロード計画を作成してパラレルで2つのステップを実行し、5つのステップをシリアルに実行するには(この例では、TIMEとPRODUCTのディメンションをロードする2つのプロシージャが含まれています):
  1. デザイナ・ナビゲータに移動し、「ロード計画とシナリオ」タブをクリックします。タブのメニューから、「新規ロード計画」を選択します。
  2. 適切な名前を入力します。
  3. 「ステップ」タブをクリックします。

    ロード計画エディタが開き、ルート・ステップ・ノードが表示されます。

  4. ODIオブジェクトをパラレル・ステップとしてロード計画に追加します。「ステップの追加」(緑のプラス記号)をクリックして、「パラレル・ステップ」を選択します。「パラレル・ステップ」ノードがroot_stepの下に表示されます。
  5. 2つの新規プロシージャを定義し、パラレル・ノードの下にこれらを配置してパラレルで実行します。

    パラレル・ステップのデフォルトの再開タイプは「すべての子の再開」で、root_stepの再開タイプは「失敗から再開」です。

  6. 「保存」をクリックしてロード計画を保存します。
  7. ディメンションをロードするための2つのプロシージャ(PRODUCTとTIME)を定義し、これらをロード計画の「パラレル・ステップ」ノードに追加します。
    1. デザイナ・ナビゲータの「プロジェクト」タブに移動し、HandsOnLoadsHandsOnフォルダの順に展開します。「プロシージャ」を右クリックし、「新規プロシージャ」を選択します。
    2. PRODUCTディメンションをロードするためのプロシージャに適切な名前を入力します。環境に応じて他のフィールドを更新します。「保存」をクリックして編集タブを閉じます。
    3. 前述の2つの手順を繰り返して、TIMEディメンションをロードするためのプロシージャを作成し、保存します。
    4. データ・ウェアハウスのロード計画エディタに戻ります。パラレル・ステップがハイライト表示された状態で、「ステップの追加」(緑のプラス記号)をクリックして、「シナリオ実行ステップ」を選択します。
    5. ステップの既存のシナリオを選択するか、ステップを実行するシナリオがODIで自動的に生成される他のオブジェクト(パッケージ、インタフェース、変数およびプロシージャ)を選択します。ロード計画のパラレル・ノードでステップとして定義した2つのプロシージャを追加します。「シナリオ実行ステップの追加」画面で、「ルックアップ・シナリオ」(虫眼鏡)をクリックします。
    6. 「実行可能なオブジェクト・タイプ」として「プロシージャ」を選択します。PRODUCTディメンションをロードするプロシージャを選択します。「OK」をクリックします。
    7. 「新規シナリオ」ウィンドウに移動し、ODIでこのプロシージャを実行するために作成するシナリオの名前を追加します。「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。デフォルトでは、ODIがプロシージャに対して生成する新しいシナリオの名前、およびロード計画に追加したステップ名は、プロシージャ名と同じです。

    8. 「終了」をクリックします。

      2つのパラレル・ステップの最初のステップが表示されます。

    9. ステップ階層の「パラレル」ノードをクリックし、再度「ステップの追加」(緑色のプラス記号)をクリックします。「シナリオ実行ステップ」を選択します。
    10. ステップeからhを繰り返して、ステップ階層のパラレル・ノードにTIMEディメンションをロードするための他のプロシージャを追加します。
  8. ODIオブジェクトをシリアル・ステップとしてロード計画に追加します。
    1. ステップ階層に移動し、root_stepをハイライト表示します。「ステップの追加」(緑のプラス記号)をクリックして、「シリアル・ステップ」を選択します。

      シリアル・ノードがステップ階層に表示されます。

    2. 「シリアル」ノードを選択し、「ステップの追加」をクリックして「シナリオ実行ステップ」を選択します。
    3. 「シナリオ実行ステップの追加」ウィンドウに移動して、「ルックアップ・シナリオ」をクリックします。
    4. 「実行可能なオブジェクト・タイプ」として「プロシージャ」を選択します。プロシージャ名を選択します。「OK」をクリックします。「新規シナリオ」ウィンドウで、ODIでシナリオを作成してこのプロシージャを実行できるようにシナリオの名前としてデフォルトを受け入れ、「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。

    5. 「終了」をクリックします。

      最初のシリアル・ステップが表示されます。

    6. ステップ階層の「シリアル」ノードをクリックし、再度「ステップの追加」をクリックします。「シナリオ実行ステップ」を選択します。
    7. 「ルックアップ・シナリオ」をクリックして、「マッピング」を選択します。
    8. マッピング名を選択して、「OK」をクリックします。「新規シナリオ」ウィンドウで、ODIでシナリオを作成してこのマッピングを実行できるようにシナリオの名前としてデフォルトを受け入れ、「OK」をクリックします。

      ODIは「シナリオ実行ステップの追加」ウィンドウに戻ります。

    9. 「終了」をクリックします。
    10. 残りのシリアル・マッピングを追加するには、前の4つのステップを繰り返します。
  9. ロード計画を実行し、オペレータ・ナビゲータの実行済ステップのリストを確認します。
    1. 緑色の矢印をクリックして、ロード計画を実行します。「ロード計画の開始」ウィンドウで「OK」をクリックし、「ロード計画が開始しました」メッセージが表示されたら「OK」をクリックします。
    2. オペレータ・ナビゲータを開き、「リフレッシュ」をクリックし、ロード計画の実行結果を確認します。

      ロード計画のステップは、秒単位での実行のグループ化として表示されます。ロード計画ステップごとに、ODIによって実行用のシナリオが生成されました。パラレルに実行されているステップを表示できます。

『Oracle Data Integratorでの統合プロジェクトの開発』ロード計画の作成に関する項を参照してください。