ワークフローパラメーターを使用すると、ワークフロー内の複数のノードに対して、パラメーターの値を一元的に割り当てまたは置換できます。本トピックでは、自動トリガーワークフローを例に、ワークフローパラメーターを使用して ReplaceMe パラメーターの値を置換する方法を説明します。
前提条件
-
ワークフローパラメーターを設定するためのワークフローを作成済みであること。詳細については、「自動トリガーワークフローの作成」および「手動トリガーワークフローの作成」をご参照ください。
-
ワークフロー内にノードを作成済みであること。設定したワークフローパラメーターは、これらのノード内の元のパラメーター値を置換します。
説明現在、ワークフローパラメーターは以下のノードタイプでのみサポートされています:ODPS SQL、PyODPS 3、EMR Spark Shell、EMR Spark、EMR Shell、EMR Hive、EMR MR、EMR Presto、EMR Trino、EMR Spark SQL、EMR Spark Streaming、EMR Streaming SQL、Hologres SQL。サポートされているノードタイプの最新情報は、UI でご確認ください。
ノードの作成については、「サポート対象のノードタイプ」をご参照ください。
サポート対象のノードタイプ
現在、ワークフローパラメーターは以下のノードタイプでのみサポートされています:ODPS SQL、PyODPS 3、EMR Spark Shell、EMR Spark、EMR Shell、EMR Hive、EMR MR、EMR Presto、EMR Trino、EMR Spark SQL、EMR Spark Streaming、EMR Streaming SQL、Hologres SQL。サポートされているノードタイプの最新情報は、UI でご確認ください。
使用上の注意
-
ワークフローパラメーターを保存すると、DataWorks はサポート対象のノードを開くたびに最新の設定を読み込み、ノードが編集可能になります。スケジュールされた実行に新しい設定を反映させるには、その後ノードをコミットしてデプロイする必要があります。
-
ワークフローパラメーターとノードレベルパラメーターが同じ名前の場合、ワークフローパラメーターの値がノードレベルパラメーターの値をオーバーライドします。
-
ワークフローパラメーターに値を割り当てる場合、Value/Expression フィールドは [${key}:value] 形式をサポートしていません。 たとえば、[var:1] や [${var}:1] は無効です。
ワークフローパラメーター設定の表示
-
[DataStudio] ページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
-
ワークフローパラメーター設定を開きます。
**DataStudio** で、**[データ開発]** ペインのツリーからワークフローを見つけてダブルクリックし、ワークフローエディターを開きます。ここから **[ワークフローパラメーター]** 設定にアクセスできます。タブの左側には、ODPS SQL、PyODPS 3、EMR Hive、EMR Spark SQL、Hologres SQL などの一般的なノードのリストが表示されます。上部のツールバーには [実行] および [コミット] ボタンがあります。右上隅には、[デプロイ] および [オペレーションセンター] へのリンクがあります。
ワークフローパラメーターの設定
パラメーターの設定方法は、すべてのサポート対象ノードタイプで同じです。この機能は、ワークフロー内の複数のノードに対して同じパラメーターに値を割り当てる必要がある場合に推奨されます。本トピックでは、ワークフローパラメーターを使用して、ODPS SQL ノード内の ReplaceMe パラメーターの値を 20230613 から 20230615 に変更する方法を例として説明します。
-
ノードレベルパラメーターを設定します。
-
ノードエディターを開きます。
対象のワークフロー内の ODPS SQL ノードをダブルクリックして、エディターを開きます。
-
ノードパラメーターを設定します。
ODPS SQL ノードのパラメーターの値を
20230613に設定します。コードエディターで、SELECT ${ReplaceMe};ステートメントを記述します。右側のペインで [プロパティ] タブをクリックします。パラメーターテーブルで、名前がReplaceMeで、値が20230613のパラメーターを追加します。[スケジューリングパラメーターのプレビュー] をクリックします。表示されるダイアログボックスで、各インスタンスのパラメーターがReplaceMe=20230613に正しく設定されていることを確認します。ノードパラメーターの設定方法の詳細については、「スケジューリングパラメーターの設定」をご参照ください。
-
-
ワークフローパラメーターを使用して、ノードレベルパラメーターの値をオーバーライドします。
-
対象のワークフローをダブルクリックし、ワークフローキャンバスの右側のナビゲーションペインで Workflow Parameters をクリックします。
-
Workflow Parameters ダイアログボックスで、パラメーターを設定します。
この例では、ワークフローパラメーターの値を
20230615に設定します。 設定を保存すると、ODPS SQL ノードのパラメーター値が20230615に置き換えられます。 必要に応じて、複数のパラメーターを追加することもできます。説明-
ワークフローパラメーターとノードレベルパラメーターが同じ名前の場合、ワークフローパラメーターの値がノードレベルパラメーターの値をオーバーライドします。
-
ワークフローパラメーターに値を割り当てる場合、Value/Expression フィールドは [${key}:value] 形式をサポートしていません。 たとえば、[var:1] や [${var}:1] は無効です。
[ワークフローパラメーター] ダイアログボックスで、[パラメーター名] を
ReplaceMeに、その値を 20230615 に設定し、[保存] をクリックします。この例では、ODPS SQL コードはSELECT ${ReplaceMe};であり、ReplaceMe パラメーターの元の解析値は20230613です。[スケジューリングパラメータープレビュー] をクリックすると、次の 3 つのインスタンスの ReplaceMe パラメーターがワークフローパラメーター値20230615を取得していることを確認できます。これにより、ワークフローパラメーターが有効になったことがわかります。 -
-
設定の検証
ワークフローパラメーターを設定したら、ワークフローを実行して、その値がノードレベルパラメーターの値を正しくオーバーライドしていることを確認します。
-
ワークフローを実行し、変数に値を割り当てます。
ワークフローパラメーターを使用するワークフローを実行する場合、実行時に各パラメーターに手動で値を割り当てる必要があります。詳細については、「デバッグ手順」をご参照ください。
-
ワークフローエディターのツールバーで、
[実行] アイコンをクリックします。 -
Enter parameters. ダイアログボックスで、ReplaceMe 変数に値
20230615を割り当てます。
-
-
実行結果を確認します。
ワークフローキャンバスで、ODPS SQL ノードを右クリックし、View Log を選択します。 ページの下部にログが表示され、パラメーターの割り当てが示されます。 ノードのパラメーター値が
20230613から20230615に変更されていることから、ワークフローパラメーターが有効になり、実行が成功したことが確認できます。 実行ログでは、SKYNET_PARAVALUE=ReplaceMe=20230615の行は、ワークフローパラメーターが正常に適用されたことを示します。2023-06-14 16:19:57 INFO Current task status:RUNNING 2023-06-14 16:19:57 INFO Start execute shell on node cn-shanghai.475270149050624.1626085771455. 2023-06-14 16:19:57 INFO Current working dir /home/admin/alisatasknode/taskinfo/20230614/phoenix/16/19/55/mm8wog2kwtj8czebilx1dbcp 2023-06-14 16:19:57 INFO Full Command .. 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO /opt/taobao/tbdpapp/odpswrapper/odpswrapper.py /home/admin/alisatasknode/taskinfo//20230614/phoenix/16/19/55/mm8wog2kwtj8czebilx1dbcp//275011_10728491_503348330 ReplaceMe=20230615 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO List of passing environment .. 2023-06-14 16:19:57 INFO —————————— 2023-06-14 16:19:57 INFO SKYNET_BUSINESS_NAME=Workflow Parameter: 2023-06-14 16:19:57 INFO SKYNET_ENDPOINT=http://service.cn.maxcompute.aliyun-inc.com/api: 2023-06-14 16:19:57 INFO SKYNET_PTYPE=10: 2023-06-14 16:19:57 INFO SKYNET_ACTIONID=1: 2023-06-14 16:19:57 INFO TASK_WHITE_LIST=oapi.dingtalk.com:443,47.102.239.120:3306: 2023-06-14 16:19:57 INFO SKYNET_RERUN_MODE=1: 2023-06-14 16:19:57 INFO SKYNET_FLOW_PARAVALUE={"ReplaceMe":"20230615"}: 2023-06-14 16:19:57 INFO SKYNET_ONDUTY=204288958124218159: 2023-06-14 16:19:57 INFO SKYNET_SYSTEMID=dev: 2023-06-14 16:19:57 INFO CALC_ENGINE_IDENTIFIER=saochen_mc_0508_dev: 2023-06-14 16:19:57 INFO SKYNET_SOURCEID=700028402970: 2023-06-14 16:19:57 INFO SKYNET_PARAVALUE=ReplaceMe=20230615: 2023-06-14 16:19:57 INFO SKYNET_TASKID=708xxx: 2023-06-14 16:19:57 INFO SKYNET_TENANT_ID=283789484710656:
ワークフローのコミットとデプロイ
ワークフローパラメーターの設定が正しいことを確認したら、ワークフローをコミットしてデプロイし、スケジュールされた実行に変更を反映させる必要があります。
-
ワークフローをコミットします。
コミットする際は、含めるノードを選択し、変更の説明を入力します。
説明この機能が有効になっている場合、コミットされたコードをデプロイする前に、レビュー担当者による承認が必要です。この機能の詳細については、「コードレビュー」をご参照ください。
ツールバーの [コミット] ボタンをクリックします。表示されるダイアログボックスで、コミットするノードを選択し、[変更の説明] を入力し、必要に応じて [コードレビュー] および [強制変更] を設定します。[I/O の不一致に関するアラートを無視] チェックボックスをオンにすることもできます。[OK] をクリックします。
-
ワークフローをデプロイします。
ワークスペースが standard mode の場合、コミットの成功後に右上隅の Deploy ボタンをクリックする必要があります。 詳細については、「ノードをデプロイする」をご参照ください。