更新时间:2024-12-10 GMT+08:00

配置项中使用宏定义

用户在创建或者编辑Loader作业时,在配置参数时可以使用宏,在执行作业任务时会自动替换为宏对应的值。

  • 宏定义只在该作业范围内生效。
  • 宏定义支持随作业导入导出,如果作业中有使用宏定义,则导出的作业包括宏定义。导入作业时默认也导入宏定义。
  • 时间宏dataformat中的第一个参数的日期格式定义可参考“java.text.SimpleDateFormat.java”中的定义,但需要遵循目标系统的约束,例如HDFS/OBS目录不支持特殊符号等。

Loader宏定义

目前Loader默认支持以下时间宏定义:

表1 Loader常用宏定义

名称

替换后效果

说明

@{dateformat("yyyy-MM-dd")}@

2016-05-17

当前日期。

@{dateformat("yyyy-MM-dd HH:mm:ss")}@

2016-05-17 16:50:00

当前日期和时间。

@{timestamp()}@

1463476137557

从1970年到现在的毫秒数。

@{dateformat("yyyy-MM-dd HH:mm:ss",-7,DAYS)}@

2016-05-10 16:50:00

最近7天,即当前时间减7天。

第二个参数支持加减运算。

第三个参数为时间运算的单位,参考“java.util.concurrent.TimeUnit.java”定义,分为DAYS、HOURS 、MINUTES、SECONDS。

在以下场景中,可以使用宏进行配置参数:

  • 指定以当天时间命名的数据目录

    参数项配置为“/user/data/inputdate_@{dateformat("yyyy-MM-dd")}@”

  • 通过SQL语句查询最近7天的数据
    select * from table where time between '@{dateformat("yyyy-MM-dd HH:mm:ss",-7,DAYS)}@' and '@{dateformat("yyyy-MM-dd HH:mm:ss")}@'
  • 指定当天的表名

    参数项配置为“table_@{dateformat("yyyy-MM-dd")}@”