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 的时间参数按时间基准分为业务时间参数和调度时间参数。每类时间参数均包括基本参数,以及基于基本参数的时间偏移计算。其中,业务时间参数采用 ${date}、${hour} 等形式,以业务时间(taskTime)为计算基准;调度时间参数采用 ${schedule_date}、${schedule_hour} 等形式,以调度时间(scheduleRunTime)为计算基准。两类参数均可用于任务代码、SQL、路径和分区值,但计算起点不同,使用时不可混淆。

业务时间参数

业务时间基准

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

${datetime}

获取业务具体时间点

秒

yyyyMMddHHmmss

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

${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

注意

${datetime} 为兼容性变量,仅在部分任务类型/引擎中支持替换。若运行后仍显示为 ${datetime}(未被替换),或需要自定义格式/偏移量,建议使用 ${DTF-xxxx} 自定义时间格式,以保证跨任务类型一致性,例如 ${DTF-yyyyMMddHHmmss}、${DTF-yyyyMMddHHmmss-8h}。${DTF-xxxx} 的详细说明请参见自定义时间格式。

自定义时间格式

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

变量

含义

示例

${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. 不指定偏移单位(简单偏移):即不指定偏移的时间单位,平台将使用基本时间格式自带的时间单位,假设当前的业务时间 = 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。

调度时间参数

调度时间参数使用 ${schedule_参数名} 形式,用于引用和格式化任务的调度时间。

调度时间基准

所有调度时间参数(包含偏移)以各执行链路传入或换算得到的调度时间为基准。各执行场景对应的调度时间取值规则及示例如下表所示:

场景

调度时间取值

示例

调试

取调试链路提供的当前时间。

假设调试执行时间为 2026-04-21 14:30:00,则调度时间为 2026-04-21 14:30:00。

临时查询

与调试场景一致,取调试当前时间。

假设临时查询发生在 2026-04-21 14:30:00,则调度时间为 2026-04-21 14:30:00。

系统例行调度

取任务定时时间,即根据 Cron 表达式确定的计划触发时间。

假设任务定时时间为 2026-04-21 02:00:00,则调度时间为 2026-04-21 02:00:00。

系统调度失败重试

取生成重试实例时刻 + 重试间隔,不等同于首次任务定时时间。

假设在 2026-04-21 02:10:00 生成重试实例,重试间隔为 5 分钟,则调度时间为 2026-04-21 02:15:00。

系统调度重跑

沿用原任务的任务定时时间。

假设原任务定时时间为 2026-04-21 02:00:00,则重跑时的调度时间为 2026-04-21 02:00:00。

系统调度回溯

取回溯实例对应的任务定时时间。

假设回溯实例对应的任务定时时间为 2026-04-21 02:00:00,则度时间为 2026-04-21 02:00:00。

手动调度回溯

取实际链路传入的调度时间;天级任务默认时刻为 00:00。

假设链路仅指定日期 2026-04-21,未指定具体时刻,则调度时为 2026-04-21 00:00:00。

外部触发调度

默认按天级频率处理,调度时间取对应日期的 00:00。

假设对应日期为 2026-04-21,则调度时间为 2026-04-21 0:00:00。

调度时间参数格式

下表示例统一假设调度时间为 2026-04-21 01:02:03。由于 ${schedule_timestamp} 的结果受服务运行时区影响,因此不展示固定值。

参数

说明

示例

默认偏移单位

${schedule_DATE}

带连字符的完整日期,格式为 yyyy-MM-dd。

2026-04-21

天

${schedule_date}

紧凑格式的完整日期,格式为 yyyyMMdd。

20260421

天

${schedule_day}

两位日,格式为 dd。

21

天

${schedule_timestamp}

将调度时间转换为 Unix 时间戳,单位为秒;转换时使用服务运行时的默认时区。

Unix 时间戳秒数

秒

${schedule_hour}

两位小时,格式为 HH。

01

小时

${schedule_HOUR}

不补零的小时。

1

小时

${schedule_minute}

两位分钟,格式为 mm。

02

分钟

${schedule_MINUTE}

不补零的分钟。

2

分钟

${schedule_DATE_HOUR}

日期与小时以下划线连接,格式为 yyyyMMdd_HH。

20260421_01

小时

${schedule_date_hour}

紧凑日期小时,格式为 yyyyMMddHH。

2026042101

小时

${schedule_DATE-HOUR}

整点时间,格式为 yyyy-MM-dd'T'HH:00:00。

2026-04-21T01:00:00

小时

${schedule_month}

两位月份,格式为 MM。

04

月

${schedule_year}

四位年份,格式为 yyyy。

2026

年

${schedule_last_day}

调度时间所在月份的最后一天,只输出日。

30

月

${schedule_last_DATE}

调度时间所在月份的月末日期,格式为 yyyy-MM-dd。

2026-04-30

月

${schedule_last_date}

调度时间所在月份的月末日期,格式为 yyyyMMdd。

20260430

月

${schedule_week_of_year}

ISO 周序号,两位补零。

17

周

${schedule_DTF-<pattern>}

在 DTF- 后自定义日期时间格式,具体说明可参见自定义时间格式。

${schedule_DTF-yyyyMMddHHmmss}
→ 20260421010203

不支持省略,需显式指定单位。

时间偏移计算

调度时间参数支持通过在参数名后追加偏移表达式进行时间计算。偏移表达式的格式为 +N、-N、+N单位 或 -N单位,多个偏移表达式按书写顺序执行,表达式中的空格会被忽略。省略偏移单位时,平台使用该参数对应的默认偏移单位。
假设调度时间为 2026-04-21 01:02:03,不同单位的偏移示例如下:

单位

含义

示例

M 或 m

月

${schedule_date-1M} → 20260321

d

天

${schedule_date-1d} → 20260420

h

小时

${schedule_date_hour-1h} → 2026042100

i

分钟

${schedule_minute+3i} → 05

s

秒

${schedule_DTF-HHmmss+30s} → 010233

省略单位

使用参数对应的默认偏移单位

  • ${schedule_date-1} → 20260420
  • ${schedule_hour-1} → 00

注意

  • m 和 M 均表示月,分钟使用 i。
  • 以 schedule_DTF- 开头的自定义格式参数不支持无单位偏移。使用偏移时,必须显式填写 m/M、d、h、i 或 s。
  • 多个偏移表达式按书写顺序执行,例如 ${schedule_DTF-yyyyMMddHHmm-1d+2h} 表示先减 1 天,再加 2 小时,结果为 202604200302。

常用示例

需求

推荐写法

按调度日生成 Hive 分区

dt=${schedule_date}

读取调度日前一天分区

dt=${schedule_date-1d}

生成小时级目录

${schedule_date}/${schedule_hour}

生成紧凑小时分区

hour=${schedule_date_hour}

获取上月月末日期

${schedule_last_date-1}

自定义日期时间格式

${schedule_DTF-yyyy/MM/dd/HH}

项目参数

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

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

项目参数可以与时间参数组合使用,例如定义一个项目参数 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(以下通称SQL类任务)

脚本代码

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.09.30 10:36:22
这个页面对您有帮助吗?
有用
有用
无用
无用