作业日期设置

在作业编辑的过程中,支持在作业参数中设置时间变量通配符。

变量通配符格式

DDI所支持的变量通配符的格式为${dateexpr-1d}或者${dateexpr-1h}。其中dateexpr表示标准的时间格式表达式,对应的规则如下。
注意

请注意时间格式的大小写。

格式

描述

yyyy

表示4位的年份。

MM

表示月份。

dd

表示天。

HH

表示24小时制,12小时制使用hh。

mm

表示分钟。

ss

时间变量可以是包含yyyy年份的任意时间组合,同时支持用加号(+)和减号(-)来分别表示延后和提前。例如,变量${yyyy-MM-dd}表示当前日期,则:

  • 后1年的表示方式:${yyyy+1y}或者${yyyy-MM-dd hh:mm:ss+1y}。

  • 后3月的表示方式:${yyyyMM+3m}或者${yyyy-MM-dd hh:mm:ss+3m}。

  • 前5天的表示方式:${yyyyMMdd-5d}或者${yyyy-MM-dd hh:mm:ss-5d}。

例如,假设当前时间为20160427 12:08:01,则:

  • 如果在作业参数中写成${yyyyMMdd HH:mm:ss-1d},那么这个参数通配符在真正执行的时候会被替换成20160426 12:08:01,即在当前日期上减了一天并精确到了秒。

  • 如果写成${yyyyMMdd-1d},则执行时会替换成20160426, 表示当前日期的前一天。

  • 如果写成${yyyyMMdd},则会被替换成20160427,直接表示当前的日期。

说明

  • 目前DDI仅支持小时和天维度的加减,即只支持在dateexpr后面+Nd、-Nd、+Nh、-Nh的形式(dateexpr为时间格式表达式,N为整数)。

  • 时间变量参数必须以yyyy开始,如${yyyy-MM}。如果希望单独获取月份等特定时间区域的值,可以在作业内容中使用如下两个函数提取:

    • parseDate(<参数名称>, <时间格式>):将给定参数转换为Date对象。其中,参数名称为上述配置参数中设置的一个变量名,时间格式为设置该变量时所使用的时间格式。如设置一个变量current_time = ${yyyyMMddHHmmss-1d},则此处时间格式应设置为yyyyMMddHHmmss。

    • formatDate(<Date对象>, <时间格式>):将给定Date对象转换为给定格式的时间字符串。函数使用示例:

    • 获取current_time变量的小时字面值:${formatDate(parseDate(current_time, 'yyyyMMddHHmmss'), 'HH')}
    • 获取current_time变量的年字面值:${formatDate(parseDate(current_time, 'yyyyMMddHHmmss'), 'yyyy')}

操作示例

  1. 进入项目空间页面。

    1. 使用阿里云账号登录Databricks数据洞察控制台

    2. 在Databricks数据洞察控制台页面,选择所在的地域(Region)。创建的集群将会在对应的地域内,一旦创建后不能修改。

    3. 在左侧导航栏,单击项目空间

  2. 在项目空间页面,单击待操作项目所在行的作业编辑

  3. 进行作业设置。

    1. 在作业编辑页面,选择需要操作的作业名称,单击右上角的作业设置。

    2. 在配置参数区域,单击+图标,新增参数,并按照上文介绍的变量通配符格式填写参数。

      DATA配置完成后就可以在作业中引用配置参数的Key了。