12 シナリオの使用

この章では、シナリオの処理方法について説明します。シナリオは、ソース・コンポーネント(マッピング、パッケージ、プロシージャ、変数)を本番に移行するために設計されます。シナリオは、このコンポーネント用のコード(SQL、シェルなど)の生成結果として作成されます。

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

12.1 シナリオの概要

コンポーネントが完成し、テストした後は、その実際の状態に対応するシナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオのコード(生成された言語)は確定されます。確定後に、シナリオの作成の基となったコンポーネントが変更された場合でも、シナリオが変更されることはありません。

パッケージ、プロシージャ、マッピングまたは変数のシナリオを生成できます。プロシージャ、マッピングまたは変数用に生成されるシナリオは、プロシージャの実行、マッピング、または変数のリフレッシュを行う単一ステップのシナリオです。

シナリオ変数は、シナリオで使用される変数であり、シナリオの開始時にその動作をパラメータ化するために設定する必要があります。

一度生成されると、シナリオは作業リポジトリ内に格納されます。このシナリオは、エクスポートして別のリポジトリ(リモートまたはリモート以外)にインポートし、様々なコンテキストで使用できます。シナリオを作成できるのは開発作業リポジトリからのみですが、開発作業リポジトリと実行作業リポジトリの両方にインポートできます。

シナリオは、オペレータ・ナビゲータとデザイナ・ナビゲータの両方で「ロード計画とシナリオ」セクションに表示されます。シナリオは、デザイナ・ナビゲータの「プロジェクト」セクションのプロジェクト内にも表示されます。

シナリオはバージョン管理することもできます。詳細は、バージョン制御(レガシー・モード)の使用を参照してください。

シナリオは、Oracle Data Integrator Studioのコマンド行から起動でき、ランタイム・エージェントの組込みスケジューラまたは外部スケジューラを使用してスケジュールできます。シナリオ実行およびシナリオのスケジュールの詳細は、『Oracle Data Integratorの管理』統合プロセスの実行に関する項を参照してください。

12.2 シナリオの生成

オブジェクトに対するシナリオの生成では、本番環境でのデプロイおよび実行に使用する、このオブジェクト用のコードがコンパイルされます。

シナリオを生成するには:

  1. デザイナ・ナビゲータで、プロジェクトの下にある、シナリオを生成するパッケージ、マッピング、プロシージャまたは変数をダブルクリックします。対応するオブジェクト・エディタが表示されます。次に、「ODI」メニューで、「生成」「シナリオ」を選択します。「新規シナリオ」ダイアログが表示されます。

    あるいは、デザイナ・ナビゲータからパッケージ、マッピング、プロシージャまたは変数を右クリックして、「シナリオの生成...」を選択します。「新規シナリオ」ダイアログが表示されます。

  2. シナリオの「名前」および「バージョン」を入力します。この名前は、オペレーティング・システム・コマンドで使用できるように、自動的に大文字に変換され、特殊文字はアンダースコアに置換されます。

    シナリオの「名前」および「バージョン」フィールドは、次の値を使用して事前設定されます。

    • 名前: そのコンポーネントに生成した最後のシナリオと同じ名前

    • バージョン: バージョン番号が自動的に増分されます(前の数値バージョンが存在しない場合は001に設定されます)。

    そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

    ノート:

    新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。このパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開してシナリオ・ノードを選択します。

  3. 「OK」をクリックします。
  4. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。
    • すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択します。

    • 選択した変数をパラメータとして使用する場合は、「選択済を使用」を選択します

    • すべての変数の選択を解除する場合は、「なし」を選択します。

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

シナリオは「シナリオ」タブに表示されます。また、プロジェクトの下にあるソース・オブジェクトの「シナリオ」ノードの下に表示されます。

12.3 シナリオの再生成

既存のシナリオを同じ名前とバージョン番号で再生成できます。再生成では、ソース・オブジェクトの内容から生成したシナリオで既存のシナリオを置換できます。既存のシナリオに関連付けられているスケジュールは保持されます。

シナリオを再生成するには:

  1. デザイナ・ナビゲータの「プロジェクト」セクションまたは「ロード計画とシナリオ」セクションで、シナリオを選択します。
  2. 右クリックして「再生成」を選択します。
  3. 「OK」をクリックします。

警告:

シナリオの再生成は元に戻すことができません。重要なシナリオの場合は、新しいバージョン番号を使用してシナリオを生成することをお薦めします。

12.4 シナリオ・グループの生成

プロジェクトまたはフォルダにグループ化されたパッケージ、マッピング、プロシージャおよび変数のセットが完成し、テストした後、シナリオを生成できます。この操作は、デザイナ・ナビゲータで実行します。

シナリオ・グループを生成するには:

  1. オブジェクトのグループが含まれているプロジェクトまたはフォルダを選択します。
  2. 右クリックして「すべてのシナリオを生成」を選択します。
  3. 「シナリオ・ソース・オブジェクト」セクションで、シナリオを生成するオブジェクトのタイプを選択します。
  4. 「マーカー・フィルタ」セクションで、マーカー・グループのマーカーに従って、生成するコンポーネントをフィルタ処理できます。
  5. シナリオの「生成モード」を選択します。
    • 置換: オブジェクトごとに、最終バージョンのシナリオを、同じ内部ID、名前およびバージョンの新しいシナリオで上書きします。セッション、シナリオ・レポートおよびスケジュールは削除されます。オブジェクトに対するシナリオが存在していない場合は、バージョン番号001のシナリオが作成されます。

    • 再生成: オブジェクトごとに、最終バージョンのシナリオを、同じ内部ID、名前およびバージョンの新しいシナリオで上書きします。スケジュール、セッション、シナリオ・レポート、変数選択および同時実行制御設定が保持されます。オブジェクトに対するシナリオが存在していない場合、このモードではシナリオは作成されません。

    • 作成: 各オブジェクトに対して、最終バージョンのシナリオと同じ名前で、バージョン番号が自動的に増分された新しいシナリオが作成されます。オブジェクトに対するシナリオが存在していない場合は、オブジェクト名に基づいて命名されたバージョン番号001のシナリオが作成されます。

      ノート:

      そのコンポーネントにシナリオが作成されていない場合は、シナリオの最初のバージョンが自動的に作成されます。

      新規シナリオの名前は、「シナリオ命名規則」ユーザー・パラメータに従って、コンポーネント名を基に命名されます。このパラメータを設定するには、メニュー・バーで「ツール」オプションの「プリファレンス」をクリックし、「ODI」ノード、システム・ノードの順に展開してシナリオ・ノードを選択します。

      「作成」生成モードを選択すると、バージョン番号が自動的に増分されます(前の数値バージョンが存在しない場合は001に設定されます)。

    • ショートカットが実際のオブジェクトであるものとしてシナリオを生成する場合は、「すべての下層オブジェクトがマテリアライズされるものとしてシナリオを生成」を選択します。

  6. 「OK」をクリックします。
  7. シナリオで変数を使用する場合は、「シナリオ変数」ダイアログで、シナリオのパラメータとして使用する変数を定義できます。すべての変数をパラメータとして使用する場合は、「すべてを使用」を選択するか、「選択済を使用」を選択してパラメータ変数をチェックします。

12.5 シナリオおよびロード計画の同時実行の制御

デフォルトでは、同じシナリオまたはロード計画の2つのインスタンスを同時に実行できます。

この状況は複数の場合に発生します。たとえば:

  • シナリオ実行ステップを含むロード計画が2つ以上のインスタンスで実行されているために、シナリオ実行ステップが2つ以上のロード計画インスタンスで同時に実行される可能性がある場合。

  • シナリオがコマンドラインから、ODI Studioから、またはエージェントでのスケジュールに従って実行されるが、すでに同じシナリオの別のインスタンスが同じエージェント、別のエージェントまたはODI Studioセッションで実行されている場合。

同じシナリオまたはロード計画の同時実行は、すべてのリモート・エージェントおよび内部エージェントにわたって適用されます。

シナリオまたはロード計画の複数のインスタンスを同時に実行することは、特にジョブでデータの書込みが行われる場合、お薦めしません。同時実行は、同時実行制御オプションを使用して制御できます。

ODIは、特定のシナリオまたはロード計画を、名前およびバージョンではなく内部IDで識別します。このため、同じ内部IDを持つシナリオまたはロード計画は、再生成後または変更後も同じシナリオまたはロード計画として処理されます。反対に、シナリオを削除してから、同じ名前およびバージョン番号で新しいシナリオを生成すると、別のシナリオが生成されます(別の内部IDを持つため)。

同時実行制御はシナリオまたはロード計画に対していつでも有効化または無効化できますが、すでに実行中のセッションおよび新しく開始されるセッションには次のような影響があります。

  • 同時実行制御を無効から有効に切り替えると、すでに実行中のジョブおよびキューに入っているジョブは実行中ジョブとしてカウントされ、新しいジョブ発行はジョブ発行時の同時実行制御設定を使用して処理されます。

  • シナリオまたはロード計画の同時実行制御を有効から無効に切り替えると、すでに発行されて待機状態にあるジョブ(または後で再開されるジョブ)は元の同時実行制御設定値を保持するため、実行中のジョブとキューに入っているジョブを実行中ジョブとみなして待機します。

    ただし、同時実行制御が無効になった状態で新しいジョブが発行されると、すでに待機中のジョブよりも先に実行されることがあります。その結果、ポーリングの時点で、同時実行制御が有効になっていない状態で開始された実行中ジョブがシステムで検出されると、待機中のジョブが遅延する可能性があります。また、待機中のジョブが最終的に実行を開始した後も、後で発行されて同時に実行されている制御対象外のジョブによる影響を受けることがあります。

シナリオまたはロード計画の同時実行を制限するには、次のステップを実行します。

  1. デザイナ・ナビゲータまたはオペレータ・ナビゲータでシナリオまたはロード計画を右クリックし、「開く」を選択して開きます。
  2. 「定義」タブを選択し、同時実行制御オプションを変更します。
    • このシナリオまたはロード計画の複数のインスタンスの同時実行を許可しない場合は、「同時実行の制限」チェック・ボックスを有効にします。「同時実行の制限」が無効になっている(チェックされていない)場合、制限はなく、このシナリオまたはロード計画の複数のインスタンスを同時に実行できます。

    • 「同時実行の制限」が有効になっている場合、目的の「違反動作」を設定します。

      • 実行エラーの発生: シナリオまたはロード計画のインスタンスがすでに実行中の場合、別のインスタンスを実行しようとすると、セッションは作成されますが、即時に終了され、同時実行制御エラーの原因となった現在実行中のセッションを特定する実行エラー・メッセージが表示されます。

      • 実行の待機: シナリオまたはロード計画のインスタンスがすでに実行中の場合、追加の実行は待機ステータスになり、システムは実行の順番の到来をポーリングします。セッションのステータスは、現在実行中のセッションと、実行中インスタンスの完了後の実行の順番を待機しているすべての同時セッション(ある場合)を反映するように定期的に更新されます。

        このオプションを選択した場合、「待機ポーリング間隔」で、実行中インスタンスが完了したかどうかをシステムでチェックする頻度を設定します。「待機ポーリング間隔」は、「実行の待機」を選択した場合にのみ入力できます。

        待機ポーリング間隔を指定しない場合、実行中エージェントのデフォルトが使用されます(ODI 12.1.3では、デフォルト・エージェントの値は30秒です)。

  3. 「保存」をクリックして変更を保存します。

12.6 シナリオのエクスポート

エクスポート(およびインポート)の手順によって、Oracle Data Integratorオブジェクトをあるリポジトリから別のリポジトリに転送できます。

単一のシナリオ、またはシナリオのグループをエクスポートできます。

1つのシナリオのエクスポートについては、1つのODIオブジェクトのエクスポートを参照してください。

シナリオ・グループをエクスポートするには:

  1. シナリオのグループが含まれているプロジェクトまたはフォルダを選択します。
  2. 右クリックして「すべてのシナリオのエクスポート」を選択します。「すべてのシナリオのエクスポート」ダイアログが開きます。
  3. 「すべてのシナリオのエクスポート」ダイアログで、エクスポート・パラメータを次のように指定します。
    パラメータ 説明

    エクスポート・ディレクトリ

    エクスポート・ファイルが作成されるディレクトリ。

    「エクスポート・ディレクトリ」を指定しない場合、エクスポート・ファイルは「デフォルトのエクスポート・ディレクトリ」に作成されることに注意してください。

    子コンポーネント・エクスポート

    このオプションを選択すると、エクスポート対象のオブジェクトにリンクされたオブジェクトもエクスポートされます。これらのオブジェクトは、ツリー内でエクスポートされたオブジェクトの下に表示されるオブジェクトです。このオプションは選択されたままにしておくことをお薦めします。詳細は、「子コンポーネントを伴うオブジェクトのエクスポート」を参照してください。

    既存のファイルを警告なしで置換します

    このオプションを選択すると、既存のファイルがエクスポートのファイルで置換されます。

  4. シナリオをエクスポートするオブジェクトのタイプを選択します。
  5. 暗号化オプションを設定します。エクスポートしたシナリオでパスワードなどの機密データを保持および暗号化する場合は、エクスポート・キーを設定します。機密データをインポートして復号化する場合、後でこのシナリオをインポートするときにこのエクスポート・キーを入力する必要があります。
  6. 拡張オプションを設定します。この一連のオプションを使用すると、XML出力ファイル形式をパラメータ化できます。デフォルト値のままにしておくことをお薦めします。

  7. パラメータ 説明

    XMLバージョン

    エクスポート・ファイルに指定されるXMLバージョン。XMLファイル・ヘッダーのパラメータxmlバージョン

    <?xml version="1.0" encoding="ISO-8859-1"?>

    文字セット

    エクスポート・ファイルに指定するエンコーディング。XMLファイル・ヘッダーのパラメータencodingの値です。

    <?xml version="1.0" encoding="ISO-8859-1"?>

    Java文字セット

    ファイル生成に使用されるJava文字セット。

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

XML形式のエクスポート・ファイルが指定した場所に作成されます。

12.7 本番へのシナリオのインポート

デザイナから生成したシナリオをエクスポートして、開発リポジトリまたは実行リポジトリにインポートできます。この操作は、シナリオを別のリポジトリ(異なる環境やサイト上など)にデプロイするために使用されます。

開発リポジトリへのシナリオのインポートは、デザイナ・ナビゲータまたはオペレータ・ナビゲータで実行します。実行リポジトリの場合、この目的で使用できるのはオペレータ・ナビゲータのみです。

シナリオをインポートする方法は、次の2通りあります。

  • 「インポート」 では、標準のオブジェクト・インポート・メソッドが使用されます。このインポート・プロセス時に、エクスポートしたシナリオに関連付けられているスケジュールをインポートするかどうかを選択できます。

  • 「置換のインポート」では、既存のシナリオがエクスポート・ファイルの内容で置換されます。他のオブジェクトからこのシナリオへの参照は保持されます。元のシナリオのセッション、シナリオ・レポートおよびスケジュールは削除され、エクスポート・ファイルのスケジュールで置換されます。

シナリオは、バージョンおよびソリューションを使用して、本番にデプロイおよび転送することもできます。詳細は、バージョン制御(レガシー・モード)の使用を参照してください。

12.7.1 シナリオのインポート

1つ以上のシナリオをOracle Data Integratorにインポートするには:

  1. オペレータ・ナビゲータで、「シナリオ」パネルを選択します。
  2. 右クリックして「インポート」「シナリオのインポート」の順に選択します。
  3. 「インポート・タイプ」の値を選択します。インポート・タイプの詳細は、エクスポートおよびインポートを参照してください。
  4. 「ファイル・インポート・ディレクトリ」を指定します。
  5. シナリオとともにエクスポートされたスケジュールもインポートする場合は、「スケジュールのインポート」オプションを選択します。
  6. インポートするシナリオを「インポートするファイルを選択します」リストから1つ以上選択します。
  7. 「OK」をクリックします。

シナリオは作業リポジトリにインポートされます。また、オペレータ・ナビゲータの「シナリオ」ツリーに表示されます。この作業リポジトリが開発リポジトリの場合、これらのシナリオは、そのソースのパッケージ、マッピング、プロシージャまたは変数にも関連付けられます。

12.7.2 シナリオの置換

エクスポートしたシナリオでシナリオを置換する場合は、「置換のインポート」モードを使用します。

シナリオを置換モードでインポートするには:

  1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、置換するシナリオを選択します。
  2. シナリオを右クリックして、「置換のインポート」を選択します。
  3. 「オブジェクトの置換」ダイアログで、シナリオのエクスポート・ファイルを指定します。
  4. 「OK」をクリックします。

12.7.3 異なるリポジトリからのシナリオの使用

シナリオは、生成された作業リポジトリとは異なる作業リポジトリから操作する必要がある場合があります。

次に、このタイプのプロセスが発生する組織の例を2つ示します。

  • 企業に、同じソフトウェア・アプリケーションを使用する代理店が多数ある場合。IT本部では、データを中央データ・センターに一元化するパッケージとシナリオを開発します。これらのシナリオは、各代理店で同様に実行されるように設計されます。

  • 企業に、ソフトウェア・アプリケーションの開発、調整および運用を目的とした3つの別個のIT環境が存在している場合。この企業のプロセスでは、完全に独立した環境が要求されるため、リポジトリを共有できません。

前提条件

この組織の前提条件は、各環境(サイト、代理店または環境)に作業リポジトリをインストールしていることです。この作業リポジトリに関連付けられるマスター・リポジトリのトポロジには、論理アーキテクチャの観点から互換性がある必要があります(同じ論理スキーマ名)。物理アーキテクチャで記述される接続特性は、異なっていてもかまいません。

一部のプロシージャまたはマッピングでコンテキスト・コードを明示的に指定する場合は、ターゲット・トポロジに同じコンテキスト・コードが含まれる必要があることに注意してください。トポロジ(つまり、物理アーキテクチャと論理アーキテクチャ)は、開発のマスター・リポジトリからエクスポートし、ターゲット・リポジトリにインポートすることもできます。この操作は、トポロジ・モジュールを使用して実行します。この場合、物理トポロジ(サーバーのアドレス)は、シナリオを操作する前にパーソナライズする必要があります。トポロジのインポートでは、ターゲット・リポジトリにすでに存在するデータ・サーバーは変更されず、単に新規データ・サーバーが参照されることにも注意してください。

異なる作業リポジトリからシナリオを操作するには:

  1. 元のリポジトリからシナリオをエクスポートします(右クリックして「エクスポート」)
  2. シナリオ・エクスポート・ファイルをターゲット環境に転送する
  3. ターゲット環境でデザイナ・ナビゲータを開く(ターゲット・リポジトリに接続)
  4. エクスポート・ファイルからシナリオをインポートする

12.8 シナリオの暗号化および復号化

シナリオを暗号化すると、重要なコードを保護できます。暗号化されたシナリオは実行できますが、復号化しないかぎり、読み取ったり変更することはできません。暗号化されたシナリオによってログに生成されるコマンドも読み取ることはできません。

Oracle Data Integratorでは、個人暗号化キーに基づいたDES暗号化アルゴリズムが使用されます。このキーは、ファイルに保存して、暗号化または復号化操作を実行する際に再利用できます。

警告:

暗号化されたシナリオまたはプロシージャを暗号化キーなしで復号化する方法はありません。したがって、このキーは安全な場所に保管しておくことを強くお薦めします。

シナリオを暗号化するには:

  1. デザイナ・ナビゲータまたはオペレータ・ナビゲータで、暗号化するシナリオを選択します。

  2. 右クリックして「暗号化」を選択します。

  3. 「暗号化オプション」ダイアログで、次のいずれかの操作を実行します。

    • 個人キーで暗号化します: 個人キー・ファイルの場所を指定するか、個人キーの値を入力して、すでに存在している個人キーで暗号化します。

    • 新規暗号化キーを取得します: 新しいキーを生成します。

  4. 「OK」をクリックしてシナリオを暗号化します。新しいキーの生成を選択した場合は、ダイアログに新しいキーも表示されます。「保存」をクリックして、キーをファイルに保存します。

ノート:

文字数が少なすぎる個人キーを入力すると、キー・サイズが無効であるというエラーが発生します。

シナリオを復号化するには:

  1. 復号化するシナリオを右クリックします。
  2. 「復号化」を選択します。
  3. 「シナリオ復号化」ダイアログで、次のいずれかの操作を実行します。
    • 既存の暗号化キーファイルを選択します。

    • 個人キーに対応する文字列を入力(または貼付け)します。

復号化が完了するとメッセージが表示されます。