列表

详情


数据工场DataWorks (原DatalDE)中,SQL任务task1是按小时调度的周期性调度任务,任务配置为每小时执行次,结果会插入到表table1中去,table1为一个有两个分区键(ds和hh)的分区表,其中ds取前一个小时的年月日(格式为yyyymmdd) , hh取前一小时的小时(格式为hh24),要使用调度系统提供的时间参数定义分区,使得task1每次调度运行时自动替换时间值,task1应该如何配置?


A. task1代码里table1的分区ds=${bdp.system.bizdate}, hh=$(h),任务参数配置: hh=$[hh24]

B. task1代码里table1的分区ds=${bdp.system.bizdate},hh=${h),任务参数配置: hh=$[hh24-1/24]

C. task1代码里table1的分区ds=${daytime}, hh=${h),任务参数配置: daytime=[yyyymmdd-1/24] hh=$[hh24-1/24]

D. task1代码里table1的分区ds=${daytime}, hh=${h),任务参数配置: daytime=[yyyymmdd] hh=$[hh24-1/24]

参考答案: C

详细解析:

正确答案C,符合yyyymmdd和hh24格式的,而且小时数需要减1的,只有一个选项“task1代码里table1的分区ds=${daytime}, hh=${h),任务参数配置: daytime=[yyyymmdd] hh=$[hh24-1/24]”
A、ds=${bdp.system.bizdate}指业务日期,每小时执行的任务应取当前日期即cyctime或自定义参数;hh=$[hh24],无法满足跨天执行,hour的计算公式仍然是$[hh24-1/24]。
B、同A,ds=${bdp.system.bizdate}指业务日期,及前一天
C、任务参数配置: daytime=[yyyymmdd-1/24],取到的是前一天,包括0点时候
D、ds=${daytime},自定义参数,通过自定义类型daytime=[yyyymmdd],[]代表取当前日期,0点时候会出问题,取到的是当前的日期,应该是前一天,所以错了


上一题