跳到主要内容

任务流

调用前请先阅读概览,了解鉴权、请求约定和错误处理。

任务流(Task Flow)是在控制台中创建的一组 SQL Task,包含调度、计算集群和版本历史。以下接口均为只读的 v2 接口,需在请求体中传 orgSlug。

列出任务流​

POST /api/v2/taskflow · Read · Member

字段类型必填说明
orgSlugstring是组织 ID。
pageinteger否页码。默认:1。
perPageinteger否每页条数。默认:20。
filterNamestring否按任务流名称部分匹配。
filterWarehousestring否计算集群名称,精确匹配。
filterDataTypeinteger(枚举)否条目类型:1 单个任务,2 任务流。
filterStatusinteger(枚举)否任务流状态。
filterCreatedAccountIdinteger否创建者的账户 ID。
filterUpdatedAccountIdinteger否最后修改者的账户 ID。
sortstring否createdAt 或 updatedAt。默认:createdAt。
directionstring否asc 或 desc。默认:desc。
searchstring否任务流名称、任务名或任务 SQL 中的关键词。传入后响应会增加 highlights。
setSearchSnippetLeninteger否highlights 中每段 SQL 摘要的长度。默认:128。

请求示例:

{ "orgSlug": "<organization-id>", "page": 1, "perPage": 20, "search": "daily_sales" }

响应示例:

{
"success": true,
"data": {
"total": 1,
"page": 1,
"perPage": 20,
"keyword": "daily_sales",
"list": [
{
"id": 31,
"orgSlug": "acme-prod",
"name": "nightly_sales",
"version": "a1b2c3d",
"warehouse": "default",
"itemDataType": 2,
"status": 7,
"tasks": [
{
"id": 101,
"name": "refresh_daily_sales",
"fullName": "__taskflow___31_refresh_daily_sales",
"warehouse": "default",
"schedule": { "type": 10, "args": "{\"value\":\"0 0 2 * * *\"}", "timezone": "UTC" },
"sql": "INSERT INTO sales.daily SELECT ..."
}
],
"highlights": [{ "taskName": "refresh_daily_sales", "sql": "...daily_sales...", "fullSql": "INSERT INTO sales.daily SELECT ..." }],
"createdAccountId": 7,
"createdAccountEmail": "alice@example.com",
"lastExecutedAt": "2026-11-09T02:00:00Z",
"createdAt": "2026-06-01T02:00:00Z",
"updatedAt": "2026-11-01T02:00:00Z"
}
]
}
}

列出任务名​

POST /api/v2/taskflow/names · Read · Member

返回任务流中的任务名以及单个任务的任务名,用 itemDataType 区分。可以用 taskFullName 在 SQL Task 运行记录中查找该任务的运行情况。

字段类型必填说明
orgSlugstring是组织 ID。
{
"success": true,
"data": {
"list": [
{ "flowId": 31, "flowName": "nightly_sales", "taskName": "refresh_daily_sales", "taskFullName": "__taskflow___31_refresh_daily_sales", "itemDataType": 2 }
]
}
}

获取任务流依赖图​

POST /api/v2/taskflow/dag · Read · Member

返回组织的所有任务流,以及每个任务流依赖的任务。

字段类型必填说明
orgSlugstring是组织 ID。
{
"success": true,
"data": {
"list": [
{ "flowId": 31, "flowName": "nightly_sales", "requireTasks": ["__taskflow___30_load_orders"] }
]
}
}

获取任务流​

POST /api/v2/taskflow/{taskflowId}/info · Read · Member

参数位置类型必填说明
taskflowId路径integer是任务流 ID。
orgSlug请求体string是组织 ID。

响应:data 是一个任务流对象,字段与列出任务流中的单项相同。其中每个任务还可能包含 runHistories、requireStream、requireTasks、errorIntegration 和 suspend_task_after_num_failures。

列出任务流版本​

POST /api/v2/taskflow/versions · Read · Member

字段类型必填说明
orgSlugstring是组织 ID。
pageinteger否页码。默认:1。
perPageinteger否每页条数。默认:20。
taskflowIdinteger否按任务流 ID 过滤。
taskflowNamestring否按任务流名称精确过滤。
warehousestring否按计算集群过滤。

响应示例:

{
"success": true,
"data": {
"total": 1,
"page": 1,
"perPage": 20,
"list": [
{
"id": 88,
"taskflowId": 31,
"taskflowName": "nightly_sales",
"warehouse": "default",
"version": "a1b2c3d",
"taskIds": [101],
"createdAccountId": 7,
"createdAccountEmail": "alice@example.com",
"createdAt": "2026-11-01T02:00:00Z"
}
]
}
}

列出单个任务流的版本​

POST /api/v2/taskflow/versions/{taskflowId} · Read · Member

参数位置类型必填说明
taskflowId路径integer是任务流 ID。
orgSlug请求体string是组织 ID。
page请求体integer否页码。默认:1。
perPage请求体integer否每页条数。默认:20。

响应:与列出任务流版本相同,另外多一个 data.taskflowName。

获取任务流的某个版本​

POST /api/v2/taskflow/versions/{taskflowId}/{version} · Read · Member

参数位置类型必填说明
taskflowId路径integer是任务流 ID。
version路径string是版本列表中的版本字符串,例如 a1b2c3d。
orgSlug请求体string是组织 ID。

响应:data 是一个版本对象,包含版本列表单项的字段,另外 tasks 中是该版本的任务定义。

列出任务流运行历史​

POST /api/v2/taskflow/histories · Read · Member

按从新到旧返回所有任务流的任务运行记录。

字段类型必填说明
orgSlugstring是组织 ID。
perPageinteger否每页条数。默认:20。
nextPageTokenstring否上一次响应中的 nextPageToken。

响应示例。state 是任务运行状态。nextPageToken 是字符串,缺失表示没有下一页。

{
"success": true,
"data": {
"nextPageToken": "29319573127561217",
"results": [
{
"taskName": "__taskflow___31_refresh_daily_sales",
"taskflowId": 31,
"taskflowName": "nightly_sales",
"queryText": "INSERT INTO sales.daily SELECT ...",
"state": 2,
"scheduledTime": "2026-11-09T02:00:00Z",
"completedTime": "2026-11-09T02:00:41Z",
"queryId": "01a1b2c3-4d5e",
"warehouse": "default"
}
]
}
}

列出单个任务流的运行历史​

POST /api/v2/taskflow/histories/{taskflowId} · Read · Member

参数位置类型必填说明
taskflowId路径integer是任务流 ID。
orgSlug请求体string是组织 ID。
perPage请求体integer否每页条数。默认:20。
nextPageToken请求体string否上一次响应中的 nextPageToken。

响应结构与列出任务流运行历史相同,只有一点不同:每条记录中的 queryText 是一个键,SQL 文本在 data.blobs[queryText] 中。这样重复的 SQL 语句不会在每行中重复出现。

{
"success": true,
"data": {
"results": [
{ "taskName": "__taskflow___31_refresh_daily_sales", "queryText": "7d1f0a", "state": 3, "errorCode": "1025", "errorMessage": "Unknown table", "scheduledTime": "2026-11-09T02:00:00Z", "queryId": "01a1b2c3-4d5e" }
],
"blobs": { "7d1f0a": "INSERT INTO sales.daily SELECT ..." }
}
}

类型​

条目类型​

1 单个任务(一个 SQL Task),2 任务流(包含多个任务)。

任务流状态​

取值名称
5SuspendFailed
6Suspended
7Resumed
8ResumeFailed
9DropFailed
10Dropped

调度类型​

任务流的 schedule.type。schedule.args 是 JSON 字符串。

取值名称args 示例
1每 N 秒{"value":"10"}
2每 N 分钟{"value":"10"}
3每天指定时间{"value":"10:05"}
4每周指定日期和时间{"value":"10:05","everyWeek":2}(0-6)
5每月指定日期和时间{"value":"10:05","everyDate":28}(1-31)
10Cron 表达式{"value":"0 0 2 * * *"}
欢迎体验 Databend Cloud

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

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

注册即领 ¥200 代金券。

注册体验