除通用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]
配置及使用调度参数,详情请参见配置节点调度参数,更多调度参数的赋值方式,详情请参见调度参数来源及其表达式。