时间宏变量使用解析 时间变量宏定义具体展示 假设当前时间为“20171016 09:00:00”,时间变量宏定义具体如下表“时间变量宏定义具体展示”所示。 宏变量 含义 实际显示效果 ${dateformat(yyyyMMdd)} 以yyyyMMdd格式返回当前时间。 20171016 ${dateformat(yyyy/MM/dd)} 以yyyy/MM/dd格式返回当前时间。 2017/10/16 ${dateformat(yyyyMMdd HH:mm:ss)} 以yyyyMMdd HH:mm:ss格式返回当前时间。 20171016 09:00:00 ${dateformat(yyyyMMdd HH:mm:ss, 1, DAY)} 以yyyyMMdd HH:mm:ss格式返回时间,时间为当前时间的前一天。 20171015 09:00:00 ${timestamp()} 返回当前时间的时间戳,即1970年1月1日(00:00:00 GMT)到当前时间的毫秒数。 1508115600000 ${timestamp(10, MINUTE)} 返回当前时间点10分钟前的时间戳。 1508115000000 ${timestamp(dateformat(yyyyMMdd))} 返回今天0点的时间戳。 1508083200000 ${timestamp(dateformat(yyyyMMdd,1,DAY))} 返回昨天0点的时间戳。 1507996800000 ${timestamp(dateformat(yyyyMMddHH))} 返回当前整小时的时间戳。 1508115600000 路径和表名的时间宏变量 如下图“源表名和写入目录配置为时间宏变量所示”,如果将: 源端的“表名”配置为“CDM/${dateformat(yyyyMMdd)}”。 目的端的“写入目录”配置为“/opt/ttxx/${timestamp()}”。 经过宏定义转换,这个作业表示:将Oracle数据库的“SQOOP.CDM20171016”表中数据,迁移到HDFS的“/opt/ttxx/1508115701746”目录中。 图 目前也支持一个表名或路径名中有多个宏定义变量,例如“/opt/ttxx/ {dateformat(yyyyMMdd)}/ {timestamp()}”,经过转换后为“/opt/ttxx/20171016/1508115701746”。