除通用Shell節點、PyODPS節點外,其他類型節點均可參考SQL類型節點(例如,MaxCompute SQL)的配置方式定義參數並為參數賦值。通用Shell節點、PyODPS節點的調度參數使用存在部分差異。本文為您介紹各類型節點的調度參數配置樣本。
SQL類型節點及離線同步節點
SQL類型節點及離線同步節點的調度參數配置與多數類型節點的配置相似,可供多數節點參考使用。本文以MaxCompute SQL節點為例,為您展示如何為系統內建變數及自訂參數賦值,並在代碼中進行調用。
部分節點可能不支援使用調度參數。各節點是否支援使用調度參數,詳情請參考具體的節點開發文檔。
定義參數
參數名
參數值
var1
$bizdate
var2
${yyyymmdd}
var3
$cyctime
var4
${yyyymmddhh24:mi:ss}
var5
abc
使用參數
-- 取業務時間 SELECT '${var1}' '${var2}'; -- 取定時時間 SELECT '${var3}' '${var4}'; -- 取常量 SELECT '${var5}';
如上,在參數賦值地區為參數賦值,然後進入代碼編輯地區引用系統內建變數var1、var3,自訂參數var2、var4,常量var5。賦值樣本如下:
系統內建變數var1賦值取業務時間:
var1=$bizdate系統內建變數var3賦值取定時時間:
var3=$cyctime自訂參數var2賦值取業務時間:
var2=${yyyymmdd}自訂參數var4賦值取定時時間:
var4=$[yyyymmddhh24:mi:ss]常量var5參數賦值為abc:
var5=abc
配置及使用調度參數,詳情請參見配置節點調度參數,更多調度參數的賦值方式,詳情請參見調度參數來源及其運算式。
PyODPS節點
為避免代碼入侵,PyODPS節點不支援在代碼中直接使用${param_name}格式的字串替換定義的變數。執行代碼前,您需要從類型為dict(字典對象)的args全域變數中擷取調度參數。
定義參數
參數名
參數值
var1
$bizdate
var2
${yyyymmdd}
var3
$[yyyymmdd]
使用參數
# 自訂參數:var1取內建參數 a =args['var1'] print (format(a)) # 自訂參數:var2取值${…} b =args['var2'] print (format(b)) # 自訂參數:var3取值$[…] c =args['var3'] print (format(c))
如上,在參數賦值地區為參數賦值,然後進入代碼調用地區引用內建參數var1,自訂參數var2、var3。添加字典對象後的參數為args['var1']、args['var2']、args['var3']。賦值樣本如下:
內建參數var1賦值取業務時間:
var1=$bizdate自訂參數var2賦值取業務時間:
var2=${yyyymmdd}自訂參數var3賦值取業務時間:
var3=$[yyyymmdd]
配置及使用調度參數,詳情請參見配置節點調度參數,更多調度參數的賦值方式,詳情請參見調度參數來源及其運算式。
Python節點
Python節點通過命令列方式接收調度參數。您可以在參數賦值地區按順序添加參數值,系統會在運行時將這些參數作為命令列參數傳遞給Python指令碼。在代碼中通過sys.argv[1]、sys.argv[2]等索引依次擷取參數值。
Python節點與PyODPS節點不同,不支援通過變數名直接引用參數(如 $var1),必須使用 sys.argv 顯式讀取。
定義參數
通用Python節點僅支援使用運算式方式為參數賦值。多個參數賦值使用空格分隔,並且參數取值與定義參數時的順序對應。
$[yyyymmdd] abc使用參數
import sys # 列印所有接收到的參數 print("當前接收的全部參數:", sys.argv) # 擷取第一個和第二個參數 param1 = sys.argv[1] param2 = sys.argv[2] print("參數1:", param1) print("參數2:", param2)
如上,在參數賦值地區按順序為參數賦值,多個參數之間使用空格分隔,然後在代碼中通過sys.argv[1]、sys.argv[2]等索引依次擷取參數值。賦值樣本如下:
參數一賦值取定時時間:
$[yyyymmdd]。參數二賦值取常量:
abc。
配置及使用調度參數,詳情請參見配置節點調度參數,更多調度參數的賦值方式,詳情請參見調度參數來源及其運算式。
Shell節點
通用Shell節點中的變數不允許自訂命名,只能以$1、$2、$3...命名(參數序號由小到大,依次遞增),當參數的數量大於10時,請使用${10}的方式聲明變數。
定義參數
通用Shell節點僅支援使用運算式方式為參數賦值。多個參數賦值使用空格分隔,並且參數取值與定義參數時的順序對應。
$bizdate ${yyyymmdd} $[yyyymmdd]使用參數
# 自訂參數:取內建參數 echo $1 # 自訂參數:${…} echo $2 # 自訂參數:$[…] echo $3
如上,在參數賦值地區為參數賦值,然後進入代碼調用地區定義內建參數$1,自訂參數$2、$3。賦值樣本如下:
內建參數$1賦值取業務時間:
$bizdate自訂參數$2賦值取業務時間:
${yyyymmdd}自訂參數$3賦值取定時時間:
$[yyyymmdd]
配置及使用調度參數,詳情請參見配置節點調度參數,更多調度參數的賦值方式,詳情請參見調度參數來源及其運算式。