You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake依赖任务T2执行历史无法查询,求追踪方法

排查Snowflake任务T2执行状态的方法

先别急,咱们一步步来排查T2的执行情况,找到问题所在:

1. 确认T2任务的当前状态

首先要确保T2不是处于暂停状态——如果任务被暂停了,根本不会触发执行,自然不会有执行历史。
可以用这条语句查看状态:

SELECT name, state FROM information_schema.tasks WHERE name = 'T2';

或者更详细地查看任务配置:

DESCRIBE TASK T2;

如果STATE字段显示为SUSPENDED,就需要用ALTER TASK T2 RESUME;来恢复任务。

2. 验证前置任务T1的执行结果

因为T2是T1的后置任务,只有T1成功完成后,T2才会被触发执行。所以即使你能看到T1的执行历史,也要确认最近一次T1的执行状态是SUCCEEDED:

SELECT * FROM table(information_schema.task_history(task_name=>'T1', result_limit => 10)) 
ORDER BY scheduled_time DESC;

重点看STATE列的值,如果T1最近一次执行是FAILED或者CANCELLED,那T2不会被触发。

3. 扩大任务历史的查询范围

你当前的查询只限制了10条结果,可能T2最近没有执行,或者结果被排在后面了。可以扩大时间范围来查询:

SELECT * FROM table(information_schema.task_history(
    date_range_start => DATEADD(day, -7, CURRENT_TIMESTAMP()),
    date_range_end => CURRENT_TIMESTAMP(),
    task_name=>'T2'
)) ORDER BY scheduled_time DESC;

这样能查看最近7天内T2的所有执行记录,不管成功还是失败。

4. 检查任务的依赖关系是否正确

确认T2确实将T1设置为前置任务,避免配置出错:
执行DESCRIBE TASK T2;后,查看PREDECESSORS字段,里面应该明确列出T1。如果没有这个配置,T2不会跟随T1执行,需要重新设置依赖:

ALTER TASK T2 ADD PREDECESSOR TASK T1;

5. 通过查询历史间接追踪T2的执行

如果任务历史里还是没记录,你可以去查询历史里找T2执行的SQL语句——Snowflake任务执行的查询会自动带上任务名称的标签:

SELECT * FROM table(information_schema.query_history(
    date_range_start => DATEADD(day, -7, CURRENT_TIMESTAMP()),
    date_range_end => CURRENT_TIMESTAMP()
)) WHERE query_tag LIKE '%T2%' OR query_text LIKE '%T2%' 
ORDER BY start_time DESC;

这样能找到所有和T2相关的执行查询,哪怕任务历史没显示。

6. 确认权限是否足够

虽然你能查看T1的历史,但可能缺少查看T2任务历史的权限。可以尝试给自己的角色添加监控权限:

GRANT MONITOR ON TASK T2 TO YOUR_CURRENT_ROLE;

替换YOUR_CURRENT_ROLE为你正在使用的角色即可。

内容的提问来源于stack exchange,提问作者Vijay Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:07:26