如何通过API调用收集DBT JOB运行历史及特定时段失败任务记录?
通过API获取dbt Job运行历史及失败任务记录
获取指定Job的运行历史
- 调用dbt Cloud运行记录API端点,需指定账号ID和Job ID:
GET /api/v2/accounts/{account_id}/jobs/{job_id}/runs/ - 请求头必须携带认证Token:
Authorization: Token <你的API令牌> - 可通过
page_size(默认20)和page参数分页获取全量数据,避免单次返回结果过多。
获取所有Job的运行历史
如果需要收集账号下所有Job的运行记录,分两步操作:
- 先调用Job列表API获取所有Job的ID:
GET /api/v2/accounts/{account_id}/jobs/ - 遍历每个Job ID,调用上述运行记录端点,汇总所有结果。
筛选特定时间段内的失败任务
在调用运行记录API时,添加以下查询参数实现精准筛选:
started_at_after:指定时间段起始时间,格式为UTC的ISO 8601字符串(如2024-01-01T00:00:00Z)started_at_before:指定时间段结束时间,格式同上status=5:dbt Cloud中5代表任务失败状态(状态码枚举:1=排队,2=启动中,3=运行中,4=成功,5=失败,6=取消)
示例Curl请求
curl -H "Authorization: Token YOUR_API_TOKEN" \ "https://cloud.getdbt.com/api/v2/accounts/YOUR_ACCOUNT_ID/jobs/YOUR_JOB_ID/runs/?started_at_after=2024-01-01T00:00:00Z&started_at_before=2024-01-31T23:59:59Z&status=5"
注意事项
- 确保你的API令牌拥有
job read权限,否则会返回权限错误 - 时间参数必须使用UTC时区,避免因时区偏差导致数据不准确
- 若筛选结果数量较大,需结合分页参数遍历所有页面,确保获取全量失败任务记录
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

