加速任务补数
1. 概述
本手册旨在指导用户通过 API 完成加速方案的补数操作。补数功能允许您为指定的加速方案,按历史日期范围重新生成或修复数据。
整个流程遵循“创建任务 → 查询进度 → 定位详情”三步走策略,便于您程序化地跟踪和管理大批量补数任务。
2. 公共请求参数 (HEADERS)
以下参数适用于本手册中所有 API 接口。
| 参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
tenant-id |
String | 是 | 租户ID,用于标识资源所在的租户。 |
auth-type |
String | 是 | 认证方式,用于设置身份认证方式。可选值: • UID:使用 UID 进行身份认证• TOKEN:使用 TOKEN 进行身份认证• ACCOUNT:使用 ACCOUNT 进行身份认证 |
auth-value |
String | 是 | 认证凭证值,与 auth-type 类型选择保持一致。 |
公共参数获取方式
tenant-id 与 auth-value 的获取路径:在 Aloudata CAN 顶部导航栏选择 指标应用,左边菜单栏选择 API 集成。在 API 集成界面中可获取到对应的 tenant-id 与 auth-value。
第一步:创建补数任务
此接口用于创建一个新的补数任务。成功提交后,系统将返回一个全局唯一的任务标识(dagName),用于串联后续所有查询。
1. 接口 URL
POST http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/accelerate/task/create
{anymetrics_host}:{anymetrics_port}获取方式请参考:调用方式
2. 请求参数
2.1 公共请求参数 (HEADERS)
请参见手册开头的 公共请求参数 (HEADERS) 章节。
2.2 请求体参数 (Body)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
planId |
String | 是(与 planName 二选一) |
加速方案的唯一标识符 (UUID)。 |
startTime |
String | 是 | 回刷数据的起始日期,格式:YYYY-MM-DD。 |
endTime |
String | 是 | 回刷数据的结束日期,格式:YYYY-MM-DD。 |
dateIntervalOfLot |
Integer | 否 | 每批次处理的天数。系统会按此天数将日期范围拆分为多个子任务实例。默认值为 1。 |
3. 请求示例
curl --location --request POST 'http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/accelerate/task/create' \
--header 'tenant-id: {tenant_id}' \
--header 'auth-type: UID' \
--header 'auth-value: {uid}' \
--header 'Content-Type: application/json' \
--data-raw '{
"planId": "5468b0c0462e40e08e44108d8164c7c3",
"startTime": "2025-01-01",
"endTime": "2025-01-01",
"dateIntervalOfLot": 1
}'
4. 响应示例
{
"data": "e94bc831-f5f9-4604-8717-6742ae61e729",
"success": true,
"code": "200",
"errorMsg": null,
"detailErrorMsg": null,
"traceId": "78f6b068f84545aea98460f6f5b0627e.195.17761432013872163"
}
返回结果
-
返回值:
String -
示例:
"80d3a5a9-027d-4c82-97e2-9e9ac9da873a" -
说明: 返回值为本次补数任务的唯一标识符
**dagName**
第二步:查询任务实例列表
使用第一步返回的 dagName,可以查询该批次下所有子任务实例的执行情况。
1. 接口 URL
GET http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/accelerate/task/instance/list
2. 请求参数
2.1 公共请求参数 (HEADERS)
请参见手册开头的 公共请求参数 (HEADERS) 章节。
2.2 查询参数 (Query Parameters)
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
dagName |
String | 是 | - | 第一步返回的补数任务标识。 |
pageIndex |
Integer | 否 | 1 | 当前页码,从 1 开始。 |
pageSize |
Integer | 否 | 20 | 每页返回的记录条数。 |
3. 请求示例
curl --location --request GET 'http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/accelerate/task/instance/list?dagName=80d3a5a9-027d-4c82-97e2-9e9ac9da873a&pageIndex=1&pageSize=20' \
--header 'tenant-id: {tenant_id}' \
--header 'auth-type: UID' \
--header 'auth-value: {uid}' \
--header 'Content-Type: application/json'
4. 返回结果示例
{
"dagName": "80d3a5a9-027d-4c82-97e2-9e9ac9da873a",
"pageIndex": 1,
"pageSize": 20,
"total": 3,
"instances": [
{
"id": "12876560",
"status": "SUCCESS",
"mtGuid": "catalog.schema.table_name",
"startPartition": "2025-01-01",
"endPartition": "2025-01-01",
"startTime": "2025-03-25T10:00:00",
"endTime": "2025-03-25T10:02:30",
"resourceGroup": "default",
"priority": 1,
"createTime": "2025-03-25T09:59:00",
"scheduleTime": "2025-03-25T10:00:00"
}
]
}
5. 返回字段说明
| 字段路径 | 描述 |
|---|---|
dagName |
补数任务的总标识。 |
pageIndex / pageSize |
当前分页信息。 |
total |
本次补数任务拆分出的实例总数。 |
instances |
任务实例列表。 |
instances[ ].id |
(关键) 任务实例的唯一ID,用于第三步查询详情。 |
instances[ ].status |
实例运行状态。可能值:WAITING(等待中)、RUNNING(运行中)、SUCCESS(成功)、FAILED(失败)。 |
instances[ ].mtGuid |
本实例操作的物化表全局唯一标识 |
instances[ ].startPartition |
本实例负责刷新的数据分区起始日期 |
instances[ ].endPartition |
本实例负责刷新的数据分区结束日期 |
instances[ ].startTime |
实例实际开始执行的时间 |
instances[ ].endTime |
实例实际执行结束的时间 |
instances[ ].createTime |
任务实例的创建时间 |
第三步:查询单个实例详情
当某个子任务状态为 FAILED 或需要进一步分析时,可通过第二步获取的实例 id 查询其详细执行信息,包括实际执行的 SQL 和错误日志。
1. 接口 URL
GET http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/scheduler/task/detail
2. 请求参数
2.1 公共请求参数 (HEADERS)
请参见手册开头的 公共请求参数 (HEADERS) 章节。
2.2 查询参数 (Query Parameters)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
id |
String | 是 | 第二步返回的实例 id。 |
3. 请求示例
curl --location --request GET 'http://{anymetrics_host}:{anymetrics_port}/anymetrics/api/v1/scheduler/task/detail?id=12876560' \
--header 'tenant-id: {tenant_id}' \
--header 'auth-type: UID' \
--header 'auth-value: {uid}' \
--header 'Content-Type: application/json'
4. 返回结果示例
{
"taskInstanceId": 12876560,
"status": "SUCCESS",
"sql": {
"originalSql": "INSERT INTO ... SELECT ... WHERE dt >= '2025-01-01' AND dt <= '2025-01-01'",
"formattedSql": "..."
},
"runType": "MANUAL",
"msg": null,
"serverInfo": "10.161.0.244",
"startTime": "2025-03-25T10:00:00",
"endTime": "2025-03-25T10:02:30",
"startPartitionTime": "2025-01-01T00:00:00",
"endPartitionTime": "2025-01-01T00:00:00",
"retryCnt": 0,
"mtGuid": [{"catalog": "...", "schema": "...", "table": "..."}],
"acceleratePlanUuid": ["5468b0c0462e40e08e44108d8164c7c3"],
"statusTime": {
"WAITING": "2025-03-25T09:59:00",
"RUNNING": "2025-03-25T10:00:00",
"SUCCESS": "2025-03-25T10:02:30"
},
"taskType": "RESULT_PLAN"
}
5. 关键返回字段说明
| 字段名 | 描述 |
|---|---|
sql |
(关键) 任务实际执行的 SQL 语句,包含已替换的日期变量。 |
msg |
(关键) 当任务失败时,此处会包含具体的错误堆栈信息,是排查问题的首要依据。 |
serverInfo |
执行该任务的服务器 IP 地址。 |
retryCnt |
任务已重试的次数。 |
statusTime |
记录了任务在各个状态(等待、运行、结束)下的时间戳,便于分析耗时。 |
runType |
触发类型。MANUAL 代表手动补数,SCHEDULE 代表系统定时调度。 |
流程总结
为了帮助您快速理解调用链路,下表对三步流程进行了串联类比:
| 步骤 | 接口 | 核心入参 | 核心出参 |
|---|---|---|---|
| ① 创建任务 | POST .../task/create |
planId, 日期范围 |
**dagName** |
| ② 查询列表 | GET .../task/instance/list |
**dagName** |
分页实例列表(含 **id**) |
| ③ 查询详情 | GET .../scheduler/task/detail |
**id** |
SQL、错误日志等详细信息 |