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

DataWorks:スケジューリングパラメーターの構成と使用

最終更新日:Dec 18, 2025

データワークフローでは、SQL などのタスクコードは、スケジューリング時間に基づいて異なる日付のデータパーティションを処理するために動的に変更する必要があることがよくあります。コードを手動で変更するのを避けるために、スケジューリングパラメーターを使用できます。コードにプレースホルダーを設定できます。タスクがスケジューリングされると、システムはこれらのプレースホルダーをデータタイムスタンプやスケジューリングされた実行時間などの動的な値に自動的に置き換えます。このプロセスにより、ワークフローが自動化され、パラメーターを使用して実行できるようになります。

コア構成フロー

スケジューリングパラメーターを使用するには、[スケジューリング設定] でパラメーターを定義し、その値を割り当てる必要があります。データ開発でコードをテストし、正しいことを確認したら、スケジューリングパラメーターを含むコードをオペレーションセンターに送信します。その後、システムはタスクを自動的にスケジューリングし、割り当てロジックに基づいてスケジューリングパラメーターの値を動的に置き換えます。

ステップ

アクション

主な目的

1. パラメーターの定義

ノードコードで、${param} 形式を使用して 1 つ以上のパラメーターを定義します。

動的な値のプレースホルダーを予約します。

2. パラメーターの構成

ノードの [スケジューリング設定] > [スケジューリングパラメーター] タブで、コード内の変数に値を割り当てます。

${param} プレースホルダーを $bizdate$[yyyymmdd-1] などの特定のスケジューリングパラメーターに関連付けます。

3. テスト

[スモークテスト] 機能を使用して、特定のデータタイムスタンプをシミュレートし、パラメーターの置換とコードの実行が正しいことを確認できます。

開発者環境で構成が正しいことを確認します。

4. 公開と検証

[オペレーションセンター] で、ノードを本番環境に送信し、最終的なパラメーター設定を確認します。

オンラインタスクのパラメーターが期待どおりであることを確認します。

手順

1. パラメーターの定義

image

  1. ターゲットノード (たとえば MaxCompute SQL ノード) をダブルクリックして、ノードエディターに移動します。

  2. コードでパラメーターを定義します。MaxCompute SQL ノードでは、${param} 構文を使用してパラメーター名を定義します。DataWorks は、参照と管理を容易にするために、意味のあるパラメーター名を使用することを推奨しています。

    スケジューリングパラメーターの呼び出し形式:

    形式タイプ

    呼び出し構文

    スコープ

    注意事項

    一般的な形式

    ${ParameterName}

    MaxCompute SQL ノードや同期ノードなど、ほとんどのノードタイプに適用されます。

    これが最も一般的な形式です。

    特殊な形式

    ノードによって異なります。${...} 形式ではありません。

    PyODPS, Shell

    詳細については、「さまざまなノードタイプのスケジューリングパラメーター設定の例」をご参照ください。

    -- 例: パーティションフィルタリングのために pt_date という名前の変数を定義する
    SELECT * FROM my_table WHERE ds = '${pt_date}'; 
  3. 右側のペインで、[スケジューリング設定] をクリックして [スケジューリングパラメーター] を構成します。

  4. スケジューリングパラメーターを構成します。構成方法については、次のセクションで説明します。

2. パラメーターの構成

スケジューリングパラメーターは、[テーブルで定義][式で定義] の 2 つの方法のいずれかを使用して設定できます。これらの方法は、パラメーターリストの右上隅にある [式で定義] をクリックすることで切り替えることができます。デフォルトの方法は [テーブルで定義] です。

  1. パラメーターの構成

    テーブルで定義

    ノードの右側のペインで、[スケジューリング設定] をクリックして、スケジューリングパラメーターの構成インターフェイスを開きます。

    image

    • パラメーターの追加

      ノードの右側のペインで、[スケジューリング設定] をクリックします。[スケジューリングパラメーター] セクションでは、次の方法でパラメーターを追加できます。

      1. [パラメーターの追加] をクリックし、パラメーター名と値を手動で入力します。パラメーター名は、コードで定義された変数名と一致する必要があります。

      2. [コードからパラメーターを読み込む] をクリックします。DataWorks は、${pt_date} などのコード内の変数を自動的に解析し、パラメーターをバックフィルします。パラメーター値を入力するだけで済みます。

    • パラメーター値の割り当て

      システム組み込みパラメーターカスタム時間パラメーターワークスペースパラメーター、先祖ノードの出力パラメーター、または定数から値を割り当てることができます。

      • 入力ボックスをクリックします。ドロップダウンリストには、選択できる一般的なパラメーター式が表示されます。カスタム式やシステム組み込み変数を手動で入力することもできます。

      • 必要に応じて値を入力できます。サポートされているパラメーター値の範囲の詳細については、「スケジューリングパラメーターでサポートされている形式」をご参照ください。

      • スケジューリングパラメーターに値を割り当てるときに、コンテキストパラメーターをすばやくバインドすることもできます。パラメーターの横にある image ボタンをクリックします。[先祖ノードの出力パラメーターをバインド] ダイアログボックスで、出力パラメーターが構成されているノードを選択して、依存関係をすばやくバインドします。出力パラメーターの詳細については、「ノードコンテキストパラメーターの構成と使用」をご参照ください。

    式で定義

    [式で定義] をクリックして、式を使用してパラメーターを構成します。

    image

    • 式を使用してパラメーターを定義する場合は、複数のパラメーターをスペースで区切ります。

    • [式で定義] メソッドを使用してスケジューリングパラメーターを追加、削除、または変更すると、DataWorks は式の構文を検証します。構文が無効な場合、スケジューリングパラメーターを保存できません。

      たとえば、DataWorks は、= (等号) の両側にスペースを入れないなどの構文ルールをチェックします。

  2. パラメーターのプレビュー

    パラメーターを定義した後、[スケジューリングパラメーターのプレビュー] をクリックして、特定のデータタイムスタンプで指定された数のインスタンスのパラメーターをプレビューします。これにより、パラメーター定義が期待どおりであることを確認できます。プレビューのデータタイムスタンプとインスタンスの数を調整できます。

    image

説明

オフライン同期ノードなどの一部のノードには、組み込みの ${bizdate} パラメーターがあります。このパラメーター名には、自動的に値 $bizdate が割り当てられます。コード内の bizdate パラメーター名をカスタムパラメーター名に置き換えることができます。${bizdate} パラメーター自体には特別な意味はなく、他のカスタムパラメーターと同じです。

image

3. スモークテスト

スケジューリングパラメーターに値を割り当てた後、公開プロセス中にスモークテストを実行できます。データタイムスタンプを構成して、ターゲットタスクのスケジューリングシナリオをシミュレートします。これにより、そのシナリオでパラメーターの置換とコードの実行が期待どおりであることが検証されます。そうでない場合は、タスクの通常のスケジューリングに影響を与えないように、迅速に調整できます。

  1. ノードコードを公開します。

    image

    1. スケジューリング時間スケジューリングの依存関係を構成します。

    2. [保存] をクリックしてコードと構成を保存します。次に、ツールバーの [公開] ボタンをクリックします。公開プロセス中にスモークテストを開始できます。

      説明

      スモークテストのコードまたはパラメーターが最新でない場合は、[本番環境に再公開] をクリックします。

  2. スモークテストを実行します。

    [スモークテストの開始] をクリックします。[スモークテスト] ダイアログボックスで、データタイムスタンプを選択し、[OK] をクリックします。

  3. スモークテストログを表示します。

    1. 左側のメニューの image [スモークテストレコード] ボタンをクリックします。スモークテストレコードのリストで、[ログ] をクリックします。

      image

    2. ログで、パラメーター出力をチェックして、期待どおりであることを確認します。

4. 公開と検証

開発者環境で検証した後、タスクをオペレーションセンターに送信して公開し、本番環境での自動スケジューリングを行うことができます。タスクが公開されたら、本番環境でスケジューリングパラメーターをチェックして、実行時エラーを防ぎます。

説明

定期タスクのスケジューリングパラメーター設定が期待どおりでない場合、またはオペレーションセンターでターゲットタスクが見つからない場合は、タスクが正常に公開されたことを確認してください。タスクの公開方法の詳細については、「タスクを公開する」をご参照ください。

  1. パラメーター定義を確認します。

    オペレーションセンターに移動します。ターゲットリージョンとワークスペースに切り替えます。[定期タスク O&M] > [定期タスク] ページに移動します。タスクリストでタスク名をクリックして [プロパティ] パネルを表示し、実行時パラメーターを確認します。

    image

  2. オペレーションセンターでスモークテストを実行します。

    オペレーションセンターでスモークテストを実行して、公開されたタスクが本番環境で期待どおりにパラメーター置換とコード実行を実行することを確認することもできます。詳細については、「テストを実行してテストインスタンスを表示する」をご参照ください。

    重要

    スモークテストは、本番環境の実際のデータで実行されます。本番データベースのデータを破損しないように、注意して実行してください。

    image

  3. 実際のスケジューリング結果を監視します。

    タスクが自動的にスケジューリングされた後、[定期インスタンス] のパラメーターをチェックして、それらが正しく置き換えられていることをさらに確認できます。

    image

完全な構成例

このトピックでは、MaxCompute SQL ノードを例として使用します。開発者環境で スモークテスト 機能を使用して、構成されたスケジューリングパラメーターが期待どおりであるかどうかをテストする方法を示します。また、タスクが公開された後、オペレーションセンターでタスクのスケジューリングパラメーター設定を表示する方法も示します。

説明

さまざまなノードタイプのスケジューリングパラメーター設定の詳細については、「さまざまなノードタイプのスケジューリングパラメーター設定の例」をご参照ください。

  1. ノードコードを編集し、スケジューリングパラメーターを構成します。

    次の図は、MaxCompute SQL ノードのコードとスケジューリングパラメーター設定を示しています。image

    1. コードで変数を定義します。

      -- システム組み込みパラメーターを割り当てる
      SELECT '${var1}';
      SELECT '${var2}';
      -- カスタムパラメーターを割り当てる
      SELECT '${var3}';
      SELECT '${var4}';
      -- 定数を割り当てる
      SELECT '${var5}';
    2. 変数に値を割り当てます。

      [スケジューリング設定] > [スケジューリングパラメーター] セクションで、エリア 2 に示すように変数に値を割り当てます。値の割り当て形式の詳細については、「スケジューリングパラメーターでサポートされている形式」をご参照ください。

      • var1=$bizdate、これは yyyymmdd 形式のデータタイムスタンプです。

      • var2=$cyctime、これは yyyymmddhh24miss 形式のタスクのスケジューリングされた実行時間です。

      • var3=${yyyymmdd}、これは yyyymmdd 形式のデータタイムスタンプです。

      • var4=$[yyyymmddhh24miss]、これは yyyymmddhh24miss 形式のタスクのスケジューリングされた実行時間です。

      • var5=Hangzhou、これは var5 の値を定数 Hangzhou に設定します。

    3. オプション: スケジューリング時間を構成します。

      エリア 3 に示すように、MaxCompute SQL ノードのスケジューリング期間を時間単位で構成します。

      説明

      必要に応じて期間を構成できます。このトピックでは、時間単位のスケジューリングを例として使用します。

      • スケジューリング開始時刻は 16:00

      • スケジューリング終了時刻は 23:59

      • スケジューリング間隔は 1 時間です。

      期間設定の詳細については、「時間プロパティの構成」をご参照ください。

    4. スケジューリングの依存関係を設定します。

      開発者ノードのスケジューリングの依存関係を構成します。詳細については、「スケジューリングの依存関係を構成する」をご参照ください。この例では、このノードの先祖ノードとしてルートノードを使用します。

  2. ノードエディターページの上部にあるツールバーで、[保存] ボタンをクリックし、MaxCompute SQL ノードの設定を公開します。

  3. 公開プロセス中にスモークテストを開始します。

    1. [スモークテストの開始] ボタンをクリックします。[スモークテスト] ダイアログボックスで、ビジネス時間を構成してノードのスケジューリング期間をシミュレートします。

      imageビジネス時間は次のように構成されます:

      • データタイムスタンプ: 2025-10-16

      • 開始時刻: 16:00

      • 終了時刻: 17:00

      MaxCompute SQL ノードが時間単位で実行されるようにスケジューリングされている場合、データタイムスタンプ 2025-10-17 に対して 16:0017: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. [OK] をクリックします。ノードは指定された時間に実行を開始します。

    3. 実行時間が終了したら、左側のメニューの image [スモークテストレコード] ボタンをクリックして、スモークテストログを表示します。

      ノードによって生成された 2 つのインスタンスは正常に実行され、ノードの実行結果は期待どおりです。

      image

      image

      image

  4. 現在のワークスペースが標準モードの場合、ノードを本番環境に公開する必要があります。MaxCompute SQL ノードエディターページで、メニューバーの右上隅にある [公開] をクリックします。ノードの公開の詳細については、「ノードを公開する」をご参照ください。

  5. オペレーションセンターに移動して、ノードのスケジューリングパラメーター設定を確認します。

    生产环境参数配置

    1. [オペレーションセンター] メニューバーの右上隅にある [DataStudio] をクリックして、オペレーションセンターページを開きます。

    2. [定期タスク O&M] > [定期タスク] ページで、ターゲットノードを検索します。

      説明

      ノードが正常に公開された後にのみ、[定期タスク] ページでノードを検索できます。

    3. ターゲットノード名をクリックします。[プロパティ] パネルで、[実行時パラメーター] を表示できます。

      この例では、ノードの実行時パラメーターは var1=$bizdate var2=$cyctime var3=${yyyymmdd} var4=$[yyyymmddhh24miss] であり、期待どおりです。

    4. インスタンスの実行時パラメーターを表示することで、インスタンス内のパラメーターの置換を表示できます。スケジューリングされたインスタンスが生成された後、[定期インスタンス] メニューをクリックし、タスク名を検索して、タスクインスタンス名をクリックします。[プロパティ] パネルで、[実行時パラメーター] を表示します。

      この例では、ノードの実行時パラメーターは var1=20251016 var2=20251017160000 var3=20251016 var4=20251017160000 であり、期待どおりです。

リファレンス