0 / 0
資料の 英語版 に戻る

DataStage でのジョブ前およびジョブ後のサブルーチンのセットアップ

最終更新: 2025年3月12日
DataStage でのジョブ前およびジョブ後のサブルーチンのセットアップ

ジョブ前処理サブルーチンとジョブ後処理サブルーチンを使用して、組み込みサブルーチンを実行します。

ジョブ前処理サブルーチンとジョブ後処理サブルーチンには、ジョブが実行される前にスクリプトを実行したり、ジョブが正常に完了した後にレポートを生成したりすることが含まれます。 サブルーチンからの戻りコード 0 は成功を示します。 その他のコードは失敗を示し、ジョブの実行時にリカバリー不能エラーを引き起こします。

ジョブ前処理サブルーチンまたはジョブ後処理サブルーチンをセットアップするには、以下のステップを実行します。
  1. DataStage® フローを開き、「設定」 設定アイコン アイコンをクリックします。
  2. 「設定」 ページで、 「ジョブ前処理/ジョブ後処理サブルーチン」をクリックします。
  3. ジョブ前処理サブルーチン, ジョブ後処理サブルーチン, またはその両方を指定してください。 次に、「保存」をクリックします。

サブルーチンでのカスタム Python コードの使用

Python パッケージをインストールして、ジョブ前サブルーチンとジョブ後サブルーチンでスクリプトを実行できます。
  1. DataStage フローを開き、「設定」 設定アイコンにナビゲートして、 「ジョブ前/ジョブ後のサブルーチン」をクリックします。
  2. 「実行する組み込みサブルーチン」の下で、 「シェル・コマンドの実行」を選択します。
  3. Shell command テキストボックスに、/px-storage の下にモジュール用のディレクトリを作成するコマンドと、目的のモジュールをインストールするコマンドを入力します。 このコマンド例は、ディレクトリー pip_modulesにモジュールをインストールします。
    mkdir -p /px-storage/pip_modules && pip3 install <modulename1> <modulename2> --target /px-storage/pip_modules –user
  4. フローを保存して実行します。
  5. 非 root ユーザーがスクリプトを実行できるようにするには、 Python スクリプトの上部にモジュール・ディレクトリーのファイル・パスを追加します。 前の例に従って、以下を行います。
    import sys
    sys.path.append("/px-storage/pip_modules")
  6. Shellコマンドテキストボックスのコマンドを、Pythonスクリプトを呼び出すコマンドに置き換えて、そのファイルパスを指定します。 この例では、 /ds-storage/ing_py_envからスクリプト test_data.py を呼び出します。
    python3 /ds-storage/ing_py_env/test_data.py
  7. フローを保存して実行します。

ジョブ前後ルーチンでのcpdctlの使用

ジョブ・ルーチンの前後でコマンドライン(cpdctl)を使うことができる。

cpdctl バイナリは /px-storage/tools/cpdctl ディレクトリにあります。 cpdctlを最新バージョンに更新したい場合は、このページから特定のバージョンをダウンロードできます:https://github.com/IBM/cpdctl/releases. cpdctlのバージョンをコピーするには、以下のコマンドを使用する:
 oc cp cpdctl ds-px-default-ibm-datastage-px-runtime-7d77747cfc-sjngt:/px-storage/tools/cpdctl/cpdctl

cpdctlコマンドを実行するには、以下の手順に従う。

  1. DataStage フローを開き、設定 設定アイコン に進み、Before/after-job subroutines をクリックします。
  2. 「実行する組み込みサブルーチン」の下で、 「シェル・コマンドの実行」を選択します。
  3. Shellコマンドテキストボックスに、実行したいcpdctlコマンドを入力します
    cpdctl project list
  4. キャンバスからフローを実行したい場合は、ジョブキャンバス上にローカルパラメータを作成します。
    1. キャンバス上でパラメーターの追加をクリックし、パラメーターの作成をクリックします。
    2. Nameフィールドに、$ENABLE_CPDCTLとパラメータ名を指定する。
    3. Stringタイプを選択し、デフォルト値フィールドに値1を入力する。
  5. cpdctlコマンドラインを使用してジョブを実行したい場合は、以下のコマンドを使用して、変数ENABLE_CPDCTLでジョブを設定する。
    cpdctl dsjob run --project-name --job --env ENABLE_CPDCTL=1
  6. 環境オプション ENABLE_CPDCTL=1 を指定してジョブを保存し、実行します。