當需要對商務程序中多個節點的同一參數變數統一賦值或替換其參數值時,可使用流程參數功能實現。本文以替換周期商務程序中節點的ReplaceMe參數取值樣本,為您介紹流程參數的使用方法。
前提條件
支援的節點類型
當前僅ODPS SQL、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節點支援使用流程參數,具體請以實際介面為準。
注意事項
-
配置並儲存流程參數後,每次開啟節點(即當前商務程序下支援使用流程參數的節點)時,都會載入商務程序中最新的流程參數至節點的參數配置列表,節點將回到編輯狀態,需提交發布節點後,新的流程參數配置才會在調度情境下生效。
-
當同一參數在流程參數的賦值與單個節點中的賦值不一致時,流程參數的賦值會覆蓋節點中的參數賦值。
-
流程參數在進行參數賦值時,參數值或表達式不支援配置為${英文}:格式。例如:var:1、${var}:1。
流程參數配置入口
-
進入數據開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入資料開發。
-
進入流程參數配置介面。
雙擊目標商務程序,在商務程序編輯頁面右側導覽列配置流程參數。在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。更多節點參數的配置,詳情請參見配置調度參數。
-
-
使用流程參數替換開發節點中的參數取值。
-
雙擊目標商務程序,在商務程序編輯頁面,單擊右側導覽列的流程參數。
-
在流程參數對話方塊配置參數資訊。
樣本配置流程參數取值為
20230615,儲存配置後,商務程序中ODPS SQL節點的參數取值將替換為20230615。您也可根據業務需求,新增多個參數使用。說明-
當同一參數在流程參數的賦值與單個節點中的賦值不一致時,流程參數的賦值會覆蓋節點中的參數賦值。
-
流程參數在進行參數賦值時,參數值或表達式不支援配置為${英文}:格式。例如:var:1、${var}:1。
在流程參數彈窗中,將參數名稱設定為
ReplaceMe,單擊儲存。ODPS SQL節點參數替換情況如下。樣本中,ODPS SQL 代碼為SELECT ${ReplaceMe};,參數 ReplaceMe 的代碼解析值為20230613。單擊調度參數預覽,可看到後3個執行個體中 ReplaceMe 均取流程參數值20230615,驗證流程參數已生效。 -
-
驗證流程參數是否生效
流程參數配置完成後,您需運行商務程序,驗證流程參數配置的參數取值是否已替換節點中配置的參數取值。
-
運行商務程序並為變數賦值。
運行商務程序時,當使用了流程參數,您需手動為流程參數進行賦值。更多運行方式介紹,詳情請參見任務調試運行。
-
在商務程序編輯頁面,單擊工具列中的
表徵圖。 -
在填寫參數對話方塊中為變數ReplaceMe賦值
20230615。
-
-
查看運行結果。
在商務程序編輯頁面,按右鍵ODPS SQL節點,選擇查看日誌,即可在頁面下方查看ODPS SQL節點的賦值情況。此時節點的參數取值已由
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=流程參數: 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:
提交發布流程參數
確認流程參數配置無誤後,您需提交發布當前商務程序,提交發布後,流程參數才會真正生效。