すべてのプロダクト
Search
ドキュメントセンター

DataWorks:各種ノードタイプのスケジューリングパラメーターの設定

最終更新日:Apr 10, 2026

ほとんどのノードタイプ (MaxCompute SQL ノードなど) では、スケジューリングパラメーターを同じ方法で設定します。ただし、共通シェルノードと PyODPS ノードではプロセスが異なります。このトピックでは、さまざまなノードタイプの設定例を示します。

SQL ノードとバッチ同期ノード

SQL ノードとバッチ同期ノードの設定は、ほとんどのノードタイプを代表するものです。この例では、MaxCompute SQL ノードを使用して、組み込みシステム変数とカスタムパラメーターに値を割り当て、コード内でそれらを参照する方法を示します。

説明

すべてのノードがスケジューリングパラメーターをサポートしているわけではありません。特定のノードがサポートしているかどうかを確認するには、「ノード開発」ドキュメントをご参照ください。

  • パラメーターの定義

    パラメーター

    var1

    $bizdate

    var2

    ${yyyymmdd}

    var3

    $cyctime

    var4

    ${yyyymmddhh24:mi:ss}

    var5

    abc

  • パラメーターの使用

    -- データタイムスタンプの取得
    SELECT '${var1}' '${var2}';
    -- スケジューリング時間の取得
    SELECT '${var3}' '${var4}';
    -- 定数の取得
    SELECT '${var5}';

スケジューリングパラメーターセクションで値を割り当てた後、コード内でそれらを参照できます。この例では、組み込みシステム変数 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} フォーマットによる文字列置換をサポートしていません。代わりに、グローバルな args 辞書オブジェクトからスケジューリングパラメーターを取得します。

  • パラメーターの定義

    パラメーター

    var1

    $bizdate

    var2

    ${yyyymmdd}

    var3

    $[yyyymmdd]

  • パラメーターの使用

    # カスタムパラメーター:var1 は組み込みパラメーターの値を取得します。
    a =args['var1']
    print (format(a))
    # カスタムパラメーター:var2 は ${...} フォーマットを使用して値を取得します。
    b =args['var2']
    print (format(b))
    # カスタムパラメーター:var3 は $[...] フォーマットを使用して値を取得します。
    c =args['var3']
    print (format(c))

上記の例で示すように、スケジューリングパラメーターセクションで値を割り当てます。コード内では、args['var1']args['var2']args['var3'] のように辞書オブジェクトを使用してパラメーターを参照します。以下の例は、その割り当てを示しています:

  • パラメーター var1 にデータタイムスタンプを割り当てます: var1=$bizdate

  • パラメーター var2 にデータタイムスタンプを割り当てます: var2=${yyyymmdd}

  • パラメーター var3 にデータタイムスタンプを割り当てます: var3=$[yyyymmdd]

詳細については、「ノードのスケジューリングパラメーターの設定」および「スケジューリングパラメーターのソースと式」をご参照ください。

Python ノード

Python ノードは、スケジューリングパラメーターをコマンドライン引数として受け取ります。スケジューリングパラメーターセクションでパラメーター値を順番にリストすると、システムはそれらをランタイムにスクリプトに渡します。コード内では、sys.argv[1]sys.argv[2] のようなインデックスを使用してこれらの値にアクセスできます。

説明

PyODPS ノードとは異なり、Python ノードは $var1 のような名前でパラメーターを直接参照することをサポートしていません。代わりに、パラメーターは sys.argv を使用して位置に基づいて読み取られます。

  • パラメーターの定義

    Python ノードの場合、値をスペース区切りのリストとして割り当てます。値は式または定数にすることができ、位置によってスクリプトの引数にマップされます。

    $[yyyymmdd] abc
  • パラメーターの使用

    import sys
    
    # 受信したすべてのパラメーターを出力
    print("Current received parameters:", sys.argv)
    
    # 1番目と2番目のパラメーターを取得
    param1 = sys.argv[1]
    param2 = sys.argv[2]
    print("Parameter 1:", param1)
    print("Parameter 2:", param2)

上記の例で示すように、スケジューリングパラメーターセクションでパラメーターに値をスペースで区切って割り当てます。その後、コード内で sys.argv[1]sys.argv[2] のようなインデックスを使用して値にアクセスします。以下の例は、その割り当てを示しています:

  • 最初のパラメーターにスケジューリング時間を割り当てます: $[yyyymmdd]

  • 2番目のパラメーターに定数 abc を割り当てます: abc

詳細については、「ノードのスケジューリングパラメーターの設定」および「スケジューリングパラメーターのソースと式」をご参照ください。

共通シェルノード

共通シェルノードは、名前付き変数の代わりに位置パラメーター ($1$2$3 など) を使用します。9番目以降のパラメーターには、${10} 構文を使用します。

  • パラメーターの定義

    共通シェルノードの場合、値をスペース区切りのリストとして割り当てます。値の順序は、スクリプト内の位置パラメーターの順序と一致する必要があります。

    $bizdate ${yyyymmdd} $[yyyymmdd]
  • パラメーターの使用

    # 位置パラメーター:組み込みパラメーターの値を取得します。
    echo $1
    # 位置パラメーター:${...} フォーマットを使用して値を取得します。
    echo $2
    # 位置パラメーター:$[...] フォーマットを使用して値を取得します。
    echo $3

スケジューリングパラメーターセクションで値を割り当てた後、コード内でそれらを位置パラメーター $1、$2、$3 として参照します。この例での割り当ては次のとおりです:

  • 位置パラメーター $1 にデータタイムスタンプを割り当てます: $bizdate

  • 位置パラメーター $2 にデータタイムスタンプを割り当てます: ${yyyymmdd}

  • 位置パラメーター $3 にスケジューリング時間を割り当てます: $[yyyymmdd]

詳細については、「ノードのスケジューリングパラメーターの設定」および「スケジューリングパラメーターのソースと式」をご参照ください。