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

DataStage のパイプライン・フローのマイグレーションおよび構成

最終更新: 2025年3月12日
DataStage のパイプライン・フローのマイグレーションと構成

以下のステップと制限は、パイプライン・キャンバスを使用して直接構成される、マイグレーションされたシーケンス・ジョブとフローに適用されます。

マイグレーションされたフロー

各コンポーネントの詳細については、「 DataStage 」の「Pipeline components」 を参照してください。

ファイルを待機
ファイル・パスを手動で再選択または構成してください。 クロス・ループのヘルパー・ノードとして、デフォルトのタイムアウト値は 23:59:59 です。 手動で値を更新するか、タイムアウトなしの場合は 00:00:00 に設定してください。
すべて待機
シーケンサー (すべて) およびネストされた条件を置き換えます。
いずれかを待機
シーケンサー (任意) を置き換えます。
パイプラインを終了する
ターミネーターを置き換えます。
最終メッセージ・テキストはサポートされていません。
シーケンス内のループ
開始/終了ループを置き換えます。
DataStage ジョブの実行
並列ジョブのジョブ・アクティビティを置き換える。
リスト・タイプは列挙型にマップされます。 パスはファイル・タイプにマップされます。 詳細は 、「オーケストレーションパイプラインのグローバルオブジェクトの設定 」を参照してください。
パイプライン・ジョブの実行
シーケンス・ジョブのジョブ・アクティビティを置き換える。 詳細は、 ジョブ をご覧ください。
Bash スクリプトを実行する
環境変数がストリング・リテラルとして扱われないように、環境変数を囲む単一引用符を二重引用符で置き換える必要があります。

DataStageでは、Bashノードにパイプライン用のスクリプトやファイルをコピーするためのボリュームのマウントはサポートされていません。 Bash ノード内のファイルを参照するには、 「Bash ノード内のファイルの参照 ( DataStage )」 を参照してください。

ユーザー変数を設定する
ユーザー変数を置き換えます。 ユーザー変数はグローバル・レベルで定義される。 詳細は 、「オーケストレーションパイプラインのグローバルオブジェクトの設定 」を参照してください。
エラー処理
例外ハンドラーを置き換えます。
error.status および error.status_message を使用して、障害が発生したノードの情報を取得します。 ds.GetErrorSource() および ds.GetErrorNumber() を使用して、エラー・ソースとエラー番号を取得します。
パイプラインの一般的な問題
  • サポートされない関数は、「1」または「サポートされない」を返します。
  • ループまたは例外ハンドラー内で外部ノードにアクセスすると、マイグレーションによって追加の Set ユーザー変数ノードが追加されます。
  • メイン・パイプラインに例外ハンドラー・ノードがある場合、またはループ・ノードにメイン・パイプラインを指すリンクがある場合、マイグレーションによって追加のノードとローカル・パラメーター MigrationTempFolderが作成されます。 Run Bash スクリプト・ノードは、ループ・ハンドラーまたは例外ハンドラー内に作成されます。 このノードは、 MigrationTempFolderで提供されるマウント・パスの下にリンケージ・ファイルを作成します。このパスの末尾には / が含まれている必要があります。 ループ・ハンドラーまたは例外ハンドラーの外側に、リンケージ・ファイルが作成されるのを待機するファイル待機ノードが作成されます。 マウントされたパスが正しくない場合、ノードは24時間待機します。 別の Run Bash スクリプト・ノードがリンケージ・ファイルを後で削除します。

  • 「失敗したアクティビティーを自動的に処理する」 を選択すると、エラーがスローされたときのリンクに条件が定義されていない限り、マイグレーションされたすべての実行ノードが 「パイプライン・エラー時に失敗」に設定されます。 条件が定義されているか、 「失敗したアクティビティーを自動的に処理する」 が定義されていない場合、ノードは 「エラー発生時にパイプラインを続行」に設定されます。
  • 移行の際には、すべての並列ジョブとシーケンスジョブ、およびそれらの依存関係をISXファイルに含める必要があります。 あるシーケンス・ジョブが別のシーケンス・ジョブに依存しているが、依存するシーケンス・ジョブがマイグレーションされたISXファイルに含まれていない場合、マイグレーションは依存するジョブをパイプラインジョブの実行ノードではなくDataStageジョブの実行ノードとしてマークします。 また、マイグレーションでは、不足しているパラメーターのために余分なノードが作成される。
  • チェックポイントを追加し、シーケンスに失敗しても再開できるようにするオプションがシーケンスジョブレベルで設定されている場合、ジョブは 'ノード・プロパティ・パネルで特定のノードのキャッシュを有効にするキャッシュメソッドで移行します。 キャッシュの使用状況]セクションでは、[選択したすべての条件が満たされたときにキャッシュを使用する]がデフォルトオプションとして設定され、[前の失敗した実行から再試行する]と[パイプラインのバージョンが前の実行から変更されていない]の両方が設定されます。 ノードレベルでジョブのチェックポイント実行を有効にしない場合、マイグレーションは選択したノードにデータキャッシュを作成します。 ノード・キャッシュの詳細については、 デフォルト設定の管理を参照してください。
  • 異なるサブパイプライン間でルーチン出力を共有するには、 ルーチンアクティビティノードをBashスクリプトの実行ノードユーザー変数の設定ノードとして移行します。 Run Bash ノードは、更新可能なプレースホルダスクリプトを生成します。
  • フローに欠落しているパラメータまたはパラメータセットへの参照が含まれている場合、移行により、欠落しているパラメータを参照するノードの前に追加の Bash スクリプトノードが作成され、フローのインポートに unbound_reference_warning メッセージが表示されます。 挿入されたノードの名前は、 node で始まります。 Bash スクリプトノードは、プレースホルダースクリプトを生成し、ノードの出力として不足しているパラメータを追加します。 パラメータ参照が欠落しているノードは、Bash スクリプトノードの出力を呼び出すように更新されます。

ユーザー状況の設定および取得

DataStageジョブでユーザー・ステータスを設定するには、TransformerステージのExpressionビルダーから組み込み関数SetUserStatusを呼び出します。 トランスフォーマーのトリガーSetUserStatusを呼び出すと、入力カラムの派生では使用できません。

Run DataStage ジョブノードで DataStage ジョブを呼び出すパイプラインでステータスを取得するには、組み込み関数 ds.GetUserStatus(tasks.<node name>)にRun DataStage ジョブ・ノードの名前を指定します。 また、 tasks. < node name> .user_statusを使用して、ジョブ結果でこれにアクセスすることもできます。 パイプラインでユーザー状況を設定するには、そのユーザー状況をユーザー変数の設定ノードで変数として追加し、 「ユーザー変数値をパイプライン結果として使用可能にする」を選択する必要があります。これにより、他のパイプラインがアクセスできる出力パラメーターになります。 別のパイプラインでは、実行パイプライン・ジョブ・ノードを使用して、ユーザー状況を設定するパイプラインを呼び出し、 tasks. < node name>.results.output_parameters. < user status parameter name>を使用してユーザー状況を取得することができます。

SetUserStatusが子パイプラインで呼び出された場合、マイグレーションはuser_statusというグローバルユーザー変数を作成し、ユーザー変数の値をパイプラインの結果として利用可能にするオプションを選択します。 また、親パイプラインでは、子パイプラインのステータスを取得する式.$UserStatustasks.results.output_parameters.user_statusに置き換えます。

構成されたフロー

DataStage ジョブの実行
DSJobRunEnvironmentName 環境変数は、ジョブの実行環境を指定します。 DataStage ジョブの実行環境を指定します。 DSJobRunEnvironmentName 環境変数を DataStage ジョブを実行 ノードに追加すると、特定の実行に対してプロジェクトレベルまたはジョブで設定されたデフォルトの実行環境を上書きすることができます。
例えば、 ds-px-large の実行環境でジョブを実行したい場合、プロジェクトレベルまたはジョブで設定されているデフォルトの ds-px-small 実行環境を上書きすることができます。 DataStage ジョブを実行 ノードの 入力 タブで、 環境変数 セクションに DSJobRunEnvironmentName を環境変数として追加し、その値を ds-px-large に設定します。
DataStage ジョブを実行 ノードの 環境変数 セクションで環境変数を追加し、同じ環境変数がすでに DataStage フローレベルで設定されている場合、 DataStage ジョブを実行 ノードから渡される値が優先されます。
Bash スクリプトを実行する
echo ステートメントでは、変数の値にアクセスするために二重引用符を使用する必要があります。 例えば、 echo "variablename" は、「variablename」を変数の値に置き換えます。 echo 'variablename' は、変数の名前をエコー出力するだけです。