126
阿里云
系统调度参数__数据开发手册_用户操作指南_大数据开发套件-阿里云
目前系统参数有两个,这两个系统参数只要代码里用到,不需要做额外的赋值动作,节点自动调度的时候就会自动替换。系统参数分别为:
${bdp.system.bizdate}
格式yyyymmdd,日常调度实例定时时间的前一天(年月日)。节点每天自动调度实例定时时间年月日减1天。
${bdp.system.cyctime}
格式yyyymmddhh24miss,日常调度实例定时时间(年月日时分秒)。yyyy表示4位数年份,mm表示2位数月份,dd表示2位数天,hh24表示24小时制的时,mi表示2位数分钟,ss表示2位数秒。
■ 入门示例:工作流设置为小时调度,每天00:00-23:59时间段里每隔1小时执行一次。
节点代码如下:
insert overwrite table tb1 partition(ds ='20150304') select
c1,c2,c3
from (
select * from tb2
where ds ='${bdp.system.cyctime}') t
full outer join(
select * from tb3
where ds = '${bdp.system.bizdate}') y
on t.c1 = y.c1;
相应的工作流和节点参数属性配置如下:
2015年10月27日当天,工作流调度生成24个实例:
1)第一个实例定时时间为2015-10-27 00:00:00,则:
bdp.system.cyctime替换的结果为20151027000000,
bdp.system.bizdate替换的结果为20151026。
2)第二个实例定时时间为2015-10-27 01:00:00,则:
bdp.system.cyctime替换的结果为20151027010000,
bdp.system.bizdate替换的结果为20151026。
3)以此类推第24个实例定时时间为2015-10-27 23:00:00,则:
bdp.system.cyctime替换的结果为20151027230000,
bdp.system.bizdate替换的结果为20151026。
自定义参数
声明变量方式:${变量名}
自定义参数支持代码中自定义变量名,调度的时候需要给自定义变量名指定赋值。在大数据开发套件中以${变量名}方式来声明变量,在参数中以变量名=调度参数或常量的方式来赋值。
■ 入门示例 给节点代码中需要insert的表名配置成变量${tablename}。
节点代码如下:
insert overwrite table ${tablename} partition(ds ='20150304') select
c1,c2,c3
from (
select * from tb2
where ds ='${bdp.system.cyctime}') t
full outer join(
select * from tb3
where ds = '${bdp.system.bizdate}') y
on t.c1 = y.c1;
对应节点参数属性配置如下图:
节点调度运行的时候,代码里${tablename}替换为‘t_table_001’。
$[…]基于系统参数${bdp.system.cyctime}进行自定义格式
${bdp.system.cyctime}=$[yyyymmddhh24miss]可以任意分解组合,以及指定格式,如定时时间年月日$[yyyymmdd]、$[yyyy-mm-dd]等格式可自定义,定时时间时分秒$[hh24miss]、$[hh24:mi:ss]等格式可自定义。
【注意】:所有参数都不允许包含空格!以cyctime为基准参与运行,具体使用方法见以下说明文档,和oracle的时间运算方式一致。补数据的时候,选中什么业务日期,参数替换结果是业务日期+1天,如果补数据选20140510这个业务日期,执行时cyctime替换结果是20140511。
获取+/-周期的方法:
后N年:$[add_months(yyyymmdd,12*N)]
前N年:$[add_months(yyyymmdd,-12*N)]
后N月:$[add_months(yyyymmdd,N)]
前N月:$[add_months(yyyymmdd,-N)]
后N周:$[yyyymmdd+7*N]
前N周:$[yyyymmdd-7*N]
后N天:$[yyyymmdd+N]
前N天:$[yyyymmdd-N]
后N小时:$[hh24miss+N/24]
前N小时:$[hh24miss-N/24]
后N分钟:$[hh24miss+N/24/60]
前N分钟:$[hh24miss-N/24/60]
■ 入门示例:工作流设置为小时调度,每天00:00-23:59时间段里每隔1小时执行一次。ODPS SQL节点代码如下:
insert overwrite table tb1 partition(ds ='20150304') select
c1,c2,c3
from (
select * from tb2
where ds ='${thishour}') t
full outer join(
select * from tb3
where ds = '${lasthour}') y
on t.c1 = y.c1;
工作流、节点属性如下:
自定义参数配置如下:
thishour=$[yyyy-mm-dd/hh24:mi:ss]
lasthour =$[yyyy-mm-dd/hh24:mi:ss-1/24]
2015年10月27日当天,工作流生成24个实例:
1)第一个实例定时时间为2015-10-27 00:00:00,那么thishour替换的结果为2015-10-27/00:00:00,lasthour替换的结果为2015-10-26/23:00:00。
2)第二个实例定时时间为2015-10-27 01:00:00,那么thishour替换的结果为2015-10-27/01:00:00,lasthour替换的结果为2015-10-27/00:00:00。
3)以此类推第24个实例定时时间为2015-10-27 23:00:00,那么thishour替换的结果为2015-10-27/23:00:00,lasthour替换的结果为2015-10-27/22:00:00。
最后更新:2016-11-24 11:23:48
上一篇:
ODPS代码编辑器__数据开发手册_用户操作指南_大数据开发套件-阿里云
下一篇:
基本介绍__运维中心手册_用户操作指南_大数据开发套件-阿里云
手机和邮箱不可用如何在线转移__业务转移_产品管理_会员账号&实名认证-阿里云
步骤4:修改DNS解析(可选)__快速入门(非网站业务)_DDoS 高防IP-阿里云
创建集群实例__集群API列表_API参考_容器服务-阿里云
查询热门URL__资源监控接口_API 手册_CDN-阿里云
测试监控__性能测试技术体系_性能测试体系_性能测试-阿里云
断点续传下载__下载文件_开发人员指南_对象存储 OSS-阿里云
NotifyStrategy__基本概念_API使用手册_消息服务-阿里云
专享/共享实例对比__产品简介_分布式关系型数据库 DRDS-阿里云
怎样为一个子用户授予只读访问RDS的权限___云数据库(RDS)授权问题_授权常见问题_访问控制-阿里云
返回值为空__错误说明_API 网关-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云