Skip to content

Commit b5f2830

Browse files
authored
feat: add task flow docs (#3144)
1 parent 2a96720 commit b5f2830

5 files changed

Lines changed: 442 additions & 0 deletions

File tree

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
---
2+
title: Task Flow(任务流)
3+
---
4+
5+
Task Flow 是 Databend Cloud 内置的工作流编排功能。你可以将多个 SQL 任务组织成有向无环图(DAG),统一调度、监控和管理,无需引入任何外部编排工具。
6+
7+
图中每个节点是一个 **Task(任务)**,包含一条 SQL 语句及其调度配置。多个任务组合成一个 **Flow(流)**,Databend Cloud 根据依赖关系自动决定执行顺序。
8+
9+
## 功能概览
10+
11+
Task Flow 是对旧版 Task 列表 的全面升级:
12+
13+
| 功能 | 旧版 Task 列表 | Task Flow |
14+
| ---------------- | -------------- | --------- |
15+
| 单条 SQL 任务 |||
16+
| 多任务 DAG 编排 |||
17+
| 可视化图形编辑器 |||
18+
| 版本历史与回滚 |||
19+
| Stream 事件触发 |||
20+
| 批量操作 |||
21+
22+
## 核心概念
23+
24+
### Task(任务)
25+
26+
任务是最小的执行单元,包含:
27+
28+
- 一条待执行的 SQL 语句
29+
- 调度方式(手动、间隔、Cron)
30+
- 可选的上游依赖(其他任务或 Stream)
31+
- 高级配置(失败阈值、结果缓存、最小执行间隔)
32+
33+
### Flow(流)
34+
35+
Flow 是一组有依赖关系的任务集合,具有:
36+
37+
- 名称和指定的计算集群
38+
- 一个或多个任务及其依赖关系
39+
- 完整的生命周期:已创建 → 已启动 → 已暂停 → 已恢复 → 已删除
40+
41+
### DAG(有向无环图)
42+
43+
任务之间的依赖关系图。若 Task B 依赖 Task A,则 Databend Cloud 会先执行 Task A,仅在 Task A 成功后才触发 Task B。图中不允许出现循环依赖。
44+
45+
## 快速开始
46+
47+
### 创建 Task Flow
48+
49+
1. 在左侧导航栏进入 **数据****任务**
50+
2. 点击右上角 **创建**
51+
3. 在弹出的 Flow 编辑框中:
52+
- 填写 **Flow 名称**
53+
- 选择执行任务所用的 **计算集群**
54+
4. 点击 **添加任务到流中** 添加第一个任务。
55+
56+
![Alt text](@site/static/img/documents/task-flow/create.png)
57+
58+
### 配置任务
59+
60+
在任务表单中填写以下内容:
61+
62+
**基本配置**
63+
64+
| 字段 | 说明 |
65+
| --------- | ------------------------------------------------- |
66+
| Task Name | 任务名称,在 Flow 内唯一 |
67+
| Schedule | 调度方式:手动、间隔(如每 5 分钟)或 Cron 表达式 |
68+
| Timezone | Cron 调度使用的时区 |
69+
| SQL | 要执行的 SQL 语句 |
70+
| Comment | 可选备注 |
71+
72+
**依赖配置**
73+
74+
| 字段 | 说明 |
75+
| -------------- | ----------------------------------------- |
76+
| Require Tasks | 必须先完成的上游任务(多选) |
77+
| Require Stream | 指定数据库 Stream,有新数据时才触发本任务 |
78+
79+
**高级选项**
80+
81+
| 字段 | 说明 |
82+
| ------------------------------- | ---------------------------------------------- |
83+
| Suspend Task After Num Failures | 连续失败 N 次后自动暂停(0 表示不限制) |
84+
| Enable Query Result Cache | 开启查询结果缓存,避免重复计算 |
85+
| Min Execute Seconds | 两次执行之间的最小间隔(5s / 10s / 15s / 30s) |
86+
87+
5. 点击 **暂时保存** 将任务加入 Flow。
88+
6. 重复以上步骤添加更多任务,通过 **依赖->任务** 定义任务间的依赖关系。
89+
7. 点击 **提交发布** 发布 Flow。
90+
91+
:::note
92+
只有 `account_admin` 或 Flow 的创建者才能编辑或删除 Flow。
93+
:::
94+
95+
## 可视化 DAG
96+
97+
创建 Flow 后,点击 Flow 名称进入详情页。**最近运行** 标签页展示 DAG 可视化图:
98+
99+
![Alt text](@site/static/img/documents/task-flow/flow.png)
100+
101+
每个节点显示:
102+
103+
- 任务名称
104+
- 最近一次执行状态(颜色区分)
105+
- 执行时间范围
106+
- 失败时的错误信息(悬停查看)
107+
108+
**状态颜色说明:**
109+
110+
| 颜色 | 状态 |
111+
| ---------- | ------------------ |
112+
| 蓝色边框 | 已调度(等待执行) |
113+
| 绿色边框 | 执行成功 |
114+
| 红色边框 | 执行失败 |
115+
| 浅蓝色边框 | 执行中 |
116+
| 灰色边框 | 已取消 / 等待中 |
117+
118+
## 管理 Flow
119+
120+
### Flow 操作
121+
122+
**Task & Flows** 列表中,每行提供以下操作:
123+
124+
| 操作 | 说明 |
125+
| ------------ | ---------------------------------- |
126+
| 编辑 | 修改 Flow 名称、计算集群或任务配置 |
127+
| 暂停 | 停止所有定时调度 |
128+
| 恢复 | 重新启用定时调度 |
129+
| 立即执行 | 触发一次性立即运行 |
130+
| 查看运行历史 | 查看所有历史执行记录 |
131+
| 查看版本历史 | 浏览和对比历史版本 |
132+
| 删除 | 永久删除 Flow |
133+
134+
### 批量操作
135+
136+
勾选多个 Flow 后,可通过批量操作菜单执行:
137+
138+
- 批量暂停
139+
- 批量恢复
140+
- 批量删除
141+
142+
## 监控执行情况
143+
144+
### 运行历史
145+
146+
在详情页点击 **运行历史** 标签,查看所有历史执行记录:
147+
148+
| 列名 | 说明 |
149+
| -------------- | -------------------------------------- |
150+
| Task Name | 执行的任务名称 |
151+
| Warehouse | 使用的计算集群 |
152+
| State | 调度中 / 执行中 / 成功 / 失败 / 已取消 |
153+
| SQL | 执行的 SQL(含 Query ID 链接) |
154+
| Scheduled Time | 触发时间 |
155+
| Completed Time | 完成时间 |
156+
| Comment | 任务备注 |
157+
158+
失败或取消的运行会显示错误提示,点击可查看详情或提交工单。
159+
160+
### 全局任务历史
161+
162+
进入 **数据****任务****运行历史**,可查看组织内所有 Flow 的执行记录,支持按以下条件筛选:
163+
164+
- 任务名称(多选)
165+
- 时间范围(最近 2 天、最近 3 天)
166+
167+
## 版本控制
168+
169+
每次发布 Flow 变更,Databend Cloud 都会自动保存一个版本快照。访问版本历史:
170+
171+
1. 打开 Flow 详情页。
172+
2. 点击 **版本历史** 标签。
173+
174+
### 对比版本
175+
176+
1. 勾选两个版本。
177+
2. 点击 **版本对比**
178+
3. 侧边抽屉以并排方式展示两个版本的 SQL 差异。
179+
180+
![Alt text](@site/static/img/documents/task-flow/compare.png)
181+
182+
### 回滚到历史版本
183+
184+
1. 在列表中选择目标版本。
185+
2. 点击 **回滚**
186+
3. 在确认弹窗中确认操作。
187+
188+
Flow 将恢复到所选版本,并自动生成一条新的版本记录。
189+
190+
## 调度配置参考
191+
192+
### 调度类型
193+
194+
**手动(Manual)**
195+
仅通过 **立即执行** 手动触发,不自动调度。
196+
197+
**间隔(Interval)**
198+
每隔 N 分钟/小时执行一次。示例:`EVERY 5 MINUTE`
199+
200+
**Cron**
201+
标准 Cron 表达式,支持时区配置。示例:`0 9 * * 1-5`(工作日每天上午 9 点)。
202+
203+
### Stream 触发
204+
205+
若任务配置了 **依赖->Stream** 依赖,则只有当指定 Stream 中存在未消费数据时,任务才会执行。适合构建基于 CDC 变更事件驱动的增量数据管道。
206+
207+
## 最佳实践
208+
209+
- **从简单开始**:先创建单任务 Flow 验证 SQL 逻辑,再逐步添加依赖关系。
210+
- **用 Stream 构建 CDC 管道**:将 Stream 触发与 `MERGE INTO` 结合,构建高效的增量数据同步流程。
211+
- **设置失败阈值**:合理配置 **Suspend Task After Num Failures**,防止任务反复失败消耗计算集群资源。
212+
- **开启结果缓存**:对于重复查询相同数据的任务,开启 **Query Result Cache** 可显著降低计算成本。
213+
- **善用版本历史**:在进行重大变更前记录当前版本号,出现问题时可快速回滚。
214+
- **按负载分配 计算集群**:将重型转换任务分配到较大的计算集群,轻量任务使用较小规格,合理控制成本。
215+
216+
## 权限说明
217+
218+
| 角色 | 创建 | 编辑 | 删除 | 查看 |
219+
| ------------- | ---- | ------------ | ------------ | ---- |
220+
| account_admin || ✅(所有) | ✅(所有) ||
221+
| 创建者 || ✅(自己的) | ✅(自己的) ||
222+
| 其他用户 |||||

0 commit comments

Comments
 (0)