如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

在ODPS SQL 中使用调度参数

DataWorks的调度参数分为两种,一种是系统调度参数,另一种是自定义调度参数。

系统调度参数只有两个:
bizdate:获取到业务日期,展示格式为:yyyymmdd;
cyctime:获取到任务实例的定时时间,格式为:yyyymmddhh24miss;

在SQL节点中使用系统调度参数

以下是在SQL代码中的用法,并设置该任务的定时运行时间为00:23分。
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

请注意:当代码中使用了调度参数,在界面上直接运行的时候,需要传入一个具体的值,因为直接运行不会经过调度系统,所以参数不会转换,需要输入一个具体的值,该值仅本次运行有效。
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

当任务提交后,点击冒烟测试运行,选择传入的业务日期时间,点击确认。
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

运行结果如下:
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数
可以看到,时间都已经被替换了,bizdate获取到了我们传入的业务日期,cyctime获取到了任务的定时时间。

在SQL中使用自定义调度参数

DataWorks 除了支持系统默认调度参数外,还支持自定义调度参数,可以对时间的展示格式进行选择,而且可以在时间数值上进行相加减。

使用自定义调度参数的方法还是一样,先在代码中声明变量,然后给变量赋值。
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

运行结果如下:
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

特别注意:花括号和中括号的用途

如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数
若对时间表达式的格式有要求,可自行修改,比如:$[yyyy-mm-dd],
注意,如果是DATETIME格式,请拆开成两个变量组合一下,中间用空格隔开。
如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数

在给参数赋值时,$[] 中写时间表达式即可。

获取+/-周期的方法:

后N年:$[yyyy+N]

前N年:$[yyyy-N]

后N月:$[yyyymm+N]

前N月:$[yyyymm-N]

后N周:$[yyyymmdd+7*N]

前N周:$[yyyymmdd-7*N]

后N天:$[yyyymmdd+N]

前N天:$[yyyymmdd-N]

后N小时:$[yyyymmddhh24miss+N/24]

前N小时:$[yyyymmddhh24miss-N/24]

后N分钟:$[yyyymmddhh24miss+N/60/24]

前N分钟:$[yyyymmddhh24miss-N/60/24]

关于在SQL中使用调度参数,还有任何疑问,可以加入DataWorks的钉钉群,群号如下:
DataWorks数加交流0群(群号:11718465)

上一篇:《Oracle SQL疑难解析》——.13 在语句中找到和消除空值


下一篇:Operations Manager 2007 R2系列之域控客户端代理安装