除通用Shell节点、PyODPS节点外,其他类型节点均可参考SQL类型节点(例如,ODPS SQL)的配置方式定义参数并为参数赋值。通用Shell节点、PyODPS节点的调度参数使用存在部分差异。本文为您介绍各类型节点的调度参数配置示例。
SQL类型节点及离线同步节点
SQL 类型节点(例如 ODPS SQL)和离线同步节点的调度参数配置方法相同,也适用于大多数其他节点类型。本文以ODPS SQL节点为例,为您展示如何为系统内置变量及自定义参数赋值,并在代码中进行调用。
部分节点可能不支持使用调度参数。各节点是否支持使用调度参数,详情请参考具体的节点文档。
在参数赋值区域为参数赋值,然后进入代码调用区域引用系统内置变量var1、var3,自定义参数var2、var4,常量var5。赋值示例如下:
-
系统内置变量var1赋值取业务时间:
var1=$bizdate -
系统内置变量var3赋值取定时时间:
var3=$cyctime -
自定义参数var2赋值取业务时间:
var2=${yyyymmdd} -
自定义参数var4赋值取定时时间:
var4=$[yyyymmddhh24:mi:ss] -
常量var5参数赋值为abc:
var5=abc
若需基于定时时间获取相对时间(例如上一小时、前N分钟),可在定时时间参数($[...])上进行偏移计算:小时偏移使用N/24,分钟偏移使用N/24/60,N为需要偏移的小时或分钟数。时、分偏移仅定时时间支持,业务日期(${...})不支持。以“获取上一小时”为例,常用赋值示例如下:
-
取定时时间的上一小时(完整时间,格式为yyyymmddhh24miss):
$[yyyymmddhh24miss-1/24] -
仅取上一小时(24小时制小时):
$[hh24-1/24] -
取上一小时的时分秒:
$[hh24miss-1/24] -
取年月日格式的前一小时:
$[yyyymmdd-1/24] -
取前一天且前一小时:
$[yyyymmdd-1-1/24] -
取定时时间的前15分钟:
$[yyyymmddhh24miss-15/24/60]
执行小时、分钟偏移计算时可能存在跨天问题。关于调度参数支持的完整赋值格式及跨天处理,请参见调度参数支持的格式。
PyODPS节点
为避免代码入侵,PyODPS节点不支持在代码中直接使用${param_name}格式的字符串替换定义的变量。执行代码前,您需要从类型为dict(字典对象)的args全局变量中获取调度参数,参数赋值方式与其他节点相同。
在 PyODPS 节点的代码编辑器中,通过 args 字典引用调度参数(如 args['var1']、args['var2']、args['var3']),并使用 print 输出参数值。在右侧调度配置面板的调度参数区域为这些参数赋值。
在参数赋值区域为参数赋值,然后进入代码调用区域引用内置参数var1,自定义参数var2、var3。添加字典对象后的参数为args['var1']、args['var2'] 、args['var3']。赋值示例如下:
-
内置参数var1赋值取业务时间:
var1=$bizdate -
自定义参数var2赋值取业务时间:
var2=${yyyymmdd} -
自定义参数var3赋值取业务时间:
var3=$[yyyymmdd]
通用Shell节点配置示例
通用Shell节点中的变量不允许自定义命名,只能以$1、$2、$3...命名(参数序号由小到大,依次递增),当参数的数量大于10时,请使用${10}的方式声明变量。
Shell 节点中第 10 个及以后的参数需使用 ${10} 形式引用(如 echo ${10})。
在参数赋值区域为参数赋值,然后进入代码调用区域定义内置参数$1,自定义参数$2、$3。赋值示例如下:
通用Shell节点仅支持使用表达式方式为参数赋值。多个参数赋值使用空格分隔,并且参数取值与定义参数时的顺序对应。例如,Shell节点定义的第一个参数为$1,则参数赋值区域序号第一的赋值内容$bizdate即为$1的参数取值。
-
内置参数$1赋值取业务时间:
$bizdate -
自定义参数$2赋值取业务时间:
${yyyymmdd} -
自定义参数$3赋值取定时时间:
$[yyyymmdd]
关于调度参数支持的更多赋值格式,请参见调度参数支持的格式。要了解配置和使用调度参数的完整流程,请参见配置并使用调度参数。
离线同步示例
调度参数在数据集成的典型应用场景,详情请参见场景:调度参数在数据集成的典型应用场景。