扫描

对数据源发起异步扫描,反射 schema、采样、逐字段定级。含任务状态轮询。

扫描是一个异步任务:发起后立即返回 task_id,引擎在后台反射 schema、采样数据、逐字段定级。你通过轮询任务状态拿进度和结果。

发起扫描

text
POST /api/v1/datasources/{ds_id}/scan

superadmin / admin / dba 角色。

请求体

字段类型默认说明
scan_typestringfull扫描范围,full 全量
scan_modestringprecise模式,precise 精确
sample_rowsint50每字段采样行数
prioritystringnormal任务优先级

响应(202 Accepted)

json
{
  "task_id": "a1b2c3d4-...",
  "status": "queued",
  "estimated_duration_sec": 420,
  "tables_to_scan": 48
}
202 不是 200

发起扫描返回 202 Accepted,表示任务已入队、尚未完成。拿到 task_id 后去轮询,不要假设结果已经就绪。

查询任务状态

text
GET /api/v1/scan-tasks/{task_id}

响应

字段类型说明
task_idstring任务 ID
datasource_idstring所属数据源
statusstringqueued / running / completed / failed
progressint进度百分比 0–100
result_summaryobject结果摘要(字段数、各级别分布等)
error_messagestring | null失败原因
started_atdatetime | null开始时间
completed_atdatetime | null完成时间

轮询示例

bash
curl https://your-dcg-host/api/v1/scan-tasks/$TASK_ID \
  -H "Authorization: Bearer $TOKEN"
json
{
  "task_id": "a1b2c3d4-...",
  "status": "running",
  "progress": 63,
  "result_summary": { "fields_done": 386, "fields_total": 612 }
}

列出任务

text
GET /api/v1/scan-tasks?datasource_id={id}&status=running&page=1&size=20

按数据源、状态过滤,分页返回。

扫描完成后,去 读分级结果