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

DataWorks:スケジューリングパラメーターのサポートされている形式

最終更新日:Mar 19, 2025

DataWorks では、ノードに対して構成したスケジューリングパラメーターに基づいて、ノードの実行がスケジュールされます。スケジューリングパラメーターの値は、ノードが実行されるたびに、スケジューリングパラメーターの値の割り当てルールに基づいて自動的に置き換えられます。このようにして、スケジューリングパラメーターの値は、ノードのスケジューリング時に動的に置き換えられます。このトピックでは、スケジューリングパラメーターのサポートされている形式と、スケジューリングパラメーターの使用方法について説明します。

背景情報

ノードのコードで ${Variable} 形式で変数を定義し、[スケジューリングパラメーター] セクションの [プロパティ] タブで値として変数に割り当てられているスケジューリングパラメーターを構成すると、ノードが実行されるようにスケジュールされるときに、スケジューリングパラメーターの値がノードコードで動的に置き換えられます。スケジューリングパラメーターの形式は、ノードのタイプによって異なります。たとえば、Shell ノードのスケジューリングパラメーターは、$N 形式でのみ構成できます。N は 1 から始まる整数を指定します。詳細については、「さまざまなタイプのノードのスケジューリングパラメーターを構成する」をご参照ください。

定数をスケジューリングパラメーターに割り当てることができます。ノードのスケジューリングパラメーターに定数を割り当てると、ノードが実行されるたびに同じ値がスケジューリングパラメーターに渡されます。次の図の手順に従って、スケジューリングパラメーターに定数を割り当てることができます。

image

説明

このトピックでは、スケジューリングパラメーターの構成に基づいて、ノードのコードでスケジューリングパラメーターの値がどのように動的に置き換えられるかについて説明します。

このトピックは、次のセクションで構成されています。

スケジューリングパラメーターのサポートされている形式を理解したら、ビジネス要件に基づいてスケジューリングパラメーターを構成および使用できます。詳細については、このトピックの 次のステップ:スケジューリングパラメーターを構成して使用する セクションをご参照ください。

用語

ほとんどの場合、スケジューリングパラメーターは、動的な時点を指定する場合に使用されます。これらのシナリオでは、スケジューリングパラメーターの値は、ノードの [データタイムスタンプ] または [スケジューリング時間] に基づいて決定されます。スケジューリングパラメーターを構成する前に、ノードのデータタイムスタンプとスケジューリング時間の概念を理解する必要があります。これは、スケジューリングパラメーターの値の形式を構成するのに役立ちます。次の表に、これらの概念について説明します。

用語

説明

データタイムスタンプ

スケジューリング時間(ノードをスケジュールする時間)の前の日。オフラインコンピューティングのシナリオでは、データタイムスタンプは、ビジネストランザクションが実行された日付を表します。データタイムスタンプの値は、日にちまで正確です。たとえば、当日に前日の売上高の統計データを収集する場合、前日はビジネストランザクションが実行された日付であり、データタイムスタンプを表します。

スケジューリング時間

ビジネ データを処理するためにノードをスケジュールする時間。スケジューリング時間は秒まで正確です。スケジューリング時間は、ノードが実際に実行されるスケジュールされた時間とは異なる場合があります。ノードが実行される実際の時間は、複数の要因の影響を受けます。

スケジューリングパラメーターのサポートされている形式

ほとんどの場合、スケジューリングパラメーターは、さまざまな時間データを取得するために使用されます。ビジネス要件に基づいて、時間データを取得するためにノードのデータタイムスタンプまたはスケジューリング時間を使用することを選択できます。

説明

DataWorks は、固定形式の組み込み変数をいくつか提供しています。また、DataWorks では、次の表で説明するメソッドを使用して時間形式をカスタマイズすることもできます。

時間データを取得する方法

パラメーター形式

パラメーターの例

参照

ノードの [データタイムスタンプ] に基づいて時間データを取得する

ほとんどの場合、ノードのデータタイムスタンプを使用して時間データを取得するカスタム時間パラメーターは、${...}yyyyyymmdd で構成されます。${...} パラメーターを使用して、現在のデータタイムスタンプよりも N 日、N か月、または N 年前または後の時間を指定できます。

説明

ノードのデータ タイムスタンプは、スケジューリング時間の1日前を計算することで算出されます。これは、${yyyymmdd} パラメーターの値が $[yyyymmdd-1] パラメーターの値と同じであることを示します。

${yyyymmdd}${yyyy-mm-dd} などの ${...} 形式のカスタム時間パラメーターを使用して、時間データを取得できます。例:

  • ${yyyymmdd±N}

  • ${yyyymmdd±7*N}

  • ${yy±N}

  • ${mm}

  • ${yyyy-mm-dd±N}

詳細については、「${...} 形式のカスタム時間パラメーターの例」をご参照ください。

ノードの [スケジューリング時間] に基づいて時間データを取得する

ほとんどの場合、ノードのスケジューリング時間を使用して時間データを取得するカスタム時間パラメーターは、$[...]yyyyyymmddhh24mi、および ss で構成されます。 $[...] パラメーターを使用して、現在のスケジューリング時間より N 日、月、年、時間、分、または秒前後の時間を指定できます。

$[yyyymmddhh24miss] などの $[...] 形式のカスタム時間パラメーターを使用して、時間データを取得できます。たとえば、$[yyyymmdd-1-1/24] パラメーターを使用して、前日の現在の時間より 1 時間前の時間を指定できます。

上記の カスタム時間パラメーターを使用して目的の時間データを取得できない場合は、上記の カスタム時間パラメーターを使用してデータを取得し、次の表に記載されている操作を実行してデータを処理することで、目的の時間データを取得することをお勧めします。

サンプルシナリオ

説明

参照

エンジン関数を呼び出して、時間データをタイムスタンプに変換します。

ノードのコードでエンジン関数を呼び出して、目的の時間データを取得します。

スケジューリングパラメーターの戻り値を処理する

${mm}01: 各月の初日を取得します。

文字列を連結して、目的の時間データを取得します。

なし

注意事項

${…} パラメーター

N 年前または N か月前の時間を指定する場合、${...} パラメーターを使用します。

  • ${…} パラメーターは、日単位の精度です。 ${…} パラメーターを使用して、時間、分、または秒単位の精度で時間を指定することはできません。たとえば、${yyyy-mm-dd-1/24} 形式で ${...} パラメーターを指定することはできません。

  • 計算に基づく時間を指定する場合は、${…} パラメーターを使用することをお勧めします。たとえば、${yyyy-N} または ${mm-N} 形式でパラメーターを指定できます。

$[…] パラメーター

  • N 時間前または N 分前の時間を指定する場合は、$[…] パラメーターを使用します。

    • $[…] パラメーターを使用して、時間、分、または秒単位の精度で時間を指定できます。 $[yyyy-N] または $[mm-N] パラメーターを使用して、N 年前または N か月前の時間を取得することはできません。特定の年または月の時間を指定するには、${...} パラメーターを使用します。

    • 秒単位の精度で時間を指定する場合は、$[…] パラメーターを使用することをお勧めします。例: $[yyyy-mm-dd-1-1/24]

  • $[...] パラメーターの値は、ノードに対して生成されたインスタンスが実行される実際の時間によって変化しません。

    $[...] パラメーターの値は、ノードに対して生成されたインスタンスのスケジュール時間で決定されます。値は、インスタンスが生成されるときに決定されます。したがって、$[...] パラメーターの値は、ノードに対して生成されたインスタンスが実行される実際の時間によって変化しません。詳細については、このトピックの「付録: スケジューリングパラメーターと、ノードのデータタイムスタンプ、スケジュール時間、および実際の実行時間との関係」セクションをご参照ください。

説明
  • $[...] パラメーターを使用して時間単位の精度で時間を指定する場合、24 時間制と 12 時間制の両方がサポートされています。

  • hh24 は 24 時間制を示します。 hh は 12 時間制を示します。

${bizdate} 変数

一部のノードのコードには、${bizdate} 変数が含まれています。この変数に特別な意味はありません。ビジネス要件に基づいて、ノードのコード内の変数名をカスタマイズできます。

時間または分単位の精度で時間を指定する場合に発生する可能性のある日付をまたぐ問題の解決策

時間または分単位の精度で時間を指定する場合、日付をまたぐ問題が発生する可能性があります。問題の解決策については、「前日の 23:00 に対応するパーティションのデータを分析するために、当日の 00:00 にノードのインスタンスを実行します。ただし、当日の 23:00 に対応するパーティションのデータが分析されます。どうすればよいですか。」をご参照ください。

付録: パラメーター

${...} 形式のカスタム時間パラメーターと $[...] 形式のカスタム時間パラメーターの違いについては、「カスタム パラメーターの比較」トピックの「${...} パラメーターと $[...] パラメーターの違い」セクションをご参照ください。

${...} 形式のカスタム パラメーター

次の表に、一般的な時間形式の例を示します。

加算または減算する間隔

カスタム パラメーター

N 年前または N 年後

${yyyy±N}

N か月前または N か月後

${yyyymm±N}

N 週間前または N 週間後

${yyyymmdd±7*N}

N 日前または N 日後

${yyyymmdd±N}

N 日前または N 日後

${yyyymmdd±N}

yyyy 形式の N 年前または N 年後

${yyyy±N}

yy 形式の N 年前または N 年後

${yy±N}

重要
  • N か月前またはN 年前の時間を指定するには、${...} パラメーターを使用することをお勧めします。

  • ${…} パラメーターを使用して、N 日、N か月、または N 年のみを加算または減算できます。

$[...] 形式のカスタム パラメーター

次の表に、一般的な時間形式の例を示します。

加算または減算する間隔

カスタム パラメーター

N 年後

$[add_months(yyyymmdd,12*N)]

N 年前

$[add_months(yyyymmdd,-12*N)]

N か月後

$[add_months(yyyymmdd,N)]

N か月前

$[add_months(yyyymmdd,-N)]

N 週間前または N 週間後

$[yyyymmdd±7*N]

N 日前または N 日後

$[yyyymmdd±N]

N 時間前または N 時間後

次のいずれかの方法を使用して、N 時間を加算または減算できます。

  • $[hh24miss±N/24] および $[hh24±N/24]

  • $[カスタム時間形式±N/24]

    たとえば、次のカスタム時間パラメーターを使用して、1 時間前の時間を指定できます。

    • 特定の月: $[mm-1/24]

    • 特定の年: $[yyyy-1/24]

    • 特定の年の特定の月: $[yyyymm-1/24]

    • 特定の年の特定の月の特定の日: $[yyyymmdd-1/24]

    • 特定の日の前日: $[yyyymmdd-1-1/24]

N 分前または N 分後

次のいずれかの方法を使用して、N 分を加算または減算できます。

  • $[hh24miss±N/24/60]

  • $[yyyymmddhh24miss±N/24/60]

  • $[mi±N/24/60]

  • $[カスタム時間形式±N/24/60]

    たとえば、次のカスタム時間パラメーターを使用して、ノードのスケジュール時刻より 15 分前の時間を指定できます。

    • $[yyyy-15/24/60]

    • $[yyyymm-15/24/60]

    • $[yyyymmdd-15/24/60]

    • $[hh24-15/24/60]

    • $[mi-15/24/60]

hh24(24 時間形式)とhh(12 時間形式)は時間を示します。$cyctime パラメーターの値は、時、分、または秒まで正確です。したがって、$[…] パラメーターの値は、時、分、または秒まで正確です。エンジン関数を使用して、このトピックで説明されていない形式のカスタム パラメーターを指定できます。詳細については、「スケジュール パラメーターの戻り値を処理する」をご参照ください。

重要
  • N 時間前またはN 分前の時間を指定する場合は、$[...] パラメーターを使用します。

  • スケジュール パラメーターの値は、ノードのインスタンスが生成されたときに決定され、ノード インスタンスが実際に実行される時刻によって変化することはありません。

組み込みパラメーター

DataWorks は、次の表で説明する組み込みパラメーターをサポートしています。組み込みパラメーターは、スケジュール パラメーターの値として使用できます。ただし、組み込みパラメーターは柔軟ではありません。スケジュール パラメーターの値として、カスタム時間パラメーターを使用することをお勧めします。

組み込みパラメーター

説明

$bizdate

ノードのデータ タイムスタンプ。このパラメーターの値は、yyyymmdd 形式です。このパラメーターの値は、${yyyymmdd} カスタム時間パラメーターの値と同じです。

このパラメーターは広く使用されています。デフォルトでは、ノードのデータ タイムスタンプは、ノードが実行される予定の時刻の 1 日前です。

$cyctime

ノードのスケジュール時刻。このパラメーターの値は、yyyymmddhh24miss 形式です。このパラメーターの値は、$[yyyymmddhh24miss] カスタム時間パラメーターの値と同じです。

$gmtdate

現在の日付。このパラメーターの値は、yyyymmdd 形式です。

デフォルトでは、このパラメーターの値は現在の日付です。ノードのデータをバックフィルする場合は、このパラメーターをノードのデータ タイムスタンプの 1 日後に設定します。

$bizmonth

ノードのデータ タイムスタンプで示される月。このパラメーターの値は、yyyymm 形式です。

  • ノードのデータ タイムスタンプで示される月が現在の月の場合、このパラメーターの値はノードのデータ タイムスタンプで示される月の 1 か月前です。

  • ノードのデータ タイムスタンプで示される月が現在の月ではない場合、このパラメーターの値はノードのデータ タイムスタンプで示される月です。

$jobid

ノードが属するワークフローの ID。

$nodeid

ノードの ID。

$taskid

ノードに対して生成されたインスタンスの ID。

付録: スケジューリングパラメーターとデータタイムスタンプ、スケジューリング時間、ノードの実際の実行時間との関係

関係

説明と例

スケジューリングパラメーターとノードの実際の実行時間との関係

スケジューリングパラメーターの値は、ノードのインスタンスが生成されたときに決定され、ノードインスタンスが実際に実行される時間によって変化することはありません。

スケジューリングパラメーターとノードのスケジューリング時間との関係

$[...] パラメーターを使用して時間または分単位で正確な時間を指定する場合、$[...] パラメーターの値は、ノードに対して生成されたインスタンスが実行されるようにスケジュールされている時間であるスケジューリング時間に基づいて決定されます。定时时间

ノードが 00:00 から 23:59 まで毎時間実行されるようにスケジュールされている場合の値の置き換え:

  • ノードに対して生成された最初のインスタンスが 00:00 に実行されるようにスケジュールされている場合、hh24 または hh の値は 00 に置き換えられます。

  • ノードに対して生成された 2 番目のインスタンスが 01:00 に実行されるようにスケジュールされている場合、hh24 または hh の値は 01 に置き換えられます。

スケジューリングパラメーターとノードのデータタイムスタンプおよびスケジューリング時間との関係

与业务日期、定时时间关系

付録: 夏時間の説明

DataWorks では、ノードは夏時間が開始または終了する日に想定どおりに実行できます。夏時間の切り替えによるノードの実行への影響を回避するために、ノードが存在するリージョンで夏時間が使用されている場合は、シナリオ: 夏時間の切り替えによるノードの実行への影響 トピックを参照することをお勧めします。

次の手順: スケジューリング パラメーターを設定して使用する

サポートされているスケジューリング パラメーターの形式を理解したら、ビジネス要件に基づいてスケジューリング パラメーターを設定して使用できます。詳細については、「スケジューリング パラメーターを設定して使用する」をご参照ください。