データワークフローでは、SQL などのタスクコードを、スケジューリング時間に基づいて動的に変更し、異なるデータパーティションを処理する必要がよく生じます。コードを手動で変更することを避けるために、スケジューリングパラメーターを使用できます。コード内にプレースホルダーを定義することで、タスク実行時にシステムがデータタイムスタンプやスケジューリング時間などの動的な値に自動的に置換します。これにより、パラメーターによる自動化されたワークフローの実行が可能になります。
主な設定プロセス
スケジューリングパラメーターを使用するには、スケジューリング設定 でパラメーターを定義し、値を割り当てる必要があります。DataStudio でコードがテストに合格した後、スケジューリングパラメーターを含むコードをオペレーションセンターにコミットします。その後、システムは自動的にタスクをスケジュールし、割り当てロジックに基づいてパラメーター値を動的に置換します。
|
手順 |
操作 |
目的 |
|
1. パラメーターの定義 |
ノードコード内で、 |
動的な値のプレースホルダーを確保します。 |
|
2. パラメーターの設定 |
ノードの ペインで、コード内の変数に値を割り当てます。 |
|
|
3. テスト |
スモークテスト 機能を使用して、特定のデータタイムスタンプをシミュレートし、パラメーターが置換され、コードが正しく実行されることを確認します。 |
開発環境で設定が正しいことを確認します。 |
|
4. デプロイと検証 |
ノードを本番環境にデプロイし、[オペレーションセンター]で最終的なパラメーター設定を確認します。 |
本番タスクのパラメーターが期待どおりに機能することを確認します。 |
操作手順
1. パラメーターの定義
-
ODPS SQL ノードなどの対象ノードをダブルクリックして、ノードエディターを開きます。
-
ODPS SQL ノードまたは他の SQL ベースのノードのコード内で、
${param}構文を使用してパラメーター名を定義します。DataWorks では、参照と管理を容易にするために、わかりやすいパラメーター名を使用することを推奨します。スケジューリングパラメーターの構文:
タイプ
構文
適用範囲
備考
一般形式
${parameter_name}ODPS SQL やデータ同期ノードなど、ほとんどのノードタイプに適用されます。
これは最も一般的な形式です。
特殊形式
ノードタイプによって異なり、
${...}形式は使用されません。PyODPS とシェル
詳細については、「異なるノードタイプのスケジューリングパラメーターの設定例」をご参照ください。
-- 例: パーティションフィルタリング用に pt_date という変数を定義します。 SELECT * FROM my_table WHERE ds = '${pt_date}'; -
右側のペインで スケジューリング設定 をクリックして、スケジューリングパラメータ セクションに移動します。
-
次のセクションで説明されているように、スケジューリングパラメーターを設定します。
2. パラメーターの設定
スケジューリングパラメーターは、可視化定義の切り替え または カスタム式への切り替え のいずれかで設定できます。パラメーターリストの右上にある カスタム式への切り替え をクリックすることで、これらのモードを切り替えることができます。デフォルトは 可視化定義の切り替え です。
-
パラメーターの設定
ビジュアルモード
右側のペインで スケジューリング設定 をクリックして、スケジューリングパラメーター設定ペインを開きます。
-
パラメーターの追加
ノードの右側にある スケジューリング設定 をクリックし、スケジューリングパラメータ セクションでパラメーターを追加します。次の 2 つの方法のいずれかでパラメーターを追加できます。
-
パラメーターの作成 をクリックし、名前と値を手動で入力します。パラメーター名は、コードで定義された変数名と同じである必要があります。
-
コード内のパラメーターのロード をクリックします。DataWorks は、
${pt_date}などのコード内の変数を自動的に解析し、パラメーターリストに入力します。各パラメーターの値を入力するだけで済みます。
-
-
値の割り当て
組み込みパラメーター、カスタム時間変数、または定数を値として割り当てることができます。
-
入力ボックスをクリックすると、よく使用されるパラメーター式のドロップダウンリストが表示され、直接選択できます。カスタム式または組み込み変数を手動で入力することもできます。
-
ビジネス要件に基づいて値を入力できます。サポートされている値の形式の詳細については、「スケジューリングパラメーターのサポートされている形式」をご参照ください。
-
式モード
カスタム式への切り替え をクリックして、式モードに切り替えます。式でパラメーターを設定する場合は、このモードを使用します。
-
式モードでは、複数のパラメーターをスペースで区切ります。
-
カスタム式への切り替え でスケジューリングパラメーターを追加、削除、または変更すると、DataWorks は式の構文を検証します。構文が無効な場合、パラメーターを設定できません。
たとえば、DataWorks は 等号 (=) の両側にスペースを入れないなどのルールを適用します。
-
-
パラメーターのプレビュー
パラメーターを定義した後、スケジューリングパラメータのプレビュー をクリックして、指定されたデータタイムスタンプに基づいて、今後のインスタンスのパラメーターがどのように評価されるかを確認します。これにより、定義が正しいかどうかをテストできます。データタイムスタンプとプレビューするインスタンスの数を調整できます。
バッチ同期ノードなどの一部のノードには、デフォルトで ${bizdate} パラメーターがあります。このパラメーターには、$bizdate という値が自動的に割り当てられます。コード内で bizdate パラメーターをカスタム名に置き換えることができます。${bizdate} という名前自体に特別な意味はなく、他のカスタムパラメーターと同じように扱われます。
3. スモークテスト
スケジューリングパラメーターに値を割り当てた後、スモークテスト機能を使用します。これにより、データタイムスタンプを設定し、タスクがどのように実行されるかをシミュレートできるため、コードが実行され、スケジューリングパラメーターが期待どおりに置換されることを確認できます。結果が期待どおりでない場合は、定期実行で問題が発生しないように、速やかに設定を調整してください。
スモークテストではインスタンスが生成されるため、料金が発生します。インスタンスの料金の詳細については、「サーバーレスリソースグループの課金」をご参照ください。
-
ノードコードをコミットします。
-
スケジューリング時間とスケジューリング依存関係を設定します。
-
保存アイコン
をクリックします。コードと設定が保存された後、コミットアイコン
をクリックして、最新のコードと設定をオペレーションセンターにコミットします。ノードがコミットされた後にのみ、開発環境でスモークテスト機能を使用できます。説明スモークテストが最新のコードまたはパラメーターを実行していないことがわかった場合は、ノードを再度コミットしてください。
-
-
スモークテストを実行します。
ツールバーの
[スモークテスト] アイコンをクリックします。スモークテスト ダイアログボックスで、データタイムスタンプを選択し、[OK] をクリックしてテストを開始します。 -
スモークテストログを表示します。
-
表示される スモークテストレコード ウィンドウで、最新の記録を見つけて ログを表示 をクリックします。
ログには、ノードの実行ステータスと実行の詳細が表示されます。パラメーター置換結果行には、各スケジューリングパラメーターの実際の値が表示されるため、パラメーターが正しく置換されているかどうかを確認できます。
-
ログ内のパラメーター出力を確認して、値が正しいことを確認します。
説明誤ってウィンドウを閉じた場合は、ツールバーの
[スモークテストログ] アイコンをクリックして再度開くことができます。
-
[実行]
機能と [高度な実行]
機能では、コード内の変数に定数を手動で割り当てる必要があります。したがって、スケジューリングパラメーターが正しく設定されているかどうかを確認するために使用することはできません。
4. デプロイと検証
開発環境での検証後、タスクをオペレーションセンターにデプロイして、本番環境で定期実行できます。デプロイ後、ランタイムエラーを防ぐために、本番環境でスケジューリングパラメーターを確認してください。
定期タスクのスケジューリングパラメーターが期待どおりに設定されていない場合、またはオペレーションセンターでタスクが見つからない場合は、タスクが正常にデプロイされたことを確認してください。タスクのデプロイ方法の詳細については、「タスクのデプロイ」をご参照ください。
-
パラメーター定義を確認します。
オペレーションセンターに移動し、対象のリージョンとワークスペースに切り替えて、 ページに移動します。タスクリストで、タスク名をクリックし、プロパティ パネルで実行パラメーターが正しいことを確認します。
-
オペレーションセンターでスモークテストを実行します。
オペレーションセンターでもスモークテストを使用して、デプロイされたタスクが本番環境でパラメーターを置換し、期待どおりにコードを実行することを確認できます。詳細については、「テストの実行とテストインスタンスの表示」をご参照ください。
重要スモークテストは実際の本番データで実行されることに注意してください。本番データベースのデータが破損しないように、慎重に進めてください。
[スモークテスト] ダイアログボックスで、[スモークテスト名] を入力し、[データタイムスタンプの選択] で対象のデータタイムスタンプを選択し、オプションで [詳細設定] を有効にしてタスク実行パラメーターをカスタマイズし、[OK] をクリックしてテストを開始します。
-
実際のスケジューリング結果を確認します。
タスクが自動的にスケジュールされた後、定期インスタンス で定期インスタンスのパラメーターを確認することで、パラメーターが正しく置換されたことを確認できます。
[定期インスタンス] リストで、対象のタスクインスタンスを見つけてインスタンス名をクリックします。右側の [プロパティ] パネルで、[実行パラメーター] フィールドを表示して、各パラメーターが実際の日付と時刻の値に置換されていることを確認します。
完全な設定例
この例では、ODPS SQL ノードを例に、開発環境の 開発環境でスモークテストを実行します 機能を使用して、設定されたスケジューリングパラメーターが期待どおりに機能するかどうかをテストする方法を説明します。タスクがデプロイされた後、運用センターでそのスケジューリングパラメーター設定も確認します。
異なるノードタイプのスケジューリングパラメーターを設定する方法については、「異なるノードタイプのスケジューリングパラメーターの設定例」をご参照ください。
-
ノードコードを編集し、スケジューリングパラメーターを設定します。
次の図は、ODPS SQL ノードのコードとスケジューリングパラメーター設定を示しています。

-
コード内で変数を定義します。
-- 組み込みパラメーターを使用して値を割り当てます SELECT '${var1}'; SELECT '${var2}'; -- カスタムパラメーターを使用して値を割り当てます SELECT '${var3}'; SELECT '${var4}'; -- 定数を割り当てます SELECT '${var5}'; -
変数に値を割り当てます。
ペインで、変数に値を割り当てます (エリア 2)。値の形式の詳細については、「スケジューリングパラメーターのサポートされている形式」をご参照ください。
-
var1=$bizdate:yyyymmdd形式でデータタイムスタンプを割り当てます。 -
var2=$cyctime:yyyymmddhh24miss形式で定期実行時刻を割り当てます。 -
var3=${yyyymmdd}:yyyymmdd形式でデータタイムスタンプを割り当てます。 -
var4=$[yyyymmddhh24miss]:yyyymmddhh24miss形式で定期実行時刻を割り当てます。 -
var5=Hangzhou:定数Hangzhouをvar5に割り当てます。
-
-
オプション: スケジューリング時間を設定します。
ODPS SQL ノードを 1 時間ごとのスケジュールで実行するように設定します (エリア 3)。
説明ニーズに応じて、時間ベースのスケジュールを設定するかどうかを選択できます。この例では、1 時間ごとのスケジュールを設定する方法を示します。
-
開始時刻:
16:00 -
終了時刻:
23:59 -
間隔:
1時間
時間ベースのスケジュールの設定の詳細については、「時間プロパティの設定」をご参照ください。
-
-
スケジューリング依存関係を設定します。
ノードのスケジューリング依存関係を設定します。詳細については、「スケジューリング依存関係の設定」をご参照ください。この例では、ルートノードがこのノードの上流依存関係として使用されます。
-
-
ノードエディターページの上部のツールバーで、
アイコンをクリックしてから
アイコンをクリックして、ODPS SQL ノードの設定を保存してコミットします。 -
開発環境でスモークテストを実行します。
-
アイコンをクリックします。開発環境のテスト ダイアログボックスで、ノードのスケジュールをシミュレートするためのデータタイムスタンプを設定します。データタイムスタンプは次のように設定されます:
-
データタイムスタンプ:
2025-10-16 -
開始時刻:
16:00 -
終了時刻:
17:00
ODPS SQL タスクは 1 時間ごとに実行されるようにスケジュールされているため、
2025-10-17の16:00と17:00に 2 つのインスタンスが生成されます。説明データタイムスタンプは通常、実行時刻の前日です。したがって、タスクの実際の実行時刻は
2025-10-17です。16:00インスタンスの想定値は次のとおりです:-
var1=20251016 -
var2=20251017160000 -
var3=20251016 -
var4=20251017160000
17:00インスタンスの想定値は次のとおりです:-
var1=20251016 -
var2=20251017170000 -
var3=20251016 -
var4=20251017170000
-
-
確認 をクリックします。ノードは指定された時刻に実行を開始します。
-
実行が完了したら、
アイコンをクリックしてスモークテストログを表示します。ノードに対して生成された 2 つのインスタンスは正常に実行され、結果は期待どおりです。
[スモークテスト記録の表示] ウィンドウには、データタイムスタンプが
2025-10-16で、両方とも [成功] ステータスの 2 つのインスタンスの記録が表示されます。[ログの表示] をクリックして、詳細な実行ログを表示します。16:00インスタンスの実行ログでは、パラメーターの置換結果はvar1=20251016 var2=20251017160000 var3=20251016 var4=20251017160000 var5=Hangzhouであり、期待どおりです。17:00インスタンスの実行ログでは、パラメーターの置換結果はvar1=20251016 var2=20251017170000 var3=20251016 var4=20251017170000 var5=Hangzhouであり、これも期待どおりです。
-
-
ワークスペースが標準モードの場合、ノードを本番環境にデプロイする必要があります。ODPS SQL ノードエディターページで、右上の 発行 をクリックしてノードをデプロイします。詳細については、「タスクのデプロイ」をご参照ください。
-
オペレーションセンターに移動して、ノードのスケジューリングパラメーター設定を確認します。
-
DataStudio の上部メニューで、右上の オペレーションセンター をクリックします。
-
ページで、対象のノードを検索します。
説明ノードが正常にデプロイされた後にのみ、このページでノードを見つけることができます。
-
対象のノード名をクリックし、プロパティ パネルで [実行パラメーター] を表示します。
この例では、ノードの実行パラメーターは
var1=$bizdate var2=$cyctime var3=${yyyymmdd} var4=$[yyyymmddhh24miss] var5=Hangzhouです。 -
実行中のインスタンスで実際のパラメーター置換を確認します。定期インスタンスが生成された後、定期インスタンス ページに移動し、タスク名を検索し、インスタンス名をクリックして、プロパティ パネルで [実行パラメーター] を表示します。
この例では、実行パラメーターは
var1=20251016 var2=20251017160000 var3=20251016 var4=20251017160000 var5=Hangzhouとして評価されます。
-