在工作流程中使用全域變數可以減少重複參數的配置,常用於線上工作流程以及DataWorks離線調度工作流程。在線上工作流程中,全域變數使多個組件能夠共用相同的參數,而在DataWorks的離線調度中,則用於替換定時調度參數,從而提升工作流程的靈活性和效率。
使用方法
-
配置全域變數。
進入已建立的工作流程,單擊畫布空白處,在介面右側建立全域變數。
全域變數的引用方式為
${變數名}。變數名僅允許輸入1-20個字元,必須以字母開頭,只能包含字母、底線和數字。全域變數用於離線調度時需要在離線調度配置同名變數,此處填寫的變數值僅用於線上運行實驗。 -
在使用全域變數處輸入
${變數名},即可引用該變數。
使用樣本1:線上工作流程使用全域變數
本例通過設定全域變數para1,將表中的列名status更改為ifHealth,並在SQL指令碼中進行引用。
-
本例以預置模板“心臟病預測案例”為例建立工作流程,建立完成後,僅保留前兩個節點,並刪除其餘的節點。
-
單擊畫布空白處,在介面右側建立全域變數。
配置的全域變數名為
para1,值為ifHealth。 -
使用全域變數。
修改SQL指令碼,將使用全域變數處替換為
${para1},引用該變數。在 SQL指令碼-1 的SQL編輯器中,SELECT語句末尾使用
${para1}作為輸出資料行別名,FROM子句使用${t1}引用輸入源 讀資料表-1。同時勾選 是否由系統添加Create Table語句,此時最後一句必須為SELECT語句。 -
運行工作流程。
待運行結束,右擊組件SQL指令碼,選擇查看資料 > SQL指令碼的輸出,可以看到列名
status已經改為ifHealth。
使用樣本2:DataWorks離線調度工作流程時使用全域變數
本例通過設定全域變數gDate,將定時調度的工作流程與日期進行關聯,然後在DataWorks上設定同名調度參數進行調度。
-
建立測試資料表。
本例以在MaxCompute控制台上建立一個名為dwtest的表(詳見下表)為例。具體操作,請參見SQL參考。
dwtest 表包含四列:
t1(數值,樣本值 1.0、0.0、1.2、0.1)、t2(數值,樣本值 1.1、1.0、0.0、0.1)、label(字串,樣本值 A、B、C、D、E、F)、ds(日期分區,樣本值 20190519、20190520),共 10 行測試資料。 -
建立工作流程並配置全域變數。
-
單擊畫布空白處,在介面右側建立全域變數
gDate。變數值設定為
20190520。 -
配置工作流程組件。

-
讀資料表:表名配置為上述建立的表dwtest。
-
SQL指令碼:在SQL指令碼中使用上述配置的全域變數
gDate。select * from ${t1} where ds=${gDate}
-
-
-
運行工作流程。
待運行結束,右擊組件SQL指令碼,選擇查看資料 > SQL指令碼的輸出,可以看到查詢的全域變數gDate對應的資料。
查詢結果中,ds 列的值為
20190520,即全域變數 gDate 對應的分區日期值,說明全域變數已成功傳入。 -
單擊畫布左上方的周期性調度,再單擊建立調度節點,跳轉到DataWorks進行離線調度,在建立節點對話方塊配置節點名稱,單擊確認。
-
選擇PAI Designer實驗,然後單擊畫面右側的調度配置。具體配置詳情,請參見節點調度配置。
本樣本配置如下,其餘保持預設配置:
-
調度參數:新增同名調度參數
gDate,值為$bizdate。 -
時間屬性:重跑屬性配置為運行成功或失敗後皆可重跑。
-
調度依賴:依賴的上遊節點為使用工作空間根節點。
-
-
單擊工具列中的
和
表徵圖,根據介面提示,儲存並提交節點。 -
單擊頁面上方的營運中心,查看機器學習任務的運行情況和動作記錄。
您也可以直接進行補資料、工作流程試跑等操作,詳情請參見管理周期任務。