|
| 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 | + |
| 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 | + |
| 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 | + |
| 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