ほとんどのノードタイプでは、ODPS SQL ノードなどの SQL ノードと同じ方法でパラメーターを定義し、値を割り当てることができます。ただし、一般的な Shell ノードと PyODPS ノードでは、スケジューリングパラメーターの処理方法が異なります。この Topic では、さまざまなノードタイプの構成例を示します。
SQL ノードとバッチ同期ノード
スケジューリングパラメーターを構成するメソッドは、ODPS SQL ノードなどの SQL ノードとバッチ同期ノードで同じです。このメソッドは、他のほとんどのノードタイプにも適用されます。この Topic では、ODPS SQL ノードを例として、組み込みシステム変数とカスタムパラメーターに値を割り当てる方法、およびコードでそれらを呼び出す方法を説明します。
一部のノードはスケジューリングパラメーターをサポートしていない場合があります。ノードがスケジューリングパラメーターをサポートしているかどうかを判断するには、その特定のノードのドキュメントをご参照ください。
図に示すように、パラメーター割り当てエリアでパラメーターに値を割り当てます。次に、コード編集エリアで、組み込みシステム変数 var1 と var3、カスタムパラメーター var2 と var4、および定数 var5 を参照します。以下に割り当ての例を示します。
業務時間を組み込みシステム変数 var1 に割り当てます:
var1=$bizdateスケジューリング時間を組み込みシステム変数 var3 に割り当てます:
var3=$cyctime業務時間をカスタムパラメーター var2 に割り当てます:
var2=${yyyymmdd}スケジューリング時間をカスタムパラメーター var4 に割り当てます:
var4=$[yyyymmddhh24:mi:ss]定数 'abc' をパラメーター var5 に割り当てます:
var5=abc
PyODPS ノード
侵襲的なコード変更を防ぐため、PyODPS ノードは、コード内で ${param_name} フォーマットを使用した定義済み変数の直接的な文字列の置き換えをサポートしていません。代わりに、コードを実行する前に、`dict` (辞書) オブジェクトである args グローバル変数からスケジューリングパラメーターを取得する必要があります。パラメーター値の割り当てメソッドは、他のノードと同じです。
図に示すように、パラメーター割り当てエリアでパラメーターに値を割り当てます。次に、コード編集エリアで、組み込みパラメーター var1 とカスタムパラメーター var2 と var3 を参照します。辞書オブジェクトを追加すると、パラメーターは args['var1']、args['var2']、および args['var3'] として参照されます。以下に割り当ての例を示します。
業務時間を組み込みパラメーター var1 に割り当てます:
var1=$bizdate業務時間をカスタムパラメーター var2 に割り当てます:
var2=${yyyymmdd}業務時間をカスタムパラメーター var3 に割り当てます:
var3=$[yyyymmdd]
一般的な Shell ノードの構成例
一般的な Shell ノードでは、変数にカスタム名を使用しないでください。代わりに、昇順で序数 ($1、$2、$3 など) を使用して変数に名前を付けます。パラメーターが 10 個以上ある場合は、${10} フォーマットを使用して宣言します。
図に示すように、パラメーター割り当てエリアでパラメーターに値を割り当てます。次に、コード編集エリアで、組み込みパラメーター $1 とカスタムパラメーター $2 と $3 を定義します。以下に割り当ての例を示します。
一般的な Shell ノードでは、式のみを使用してパラメーターに値を割り当てます。複数のパラメーター値はスペースで区切る必要があります。値は、定義されたパラメーターに順番に割り当てられます。たとえば、上の図では、パラメーター割り当てエリアの最初の値 $bizdate が、最初に定義されたパラメーター $1 に割り当てられます。
業務時間を組み込みパラメーター $1 に割り当てます:
$bizdate業務時間をカスタムパラメーター $2 に割り当てます:
${yyyymmdd}スケジューリング時間をカスタムパラメーター $3 に割り当てます:
$[yyyymmdd]
サポートされているスケジューリングパラメーター値のフォーマットの詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。スケジューリングパラメーターを構成して使用する完全なプロシージャについては、「スケジューリングパラメーターの構成と使用」をご参照ください。
バッチ同期の例
Data Integration におけるスケジューリングパラメーターの一般的なアプリケーションシナリオについては、「シナリオ: Data Integration におけるスケジューリングパラメーターの一般的なアプリケーションシナリオ」をご参照ください。