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

大数据研发治理套件

复制全文
下载 pdf
调度与依赖
调度配置
复制全文
下载 pdf
调度配置

本文介绍 DataLeap New IDE 的调度类型、周期调度 Cron 配置、调度优先级与生效时间管理。

调度类型

NewIDE 支持三种触发方式,在 Pipeline 配置文件的 trigger 字段中定义:

触发类型

YAML 值

说明

周期调度

scheduled

按 Cron 表达式自动周期执行。

手动触发

manual

用户在界面或 CLI 中手动执行。

外部触发

external

由外部系统通过 API 调用触发。

周期调度 (scheduled)

系统按 Cron 表达式自动生成实例并执行。适用于固定频率运行的 ETL、报表生成等场景。

trigger:
  type: scheduled
  cronExpression:
    expression: "0 2 * * *"      # 每天 02:00
  effectiveTime: "2026-01-01T00:00:00+08:00"
  expirationTime: "2027-12-31T23:59:59+08:00"

运行机制:

Cron 触发时间到达
  → 检查是否在有效期内
    → 检查调度是否暂停
      → 检查并发限制
        → 检查依赖是否满足
          → 生成实例并执行

手动触发 (manual)

Pipeline 不自动调度,仅在用户主动操作时运行。适用于一次性任务、调试或按需执行的场景。

trigger:
  type: manual

手动触发时可指定:

参数

说明

业务日期

实例对应的业务日期(bizDate)

运行参数

覆盖 Pipeline 参数的默认值

外部触发 (external)

通过 API 调用触发 Pipeline 执行,适用于与外部系统联动的场景(如上游系统完成数据推送后触发下游 ETL)。

trigger:
  type: external

调用方式:

# 通过 API 触发
curl -X POST "https://newide-api.volcengine.com/v1/pipelines/daily_order_etl/trigger" \
  -H "Authorization: Bearer <token>" \
  -d '{"bizDate": "2026-06-01", "parameters": {"region": "us"}}'

调度类型选择建议

场景

推荐类型

说明

日常 ETL 任务

scheduled

固定周期运行

数据修复/重跑

manual

按需运行

事件驱动处理

external

上游完成后触发

开发调试

manual

开发阶段手动验证

跨系统联动

external

外部系统通过 API 集成

周期调度 Cron 配置

Cron 表达式格式

NewIDE 使用标准 5 字段 Cron 表达式:

┌──────── 分钟 (0-59)
│ ┌────── 小时 (0-23)
│ │ ┌──── 日 (1-31)
│ │ │ ┌── 月 (1-12)
│ │ │ │ ┌ 星期 (0-6, 0=周日)
│ │ │ │ │
*  *  * *  *

特殊字符

字符

含义

示例

*

每个值

* * * * * 每分钟

,

枚举多个值

0 2,14 * * * 每天 02:00 和 14:00

-

范围

0 9-17 * * * 每天 9:00-17:00 整点

/

步长

*/10 * * * * 每 10 分钟

常用表达式

调度频率

表达式

说明

每分钟

* * * * *

每分钟执行一次

每 5 分钟

*/5 * * * *

每 5 分钟执行一次

每小时

0 * * * *

每小时整点执行

每天 02:00

0 2 * * *

每天凌晨 2 点

每天 08:30

30 8 * * *

每天上午 8 点 30 分

工作日 09:00

0 9 * * 1-5

周一至周五 9 点

每月 1 日

0 0 1 * *

每月 1 日 00:00

每周一 10:00

0 10 * * 1

每周一 10 点

调度频率与业务时间

调度频率决定了 Pipeline 实例的业务时间(bizDate)粒度:

frequency 值

业务时间粒度

实例生成方式

minutely

分钟

每个调度时间点生成一个实例

hourly

小时

每个调度小时生成一个实例

daily

每天生成一个实例

weekly

每周生成一个实例

monthly

每月生成一个实例

trigger:
  type: scheduled
  cronExpression:
    expression: "0 2 * * *"
  frequency: daily            # 业务时间按天粒度

业务时间与调度时间的关系:

  • 调度时间 (scheduleTime):Cron 触发的物理时间,即实例实际开始的时间。
  • 业务时间 (bizDate):实例处理的业务数据日期,通常 = 调度时间 - 1 个频率周期。
    示例:Cron 0 2 * * * + frequency: daily
  • 调度时间:2026-06-02 02:00:00
  • 业务时间:2026-06-01(处理前一天的数据)

调度优先级

当多个 Pipeline 实例同时进入调度队列时,系统按优先级决定执行顺序。

优先级定义

在 Pipeline 配置文件中通过 priority 字段设置:

trigger:
  type: scheduled
  cronExpression:
    expression: "0 2 * * *"
  priority: d2                # 核心任务

优先级

标识

含义

适用场景

P1

d1 (super_core_task)

最高优先级

核心 SLA 链路,必须最先执行。

P2

d2 (core_task)

高优先级

核心业务 Pipeline

P3

d3 (important_task)

中优先级

重要日常任务

P4

d4 (general_task)

低优先级

一般任务(默认)

P5

d5 (normal)

最低优先级

非核心任务

优先级调度规则

  • 高优先级实例优先获得调度资源。
  • 同优先级实例按调度时间先后排序(FIFO)。
  • 优先级仅影响排队顺序,不会中断正在运行的实例。
  • 建议将 P1/P2 用于核心链路,避免所有 Pipeline 都设为最高优先级导致优先级失效。

生效时间

通过 effectiveTimeexpirationTime 控制调度的有效时间范围:

trigger:
  type: scheduled
  cronExpression:
    expression: "0 2 * * *"
  effectiveTime: "2026-01-01T00:00:00+08:00"     # 调度开始生效时间
  expirationTime: "2027-12-31T23:59:59+08:00"    # 调度失效时间(可选)

字段

必填

说明

effectiveTime

调度开始生效的时间。早于此时间不会触发实例。

expirationTime

调度失效时间。到达此时间后不再触发新实例。

典型场景:

  • 新 Pipeline 上线但尚未准备好,设置未来的 effectiveTime。
  • 临时任务设置 expirationTime,到期自动停止调度。
  • 数据迁移任务在完成后自动过期。

调度配置完整示例

apiVersion: newide.studio.dataleap.volc/v1
kind: Pipeline
metadata:
  name: daily_order_etl
  displayName: 每日订单 ETL
  runAs: data_engineer
spec:
  trigger:
    type: scheduled
    cronExpression:
      expression: "0 2 * * *"          # 每天 02:00
    frequency: daily                    # 按天调度
    priority: d2                        # 核心任务
    effectiveTime: "2026-01-01T00:00:00+08:00"
    expirationTime: "2027-12-31T23:59:59+08:00"

  activities:
    - name: extract_orders
      type: sql
      engineType: emr_serverless_spark
      sqlScript: extract_orders.sql
    - name: transform_orders
      type: sql
      engineType: emr_serverless_spark
      sqlScript: transform_orders.sql
      dependsOn:
        activities:
          - extract_orders

最佳实践

实践

说明

错峰调度

避免大量 Pipeline 在同一时间调度,分散 Cron 触发时间。

合理设置优先级

仅核心链路使用 P1/P2,避免优先级膨胀。

使用 frequency 字段

明确声明业务频率,确保 bizDate 粒度正确。

设置有效期

临时任务务必设置 expirationTime,避免无限运行。

先 manual 后 scheduled

新 Pipeline 先用 manual 模式调试通过,再切换为 scheduled。

最近更新时间:2026.06.12 11:44:15
这个页面对您有帮助吗?
有用
有用
无用
无用