如何在DataWorks V2.0 的 ODPS SQL任务中使用调度参数-阿里云开发者社区

开发者社区> 大数据> 正文

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

简介: DataWorks提供了系统调度参数,调度系统会根据调度参数的配置,结合当前的业务日期,将调度参数转换为具体的时间。

在ODPS SQL 中使用调度参数

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

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

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

以下是在SQL代码中的用法,并设置该任务的定时运行时间为00:23分。
image

image

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

当任务提交后,点击冒烟测试运行,选择传入的业务日期时间,点击确认。
image

运行结果如下:
image
可以看到,时间都已经被替换了,bizdate获取到了我们传入的业务日期,cyctime获取到了任务的定时时间。

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

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

使用自定义调度参数的方法还是一样,先在代码中声明变量,然后给变量赋值。
image

运行结果如下:
image

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

image
若对时间表达式的格式有要求,可自行修改,比如:$[yyyy-mm-dd],
注意,如果是DATETIME格式,请拆开成两个变量组合一下,中间用空格隔开。
image

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

获取+/-周期的方法:

后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)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章