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

DataWorks:スケジューリングパラメーターのソースと式

最終更新日:Mar 27, 2026

スケジューリングパラメーターを使用すると、実行時に動的な時間値をノードコードに渡すことができます。タスクが実行されるたびに、DataWorks は、Data Studio の [プロパティ] タブの [スケジューリングパラメーター] セクションで設定したルールに基づいて、ノードコード内のパラメータープレースホルダーを計算値に置き換えます。

基本概念

スケジューリングパラメーターがどのように値を計算するかは、2 つの時間概念によって決まります。

概念 定義 精度
データタイムスタンプ スケジューリング時間の前日。オフラインコンピューティングでは、これはビジネス日付、つまりソースデータが生成された日を表します。
スケジューリング時間 タスクインスタンスが実行されるようにスケジュールされた時間。キューの待機時間やその他の要因により、実際の開始時刻とは異なる場合があります。 第2

違いが重要な理由:一般的な ETL ワークフローでは、今日、昨日のデータを処理します。タスクが 2024-03-15 02:00:00 に実行される場合、データタイムスタンプは 2024-03-14 となり、処理対象データのビジネス日付を表します。この 1 日のオフセットが、${...} フォーマットの基礎となります。

スケジューリングパラメーターの値は、タスクインスタンスが生成されるときに決定されます。インスタンスが実際にいつ実行されるかに関係なく、この値は変更されません。

パラメーターフォーマットの選択

DataWorks は 2 種類のカスタム時間パラメーターフォーマットを提供しています。適切なものを選択するには、次の表をご利用ください:

やりたいこと 使用
昨日の日付 (データタイムスタンプ) を参照する ${...} ${yyyymmdd}
データタイムスタンプに日、月、または年を加算または減算する ${...} ${yyyymmdd-7}
正確なスケジューリング時間 (秒単位) を参照する $[...] $[yyyymmddhh24miss]
スケジューリング時間に時間または分を加算または減算する $[...] $[hh24miss-1/24]
スケジューリング時間に月または年を加算または減算する $[...]add_months() $[add_months(yyyymmdd,-1)]
${yyyymmdd}$[yyyymmdd-1] と同等で、どちらもデータタイムスタンプを生成します。${...} フォーマットは日単位の精度のみです。時間または分レベルの精度が必要な場合は $[...] を使用してください。

${...} パラメーター (データタイムスタンプベース)

${...} パラメーターは、タスクのデータタイムスタンプを基準に時間を計算します。これらは yyyyyymmdd コンポーネントをサポートし、日、月、年の ±N 演算をサポートします。

精度:日単位のみ。時間、分、秒のコンポーネントはサポートされていません。

一般的なフォーマット

オフセット パラメーター
N 日前以降 ${yyyymmdd±N}
N週前以降 ${yyyymmdd±7*N}
N ヶ月前以降 ${yyyymm±N}
N 年前以降 ${yyyy±N}
N 年前または N 年後 (yy フォーマット) ${yy±N}
カスタム日付区切り文字 ${yyyy-mm-dd±N}
月の初日 (文字列連結) ${mm}01
月または年でオフセットするには、$[...] ではなく ${yyyymm±N} または ${yyyy±N} を使用してください。

$[...] パラメーター (スケジューリング時間ベース)

$[...] パラメーターは、タスクのスケジューリング時間を基準に時間を計算します。これらはすべての ${...} コンポーネントに加えて hh24hhmiss をサポートし、分数演算を使用して時間と分を表現します。

精度:秒。時間または分レベルの精度が必要な場合は、これらのパラメーターを使用してください。

時間と分の表記

$[...] フォーマットは、時間単位を 1 日の分数としてエンコードします:

単位 除数 意味
1 時間 /24 1 日の 1/24 $[hh24miss-1/24] — 1 時間前
N 時間 /24 1 日の N/24 $[hh24miss-3/24] — 3 時間前
1 分 /24/60 1 日の 1/(24x60) $[hh24miss-1/24/60] — 1 分前
N 分 /24/60 1 日の N/(24x60) $[hh24miss-15/24/60] — 15 分前

時間フィールドには、hh24 (24 時間表記) と hh (12 時間表記) の両方がサポートされています。

一般的なフォーマット

オフセット パラメーター
正確なスケジューリング時間 $[yyyymmddhh24miss]
N日前以降 $[yyyymmdd±N]
N週間前以降 $[yyyymmdd±7*N]
N 時間前以降 $[hh24miss±N/24] または $[hh24±N/24] または $[カスタムフォーマット±N/24]
N 分前以降 $[hh24miss±N/24/60] または $[yyyymmddhh24miss±N/24/60] または $[mi±N/24/60]
N ヶ月後 $[add_months(yyyymmdd,N)]
N ヶ月前 $[add_months(yyyymmdd,-N)]
N 年後 $[add_months(yyyymmdd,12*N)]
N 年前 $[add_months(yyyymmdd,-12*N)]
前日1時間前 $[yyyymmdd-1-1/24]
$[...] では、年と月のオフセットに $[yyyy-N]$[mm-N] はサポートされていません。代わりに $[add_months(...)] を使用してください。

日またぎ問題

タスクが深夜近くに実行され、時間または分レベルのパラメーターを使用する場合、計算された値が誤った日のパーティションを参照する可能性があります。たとえば、3 月 15 日の 00:00 にスケジュールされたタスクが 1 時間を減算すると 23:00 が生成されますが、yyyymmdd コンポーネントはどの日付に解決されるでしょうか?詳細とソリューションについては、「当日の 00:00 にノードのインスタンスを実行して、前日の 23:00 に対応するパーティションのデータを分析しますが、当日の 23:00 に対応するパーティションのデータが分析されてしまいます。どうすればよいですか?」をご参照ください。

組み込みパラメーター

DataWorks は以下の組み込みパラメーターを提供しています。柔軟性を高めるため、可能な限りカスタム時間パラメーターを代わりに使用してください。

パラメーター 値のフォーマット 説明
$bizdate yyyymmdd データタイムスタンプ。${yyyymmdd} と同じです。デフォルト:スケジューリング時間マイナス 1 日。
$cyctime yyyymmddhh24miss スケジューリング時間。$[yyyymmddhh24miss] と同じです。
$gmtdate yyyymmdd 現在の日付。データをバックフィルする場合、データタイムスタンプ + 1 日に設定します。
$bizmonth yyyymm データタイムスタンプからの月。データタイムスタンプが当月の場合、1 ヶ月前を返します。それ以外の場合は、データタイムスタンプの月を返します。
$jobid タスクが属するワークフローの ID。
$nodeid ノード ID。
$taskid タスクインスタンスの ID。

注意事項

  • Shell ノード:Shell ノードのスケジューリングパラメーターは、$N という異なるフォーマットを使用します。N は 1 から始まる整数です。${...} および $[...] フォーマットは適用されません。

  • 定数:スケジューリングパラメーターに定数文字列を割り当てると、実行ごとに同じ値が渡されます。

  • ノードコード内の `${bizdate}`:ノードコード内の変数 ${bizdate} には、特別な組み込みの意味はありません。これはカスタム変数名です。${Variable} フォーマットで定義し、[スケジューリングパラメーター] セクションでマッピングした変数はすべて同じように機能します。

  • 夏時間:DataWorks は、タスクのスケジューリングに影響を与えることなく夏時間の移行を処理します。タスクが夏時間を採用しているリージョンで実行される場合は、「夏時間の切り替えがタスクの実行に与える影響」をご参照ください。

付録:サポートされている組み込みスケジューリングパラメーター

以下の組み込みパラメーターはノードコードで利用可能であり、スケジューリング構成で参照できます。

パラメーター 説明
${projectId} MaxCompute プロジェクトの ID。
${projectName} MaxCompute プロジェクトの名前。
${nodeId} ノード ID。
${gmtdate} インスタンスが実行されるようにスケジュールされた日付。yyyy-MM-dd 00:00:00 フォーマット。
${taskId} タスクインスタンス ID。
${seq} 同日にスケジュールされたすべてのインスタンスの中でのタスクインスタンスのシーケンス番号。
${cyctime} インスタンスが実行されるようにスケジュールされた時間。
${status} インスタンスのステータス。有効な値:SUCCESS および FAILURE
${bizdate} データタイムスタンプ。
${finishTime} インスタンスの実行が終了した時間。
${taskType} インスタンスが実行されるモード。有効な値:NORMALMANUALPAUSESKIPUNCHOOSE、および SKIP_CYCLE
${nodeName} ノードの名前。

参考文献