資料の 英語版 に戻る
DataStage でのジョブ前およびジョブ後のサブルーチンのセットアップ
DataStage でのジョブ前およびジョブ後のサブルーチンのセットアップ
最終更新: 2025年3月12日
ジョブ前処理サブルーチンとジョブ後処理サブルーチンを使用して、組み込みサブルーチンを実行します。
ジョブ前処理サブルーチンとジョブ後処理サブルーチンには、ジョブが実行される前にスクリプトを実行したり、ジョブが正常に完了した後にレポートを生成したりすることが含まれます。 サブルーチンからの戻りコード 0 は成功を示します。 その他のコードは失敗を示し、ジョブの実行時にリカバリー不能エラーを引き起こします。
ジョブ前処理サブルーチンまたはジョブ後処理サブルーチンをセットアップするには、以下のステップを実行します。
- DataStage® フローを開き、「設定」
アイコンをクリックします。
- 「設定」 ページで、 「ジョブ前処理/ジョブ後処理サブルーチン」をクリックします。
- ジョブ前処理サブルーチン, ジョブ後処理サブルーチン, またはその両方を指定してください。 次に、「保存」をクリックします。
サブルーチンでのカスタム Python コードの使用
Python パッケージをインストールして、ジョブ前サブルーチンとジョブ後サブルーチンでスクリプトを実行できます。
- DataStage フローを開き、「設定」
にナビゲートして、 「ジョブ前/ジョブ後のサブルーチン」をクリックします。
- 「実行する組み込みサブルーチン」の下で、 「シェル・コマンドの実行」を選択します。
- Shell command テキストボックスに、/px-storage の下にモジュール用のディレクトリを作成するコマンドと、目的のモジュールをインストールするコマンドを入力します。 このコマンド例は、ディレクトリー pip_modulesにモジュールをインストールします。
mkdir -p /px-storage/pip_modules && pip3 install <modulename1> <modulename2> --target /px-storage/pip_modules –user
- フローを保存して実行します。
- 非 root ユーザーがスクリプトを実行できるようにするには、 Python スクリプトの上部にモジュール・ディレクトリーのファイル・パスを追加します。 前の例に従って、以下を行います。
import sys sys.path.append("/px-storage/pip_modules")
- Shellコマンドテキストボックスのコマンドを、Pythonスクリプトを呼び出すコマンドに置き換えて、そのファイルパスを指定します。 この例では、 /ds-storage/ing_py_envからスクリプト
test_data.py
を呼び出します。python3 /ds-storage/ing_py_env/test_data.py
- フローを保存して実行します。
ジョブ前後ルーチンでの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コマンドを実行するには、以下の手順に従う。
- DataStage フローを開き、設定
に進み、Before/after-job subroutines をクリックします。
- 「実行する組み込みサブルーチン」の下で、 「シェル・コマンドの実行」を選択します。
- Shellコマンドテキストボックスに、実行したいcpdctlコマンドを入力します
cpdctl project list
- キャンバスからフローを実行したい場合は、ジョブキャンバス上にローカルパラメータを作成します。
- キャンバス上でパラメーターの追加をクリックし、パラメーターの作成をクリックします。
- Nameフィールドに、$ENABLE_CPDCTLとパラメータ名を指定する。
- Stringタイプを選択し、デフォルト値フィールドに値1を入力する。
- cpdctlコマンドラインを使用してジョブを実行したい場合は、以下のコマンドを使用して、変数ENABLE_CPDCTLでジョブを設定する。
cpdctl dsjob run --project-name --job --env ENABLE_CPDCTL=1
- 環境オプション ENABLE_CPDCTL=1 を指定してジョブを保存し、実行します。
トピックは役に立ちましたか?
0/1000