You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件

大数据研发治理套件

复制全文
下载 pdf
调度设置
时间参数与项目参数
复制全文
下载 pdf
时间参数与项目参数

大数据研发治理套件 DataLeap 支持在任务中使用多种参数,可根据您配置的参数,实现在实际调度运行时,自动替换为具体的值,本文将为您介绍平台时间参数、项目参数等相关使用说明。

参数类型

Dataleap的参数分为以下三类,这三类参数均可以作为任务的输入。

说明

  • 字段为 string 类型时,使用需带上引号如'${date}'、‘{{输入参数名}}’

类型

适用范围

典型写法

典型场景

时间参数

所有离线调度任务

${date}

T+1的数据处理,写作 where pt = '${date}'${date} 被自动替换为对应日期

项目参数

所有离线调度任务、实时任务

{{var}}

将数据库名作为统一变量,在SQL中使用 insert overwrite {{ods_db}}.user_info select * from {{ods_db}}.user_info_tmp{{ods_db}} 被自动替换为对应数据库名

任务间上下游参数传递

所有离线调度任务

{{var}}

下游任务接收上游传入的分区

时间参数

Dataleap的时间参数可分为基本参数,以及基于基本参数的时间偏移计算。

时间基准(业务日期)

Dataleap当前所有的时间参数(包含偏移),均以「业务日期」作为时间基准,例如,当前某个任务的业务日期 = 2026-02-05,那么${date}的取值为20260205。
对任意一种Dataleap的离线调度任务来说,时间基准与其调度周期存在固定偏移的关系,如下表:

调度周期

业务日期

举例

天、周、月

业务日期 = 任务的定时时间 - 1天

某任务定时每天00:00执行,在2月6日 00:00时,其业务日期为2026-02-05。
此时,使用${date} = 2026-02-05,若发生时间偏移计算,则均基于这个日期进行偏移计算。

小时

业务日期 = 任务的定时时间向下取整小时 - 1小时

某任务设置为定时每天00:12开始执行,间隔4小时执行一次,那么其定时时间向下取整小时 = 00:00、04:00…… 。其定时时间与业务日期的关系举例:
2026-02-06 00:12 -> 2026-02-05 23:00
2026-02-06 04:12 -> 2026-02-05 03:00
2026-02-06 08:12 -> 2026-02-05 07:00

分钟

业务日期 = 任务的定时时间向下取整5分钟 - 5分钟

某任务设置为,00:07开始,间隔每10分钟执行一次,那么其定时时间向下取整5分钟 = 00:05、00:15…… 。其定时时间与业务日期的关系举例:
定时时间 -> 定时时间向下取整5分钟 -> 业务日期
2026-02-06 00:07 -> 2026-02-05 00:05 -> 2026-02-05 00:00
2026-02-06 00:17 -> 2026-02-05 00:15 -> 2026-02-05 00:10
2026-02-06 00:27 -> 2026-02-05 00:25 -> 2026-02-05 00:20

准实时

准实时频率任务业务时间=定时时间

⚠️注意

  • 对于小时调度、分钟调度,其业务日期的取值分别是减1小时、减5分钟,并非固定减1天。
  • 怎么理解「任务的定时时间向下取整小时」,即找到离定时时间最近的1小时,例如00:12和00:59,其向下取整小时都是00:00。
  • 怎么理解「任务的定时时间向下取整5分钟」,即找到离定时时间最近的5分钟,例如00:12向下取整5分钟得到00:10,而00:16向下取整5分钟得到00:15。

基本时间格式

变量

含义

时间单位

格式

示例

${DATE}

获取业务时间日期

yyyy-MM-dd

天任务:2019/01/02 8点执行,${DATE} =2019-01-01
小时任务:2019/01/02 8点执行,${DATE} =2019-01-02

${date}

获取业务时间日期

yyyyMMdd

天任务:2019/01/02 8点执行,${date} =20190101
小时任务:2019/01/02 8点执行,${date} =20190102

${day}

获取业务时间日期

dd

天任务:2019/01/02 8点执行,${day} =01
小时任务:2019/01/02 8点执行,${day} =02

${HOUR}

获取业务时间整点

小时

h(整数)

天任务:2019/01/02 8点执行,${HOUR} =0
小时任务:2019/01/02 8点执行,${HOUR} =7

${hour}

获取业务时间整点

小时

hh

天任务:2019/01/02 8点执行,${hour} =00
小时任务:2019/01/02 8点执行,${hour} =07

${MINUTE}

获取业务时间整分钟

分钟

m(整数)

天任务:2019/01/02 08:10点执行,${MINUTE} =0
小时任务:2019/01/02 08:10点执行,${MINUTE} =0
5分钟任务:2019/01/02 08:10点执行,${MINUTE} =5

${minute}

获取业务时间整分钟

分钟

mm

天任务:2019/01/02 08:10点执行,${minute} =00
小时任务:2019/01/02 08:10点执行,${minute} =00
5分钟任务:2019/01/02 08:10点执行,${minute} =05

${month}

获取业务时间月份

MM

天任务:2019/01/02 8点执行,${month} =01
小时任务:2019/01/02 8点执行,${month} =01

${year}

获取业务时间年份

yyyy

天任务:2019/01/02 8点执行,${year} =2019
小时任务:2019/01/02 8点执行,${year} =2019

${timestamp}

获取业务时间时间戳

XXXXXX...(整数)

天任务:2019/01/02 8点执行,${timestamp} =1546272000
小时任务:2019/01/02 8点执行,${timestamp} =1546383600

${week_of_year}

获取当前时间是本年的第几周

%02d

天任务:2019/01/02 8点执行,${week_of_year} =01
小时任务:2019/01/02 8点执行,${week_of_year} =01

${last_DATE}

获取业务时间所处月份的最后一天

yyyy-MM-dd

天任务:2019/01/02 8点执行,${last_DATE} =2019-01-31
小时任务:2019/01/02 8点执行,${last_DATE} =2019-01-31

${last_date}

获取业务时间所处月份的最后一天

yyyyMMdd

天任务:2019/01/02 8点执行,${last_date-1} =20181231
小时任务:2019/01/02 8点执行,${last_date-2} =20181130

${last_day}

获取业务时间所处月份的最后一天

dd

天任务:2019/01/02 8点执行,${last_day-1} =31
小时任务:2019/01/02 8点执行,${last_day-2} =30

自定义时间格式

若上述时间格式无法满足要求,可基于内置格式进行时间格式自定义。

变量

含义

示例

${DTF-xxxx}

自定义时间格式。DTF-之后的部分为时间格式,用户可自定义。 自定义时间格式的元素来源于基本参数中的元素,中间可以包含 -,但建议在使用特殊字符需经过调试来确认其参数翻译效果

假设业务日期为 2026年02月05日
${DTF-ddMMyy},输出 050226
${DTF-yyyy-MM-dd},输出2026-02-05
${DTF-yyyy%MM%dd},输出2026%02%05
${DTF-yyyy_MM_dd},输出2026_02_05

时间偏移计算

Dataleap支持基于时间参数的偏移计算,例如向前加减N天、加减N分钟等。时间偏移计算的用法:
1、指定偏移单位(复杂偏移):当需要对时间做多重处理时,例如先指定时间格式,再减1天,再加3个月,写法如下:
${var+x+ym-zd+ph+qi}

  • var:var代表时间变量,例如date、DATE、minute、year等,支持DTF的自定义时间格式。
  • 时间单位:m代表月,d代表天,h代表小时,i代表分钟。

即表示业务时间加 x 单位时间(如果 var=date,加 x 天),加 y 个月,减 z 天,加 p 小时,加 q 分钟,且最后按照 var 的输出格式输出,如:

  1. 例如业务时间=2019-01-01 00:00:00,${DTF-yyyyMMddHHmm-15i}=201812312345
  2. 例如业务时间=2019-01-01 00:00:00,${DTF-HHmm-1i}=2359
  3. 例如业务时间=2019-01-01 00:00:00,${date+1+2m}=20190302
  4. 例如业务时间=2019-01-01 00:00:00,${hour+3-1h}=02

2、不指定偏移单位(简单偏移):例如${date}日期的7天前
简单偏移,即不指定偏移的时间单位,平台将使用基本时间格式自带的时间单位,假设当前的业务时间 = 2026-02-05 16:05:05

时间偏移计算写法

计算结果

推导过程

${date+5}

2026-02-10

在2月5日的基础上增加5个时间单位,时间单位 = 天

${hour-3}

13

在16点的基础上减3小时,得到13点

${minute-3}

02

在05分的基础上减3分钟,得到02分

${timestamp-3}

1770307502

2026-02-05 16:05:05减去3秒,对应的时间戳为1770307502

${last_date-3}

2025-11-30

2026-02-05减三个月,对应的月末为11月30日

  • 获取任意月份最后一天:利用 ${last_date+N}、${last_DATE+N} 和 ${last_day+N} 可获取任意月份的最后一天(注意这几个参数的时间单位均为月,都是偏移几个月,取月末的参数),以2019-02-21执行结果为例:
    • ${last_DATE} = 2019-02-28
    • ${last_DATE-1} = 2019-01-31
    • ${last_date+1} = 20190331
    • ${last_day} = 28

这几个月末参数只能取值到月末,其会优先做日期加减,结束后计算那个日期的月末,所以其只能取到月末的参数。 例如2026-02-05的业务日期,${last_date-60d},计算过程是2月5日减60天(得到2025-12-07),再取那一日的月末为2025-12-31。

项目参数

项目参数的定义可参考项目管理中的 参数信息设置,用户可以了项目参数之后,可在任务中引用项目参数。

项目参数与时间参数的组合使用

项目参数可以与时间参数组合使用,例如定义一个项目参数 pt,此参数的赋值是 ${date}
用户在代码中的写法如下:

select * from t where partition_name = {{pt}}

平台会首先识别pt为项目参数,替换为${date},再识别到${date}为时间变量,替换为对应的业务日期。

任务间上下游参数传递

部分任务类型,在建立了上下游依赖之后,可接收上游任务传递过来的输出结果,可参考 输入输出参数设置

参数的使用

三种参数类型(时间参数、项目参数、任务间上下游参数传递)的使用方式类似,可以在代码中直接使用,以SQL为例:

insert into {{dwd_db}}.t2 
  select id, name from t1 where pt = "${date}"

对于其他典型任务类型,常见可支持的参数填写方式如下:

引擎

任务类型

作用域

DataSail

离线数据集成

  • 任务配置区域(例如where条件过滤语句、写入前/写入后准备语句、TOS/FTP等存储系统的文件路径、、分区值、转换模式中的SQL代码、集成任务高级参数)

通用

Python、Shell

  • 脚本代码

EMR on ECS

HSQL

  • 脚本代码

Spark-Java

  • Spark-Main Class
  • Spark-Conf参数的key、value
  • 任务参数-自定义参数的key、value

Spark-Python

  • Python脚本代码
  • Spark-Conf参数的key、value
  • 任务参数-自定义参数的key、value

MapReduce

  • MR参数-Main Class
  • MR参数-自定义参数的key、value
  • MR参数-Params的key、value

HDFS-Sensor

  • SUCCESS 标签地址

Hive-Sensor

最近更新时间:2026.04.14 19:52:45
这个页面对您有帮助吗?
有用
有用
无用
无用