データ処理では、タスクの実行時間に基づいて動的にパーティションやファイル名を生成する必要がよくあります。これを行うには、システム提供のパラメーターを使用して、業務日に基づく ${...} やスケジュールされた時間に基づく $[...] などの動的な時間値を挿入できます。この Topic では、精度、オフセット計算、ユースケースに焦点を当て、これらのパラメーターフォーマットの主な違いを比較します。
ベースタイムの定義とカスタムパラメーターの変換方法の詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。
カスタムパラメーターフォーマットの比較
現在の時刻が November 01, 2025 で、タスクが毎日 00:00 に実行されるようにスケジュールされていると仮定します。次の表は、さまざまなカスタムパラメーターがどのように割り当てられるかを示しています。
パラメーターがコード内で pt=${datetime} として参照されていると仮定します。
パラメーターフォーマット | 説明 | スケジューリングパラメーターの割り当て | パラメーターの置き換え結果 |
| 業務時間を取得します。 |
|
|
| スケジュールされた時間を秒単位の精度で取得します。 |
|
|
| 業務時間を取得します。 |
|
|
| スケジュールされた時間を秒単位の精度で取得します。 |
|
|
| 現在時刻を日単位の精度で取得します。 |
|
|
| 業務月を取得します。ロジックは次のとおりです。
|
| たとえば、現在時刻が
|
${…} と $[…] パラメーターの主な違い
次の表は、${…} パラメーターと $[…] パラメーターの主な違いを比較したものです。
比較 |
|
|
時間ベースライン | 業務日 (T-1) | スケジューリング時間 (T) |
時間精度 | 日 (年、月、日) | 秒 (年、月、日、時、分、秒) |
オフセット計算機能 | 年、月、週、日のオフセットをサポートします。 | 日、時、分のオフセットをサポートします。 |
主な制限 | 時、分、秒などのより小さな単位のフォーマットやオフセット計算はサポートしていません。 |
|
デフォルトの等価性 |
|
|
${…}および$[…]パラメーターの使用方法の詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。カスタムパラメーターの設定と使用方法の詳細については、「スケジューリングパラメーターの設定と使用」をご参照ください。
この Topic では、ODPS SQL ノードを例として使用します。タスクのスケジュールされた時刻が 10:30:00 on July 20, 2025 であると仮定します。次の表は、${…} パラメーターと $[…] パラメーターの時間値の構成を示しています。
時間値 | ${…} パラメーター | $[…] パラメーター |
年を取得: 2025 |
|
|
年を取得: 25 |
|
|
年を取得: 2024 |
|
|
月を取得: 07 |
|
|
月の日を取得: 20 |
|
|
日付を取得: 2025 年 6 月 20 日 |
重要 このメソッドは、月の日数を考慮する必要があるため推奨されません。前月の対応する日付を取得するには、 |
|
日付を取得: 2025 年 7 月 19 日 |
|
|
日付を取得: 2024 年 7 月 20 日 |
重要 このメソッドは、うるう年を考慮する必要があるため推奨されません。前年の対応する日付を取得するには、 |
|
時刻を取得: 10:30:00 | サポートされていません |
|
時刻を取得: 2025-07-20 10:30:00 | サポートされていません |
|
時刻を取得: 2025-07-20 10:29:00 | サポートされていません |
|
時刻を取得: 2025-07-20 09:30:00 | サポートされていません |
|
前日の時刻を秒単位の精度で取得し、日付と時刻の間にスペースを入れない: 2025071910:30:00 | サポートされていません |
|
前日の時刻を秒単位の精度で取得し、日付と時刻の間にスペースを入れる: 20250719 10:30:00 | サポートされていません | 重要 スケジューリングパラメーターの割り当て式ではスペースはサポートされていません。スペースを含めるには、2 つのスケジューリングパラメーターを定義し、コードリファレンスでスペースを使用して結合します。
|