データワークフローでは、SQL などのタスクコードは、異なるデータパーティションを処理するために、スケジューリング時間に基づいて動的に変更する必要があります。手動でコードを修正する手間を省くため、スケジューリングパラメーターを使用できます。コード内にプレースホルダーを定義することで、タスク実行時にシステムがデータタイムスタンプやスケジューリング時間などの動的な値に自動的に置き換えます。これにより、自動化されたパラメーター化されたワークフロー実行が可能になります。
主な設定プロセス
スケジューリングパラメーターを使用するには、Scheduling でパラメーターを定義し、値を割り当てる必要があります。DataStudio でコードがテストに合格した後、スケジューリングパラメーターを含むコードをオペレーションセンターに送信します。その後、システムはタスクを自動的にスケジューリングし、割り当てロジックに基づいてパラメーター値を動的に置き換えます。
|
ステップ |
アクション |
目的 |
|
1. パラメーターの定義 |
ノードコード内で、 |
動的な値のプレースホルダーを確保します。 |
|
2. パラメーターの設定 |
ノードの ペインで、コード内の変数に値を割り当てます。 |
|
|
3. テスト |
Perform Smoke Testing 機能を使用して、特定のデータタイムスタンプをシミュレートし、パラメーターが置き換えられ、コードが正しく実行されることを確認します。 |
開発環境で設定が正しいことを確認します。 |
|
4. デプロイと検証 |
ノードを本番環境にデプロイし、Operation Center で最終的なパラメーター設定を確認します。 |
本番タスクのパラメーターが期待どおりに機能することを確認します。 |
操作手順
1. パラメーターの定義

-
対象のノード (例:ODPS SQL ノード) をダブルクリックして、ノードエディターを開きます。
-
ODPS SQL ノードやその他の SQL ベースのノードのコードで、
${param}構文を使用してパラメーター名を定義します。DataWorks では、参照と管理を容易にするために、分かりやすいパラメーター名を使用することを推奨します。スケジューリングパラメーターの構文:
タイプ
構文
適用性
注意
一般的なフォーマット
${parameter_name}ODPS SQL やデータ同期ノードなど、ほとんどのノードタイプに適用できます。
これは最も一般的なフォーマットです。
特殊なフォーマット
ノードタイプによって異なり、
${...}フォーマットは使用しません。PyODPS と Shell
詳細については、「異なるノードタイプのスケジューリングパラメーターの設定例」をご参照ください。
-- 例:パーティションフィルタリングのために pt_date という名前の変数を定義します。 SELECT * FROM my_table WHERE ds = '${pt_date}'; -
右側のペインで、Scheduling をクリックして Scheduling Parameter セクションに移動します。
-
次のセクションで説明するように、スケジューリングパラメーターを設定します。
2. パラメーターの設定
Visual definition または Define by expression のいずれかでスケジューリングパラメーターを設定できます。パラメーターリストの右上隅にある Define by expression をクリックすることで、これらのモードを切り替えることができます。デフォルトは Visual definition です。
-
パラメーターの設定
ビジュアルモード
右側のペインで Scheduling をクリックして、スケジューリングパラメーター設定パネルを開きます。

-
パラメーターの追加
ノードの右側にある Scheduling をクリックし、Scheduling Parameter セクションでパラメーターを追加します。次の 2 つの方法のいずれかでパラメーターを追加できます。
-
Add Parameter をクリックし、名前と値を手動で入力します。パラメーター名は、コードで定義された変数名と同じでなければなりません。
-
Load Parameters in Code をクリックします。DataWorks は、
${pt_date}などのコード内の変数を自動的に解析し、パラメーターリストに入力します。各パラメーターの値を入力するだけで済みます。
-
-
値の割り当て
組み込みパラメーター、カスタム時間変数、または定数を値として割り当てることができます。
-
入力ボックスをクリックします。ドロップダウンリストが表示され、直接選択できる一般的に使用されるパラメーター式が表示されます。カスタム式や組み込み変数を手動で入力することもできます。
-
ビジネス要件に基づいて値を入力できます。サポートされている値のフォーマットの詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。
-
式モード
Define by expression をクリックして式モードに切り替えます。式でパラメーターを設定したい場合は、このモードを使用してください。

-
式モードでは、複数のパラメーターをスペースで区切ります。
-
Define by expression でスケジューリングパラメーターを追加、削除、または変更すると、DataWorks は式の構文を検証します。構文が無効な場合、パラメーターは設定できません。
たとえば、DataWorks は 等号 (=) の両側にスペースを許可しないなどのルールを適用します。
-
-
パラメーターのプレビュー
パラメーターを定義した後、Preview Scheduling Parameters をクリックして、指定されたデータタイムスタンプに基づいて今後のインスタンスでパラメーターがどのように解決されるかを確認します。これは、定義が正しいかどうかをテストするのに役立ちます。プレビューするデータタイムスタンプとインスタンスの数を調整できます。

バッチ同期ノードなどの一部のノードには、デフォルトの ${bizdate} パラメーターがあります。このパラメーターには自動的に値 $bizdate が割り当てられます。コード内で bizdate パラメーターをカスタム名に置き換えることができます。${bizdate} という名前自体に特別な意味はなく、他のカスタムパラメーターと同様に扱われます。

3. スモークテスト
スケジューリングパラメーターに値を割り当てた後、スモークテスト機能を使用します。これにより、データタイムスタンプを設定し、タスクがどのように実行されるかをシミュレーションでき、コードが実行され、スケジューリングパラメーターが期待どおりに置き換えられることを確認するのに役立ちます。結果が期待どおりでない場合は、定期実行で問題が発生しないように、設定を速やかに調整してください。
スモークテストはインスタンスを生成し、料金が発生します。インスタンスの価格設定の詳細については、「サーバーレスリソースグループの課金」をご参照ください。
-
ノードコードをコミットします。
-
スケジューリング時間とスケジューリングの依存関係を設定します。
-
保存アイコン
をクリックします。コードと設定が保存された後、コミットアイコン
をクリックして、最新のコードと設定をオペレーションセンターにコミットします。ノードがコミットされた後でのみ、開発環境でスモークテスト機能を使用できます。説明スモークテストが最新のコードやパラメーターで実行されていない場合は、ノードを再度コミットしてください。
-
-
スモークテストを実行します。
ツールバーのスモークテストアイコン
をクリックします。Perform Smoke Testing ダイアログボックスで、データタイムスタンプを選択し、[OK] をクリックしてテストを開始します。 -
スモークテストログを表示します。
-
表示される Smoke Testing Records ウィンドウで、最新のレコードを見つけ、View Log をクリックします。

-
ログのパラメーター出力を確認し、値が正しいことを確認します。
説明誤ってウィンドウを閉じてしまった場合は、ツールバーのスモークテストログアイコン
をクリックして再度開くことができます。
-
[実行]
および [詳細実行]
機能では、コード内の変数に手動で定数を割り当てる必要があります。そのため、スケジューリングパラメーターが正しく設定されているかどうかを確認するために使用することはできません。
4. デプロイと検証
開発環境での検証後、タスクをオペレーションセンターにデプロイして、本番環境で定期実行できます。デプロイ後、実行時エラーを防ぐために本番環境のスケジューリングパラメーターを確認してください。
定期タスクのスケジューリングパラメーターが期待どおりに設定されていない場合、またはオペレーションセンターでタスクが見つからない場合は、タスクが正常にデプロイされたことを確認してください。 タスクのデプロイ方法の詳細については、「タスクのデプロイ」をご参照ください。
-
パラメーター定義を確認します。
オペレーションセンターに移動し、対象のリージョンとワークスペースに切り替えて、 ページに移動します。タスクリストで、タスク名をクリックし、Property パネルで Property を確認して、それらが正しいことを確認します。

-
オペレーションセンターでスモークテストを実行します。
オペレーションセンターのスモークテストを使用して、デプロイされたタスクが本番環境でパラメーターを置き換え、期待どおりにコードを実行することを確認することもできます。詳細については、「テストの実行とテストインスタンスの表示」をご参照ください。
重要スモークテストは実際の本番データで実行されることに注意してください。本番データベースのデータを破損しないように、操作には十分ご注意ください。

-
実際のスケジューリング結果を観察します。
タスクが自動的にスケジュールされた後、Auto Triggered Instances でインスタンスのパラメーターを確認することで、パラメーターが正しく置き換えられたか検証できます。

完全な設定例
この例では、ODPS SQL ノードを使用して、開発環境で Perform smoke test in development environment 機能を使用して、設定されたスケジューリングパラメーターが期待どおりに機能するかをテストする方法を示します。タスクがデプロイされた後、オペレーションセンターでそのスケジューリングパラメーター設定も確認します。
異なるノードタイプのスケジューリングパラメーターの設定方法については、「異なるノードタイプのスケジューリングパラメーターの設定例」をご参照ください。
-
ノードコードを編集し、スケジューリングパラメーターを設定します。
次の図は、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)。
説明必要に応じて、時間ベースのスケジュールを設定するかどうかを選択できます。この例では、時間単位のスケジュールを設定する方法を示します。
-
開始時間:
16:00 -
終了時間:
23:59 -
間隔:
1時間
時間ベースのスケジュールの設定の詳細については、「時間プロパティの設定」をご参照ください。
-
-
スケジューリングの依存関係を設定します。
ノードのスケジューリングの依存関係を設定します。詳細については、「スケジューリングの依存関係を設定する」をご参照ください。この例では、ルートノードがこのノードの上流依存関係として使用されます。
-
-
ノードエディターページの上部ツールバーで、
アイコンをクリックし、次に
アイコンをクリックして、ODPS SQL ノードの設定を保存してコミットします。 -
開発環境でスモークテストを実行します。
-
アイコンをクリックします。Smoke Testing in Development Environment ダイアログボックスで、データタイムスタンプを設定してノードのスケジュールをシミュレートします。
データタイムスタンプは次のように設定されます:-
データタイムスタンプ:
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
-
-
OK をクリックします。ノードは指定された時間に実行を開始します。
-
実行が完了したら、
アイコンをクリックしてスモークテストログを表示します。ノード用に生成された 2 つのインスタンスは正常に実行され、結果は期待どおりです。



-
-
ワークスペースが標準モードの場合、ノードを本番環境にデプロイする必要があります。ODPS SQL ノードエディターページで、右上隅の Deploy をクリックしてノードをデプロイします。詳細については、「タスクのデプロイ」をご参照ください。
-
オペレーションセンターに移動して、ノードのスケジューリングパラメーター設定を確認します。

-
DataStudio の上部メニューバーで、右上隅の Operation Center をクリックします。
-
ページで、ターゲットノードを検索します。
説明このページでノードを見つけることができるのは、正常にデプロイされた後のみです。
-
対象のノード名をクリックし、Property パネルの [実行パラメーター] を表示します。
この例では、ノードの実行パラメーターは
var1=$bizdate var2=$cyctime var3=${yyyymmdd} var4=$[yyyymmddhh24miss]です。 -
実行中のインスタンスで実パラメーターの置き換えを確認します。スケジュールされたインスタンスが生成された後、Auto Triggered Instances ページに移動し、タスク名を検索し、インスタンス名をクリックし、Property パネルで [実行パラメーター] を表示します。
この例では、実行パラメーターは
var1=20251016 var2=20251017160000 var3=20251016 var4=20251017160000として解決されます。
-