跳转至

加速任务补数

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、错误日志等详细信息