全域變數可減少工作流程中重複參數的配置,常用於線上工作流程和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。時間屬性:重跑屬性配置為運行成功或失敗後皆可重跑。
調度依賴:上遊節點使用工作空間根節點。
單擊工具列中的
和
表徵圖,按介面提示儲存並提交節點。單擊頁面上方的營運中心,查看機器學習任務的運行情況和動作記錄。
您也可以執行補資料、工作流程試跑等操作。詳情請參見管理周期任務。