Task Flow(任务流)
Task Flow 是 Databend Cloud 内置的工作流编排功能。你可以将多个 SQL 任务组织成有向无环图(DAG),统一调度、监控和管理,无需引入任何外部编排工具。
图中每个节点是一个 Task(任务),包含一条 SQL 语句及其调度配置。多个任务组合成一个 Flow(流),Databend Cloud 根据依赖关系自动决定执行顺序。

功能概览
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
- 在左侧导航栏进入 数据 → 任务。
- 点击右上角 创建。
- 在弹出的 Flow 编辑框中:
- 填写 Flow 名称。
- 选择执行任务所用的 计算集群。
- 点击 添加任务到流中 添加第一个任务。


配置任务
在任务表单中填写以下内容:
基本配置
| 字段 | 说明 |
|---|---|
| Task Name | 任务名称,在 Flow 内唯一 |
| Schedule | 调度方式:手动、间隔(如每 5 分钟)或 Cron 表达式 |
| Timezone | Cron 调度使用的时区 |
| 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) |
- 点击 暂时保存 将任务加入 Flow。
- 重复以上步骤添加更多任务,通过 依赖->任务 定义任务间的依赖关系。
- 点击 提交发布 发布 Flow。
只有 account_admin 或 Flow 的创建者才能编辑或删除 Flow。
可视化 DAG
创建 Flow 后,点击 Flow 名称进入详情页。最近运行 标签页展示 DAG 可视化图:

每个节点显示:
- 任务名称
- 最近一次执行状态(颜色区分)
- 执行时间范围
- 失败时的错误信息(悬停查看)
状态颜色说明:
| 颜色 | 状态 |
|---|---|
| 蓝色边框 | 已调度(等待执行) |
| 绿色边框 | 执行成功 |
| 红色边框 | 执行失败 |
| 浅蓝色边框 | 执行中 |
| 灰色边框 | 已取消 / 等待中 |
管理 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 都会自动保存一个版本快照。访问版本历史:
- 打开 Flow 详情页。
- 点击 版本历史 标签。
对比版本
- 勾选两个版本。
- 点击 版本对比。
- 侧边抽屉以并排方式展示两个版本的 SQL 差异。

回滚到历史版本
- 在列表中选择目标版本。
- 点击 回滚。
- 在确认弹窗中确认操作。
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 | ✅ | ✅(所有) | ✅(所有) | ✅ |
| 创建者 | ✅ | ✅(自己的) | ✅(自己的) | ✅ |
| 其他用户 | ❌ | ❌ | ❌ | ✅ |

