跳到主要内容

任务流(Task Flow)

Task Flow 是 Databend Cloud 内置的工作流编排功能。你可以将多个 SQL 任务组织成有向无环图(DAG),统一调度、监控和管理,无需引入任何外部编排工具。

图中每个节点是一个 Task(任务),包含一条 SQL 语句及其调度配置。多个任务组合成一个 Flow(流),Databend Cloud 根据依赖关系自动决定执行顺序。

Alt text

功能概览​

Task Flow 是对旧版 Task 列表 的全面升级:

功能旧版 Task 列表Task Flow
单条 SQL 任务✅✅
多任务 DAG 编排❌✅
可视化图形编辑器❌✅
版本历史与回滚❌✅
Stream 事件触发❌✅
批量操作❌✅

核心概念​

Task(任务)​

任务是最小的执行单元,包含:

  • 一条待执行的 SQL 语句
  • 调度方式(手动、间隔、Cron)
  • 可选的上游依赖(其他任务或 Stream)
  • 高级配置(失败阈值、结果缓存、最小执行间隔)

Flow(流)​

Flow 是一组有依赖关系的任务集合,具有:

  • 名称和指定的计算集群
  • 一个或多个任务及其依赖关系
  • 完整的生命周期:已创建 → 已启动 → 已暂停 → 已恢复 → 已删除

DAG(有向无环图)​

任务之间的依赖关系图。若 Task B 依赖 Task A,则 Databend Cloud 会先执行 Task A,仅在 Task A 成功后才触发 Task B。图中不允许出现循环依赖。

快速开始​

创建 Task Flow​

  1. 在左侧导航栏进入 数据 → 任务。
  2. 点击右上角 创建。
  3. 在弹出的 Flow 编辑框中:
    • 填写 Flow 名称。
    • 选择执行任务所用的 计算集群。
  4. 点击 添加任务到流中 添加第一个任务。

Alt text

Alt text

配置任务​

在任务表单中填写以下内容:

基本配置

字段说明
Task Name任务名称,在 Flow 内唯一
Schedule调度方式:手动、间隔(如每 5 分钟)或 Cron 表达式
TimezoneCron 调度使用的时区
SQL要执行的 SQL 语句
Comment可选备注

依赖配置

字段说明
Require Tasks必须先完成的上游任务(多选)
Require Stream指定数据库 Stream,有新数据时才触发本任务

高级选项

字段说明
Suspend Task After Num Failures连续失败 N 次后自动暂停(0 表示不限制)
Enable Query Result Cache开启查询结果缓存,避免重复计算
Min Execute Seconds两次执行之间的最小间隔(5s / 10s / 15s / 30s)
  1. 点击 暂时保存 将任务加入 Flow。
  2. 重复以上步骤添加更多任务,通过 依赖->任务 定义任务间的依赖关系。
  3. 点击 提交发布 发布 Flow。
备注

只有 account_admin 或 Flow 的创建者才能编辑或删除 Flow。

可视化 DAG​

创建 Flow 后,点击 Flow 名称进入详情页。最近运行 标签页展示 DAG 可视化图:

Alt text

每个节点显示:

  • 任务名称
  • 最近一次执行状态(颜色区分)
  • 执行时间范围
  • 失败时的错误信息(悬停查看)

状态颜色说明:

颜色状态
蓝色边框已调度(等待执行)
绿色边框执行成功
红色边框执行失败
浅蓝色边框执行中
灰色边框已取消 / 等待中

管理 Flow​

Flow 操作​

在 Task & Flows 列表中,每行提供以下操作:

操作说明
编辑修改 Flow 名称、计算集群或任务配置
暂停停止所有定时调度
恢复重新启用定时调度
立即执行触发一次性立即运行
查看运行历史查看所有历史执行记录
查看版本历史浏览和对比历史版本
删除永久删除 Flow

批量操作​

勾选多个 Flow 后,可通过批量操作菜单执行:

  • 批量暂停
  • 批量恢复
  • 批量删除

监控执行情况​

运行历史​

在详情页点击 运行历史 标签,查看所有历史执行记录:

列名说明
Task Name执行的任务名称
Warehouse使用的计算集群
State调度中 / 执行中 / 成功 / 失败 / 已取消
SQL执行的 SQL(含 Query ID 链接)
Scheduled Time触发时间
Completed Time完成时间
Comment任务备注

失败或取消的运行会显示错误提示,点击可查看详情或提交工单。

全局任务历史​

进入 数据 → 任务 → 运行历史,可查看组织内所有 Flow 的执行记录,支持按以下条件筛选:

  • 任务名称(多选)
  • 时间范围(最近 2 天、最近 3 天)

版本控制​

每次发布 Flow 变更,Databend Cloud 都会自动保存一个版本快照。访问版本历史:

  1. 打开 Flow 详情页。
  2. 点击 版本历史 标签。

对比版本​

  1. 勾选两个版本。
  2. 点击 版本对比。
  3. 侧边抽屉以并排方式展示两个版本的 SQL 差异。

Alt text

回滚到历史版本​

  1. 在列表中选择目标版本。
  2. 点击 回滚。
  3. 在确认弹窗中确认操作。

Flow 将恢复到所选版本,并自动生成一条新的版本记录。

调度配置参考​

调度类型​

手动(Manual) 仅通过 立即执行 手动触发,不自动调度。

间隔(Interval) 每隔 N 分钟/小时执行一次。示例:EVERY 5 MINUTE。

Cron 标准 Cron 表达式,支持时区配置。示例:0 9 * * 1-5(工作日每天上午 9 点)。

Stream 触发​

若任务配置了 依赖->Stream 依赖,则只有当指定 Stream 中存在未消费数据时,任务才会执行。适合构建基于 CDC 变更事件驱动的增量数据管道。

最佳实践​

  • 从简单开始:先创建单任务 Flow 验证 SQL 逻辑,再逐步添加依赖关系。
  • 用 Stream 构建 CDC 管道:将 Stream 触发与 MERGE INTO 结合,构建高效的增量数据同步流程。
  • 设置失败阈值:合理配置 Suspend Task After Num Failures,防止任务反复失败消耗计算集群资源。
  • 开启结果缓存:对于重复查询相同数据的任务,开启 Query Result Cache 可显著降低计算成本。
  • 善用版本历史:在进行重大变更前记录当前版本号,出现问题时可快速回滚。
  • 按负载分配 计算集群:将重型转换任务分配到较大的计算集群,轻量任务使用较小规格,合理控制成本。

权限说明​

角色创建编辑删除查看
account_admin✅✅(所有)✅(所有)✅
创建者✅✅(自己的)✅(自己的)✅
其他用户❌❌❌✅
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验