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

为何无法从serverless_task_history视图查看Snowflake任务Credits消耗?

Snowflake任务Credits消耗查询无结果排查

问题背景

我在Snowflake中调度了每小时运行的任务,该任务执行从基于原始表的Stream到规整表的Merge语句。我需要查询这些任务执行所消耗的Snowflake Credits,按照指引运行了查询1,但即使移除日期条件也无记录返回。运行查询2(基于task_history视图)可正常查看任务执行记录,需要排查无法通过查询1查看Credits消耗的原因,是否为权限缺失或查询语法问题?

查询1(无返回结果)

SELECT start_time::date as day
    ,TASK_NAME
    ,sum(CREDITS_USED) as credits_used
FROM table(information_schema.serverless_task_history(
    date_range_start=>'2023-04-01 00:00:00.000',
    date_range_end=>'2023-04-28 00:00:00.000')
)
GROUP BY 1,2 ORDER BY 3 DESC;

查询2(正常返回任务记录)

select *
from table(information_schema.task_history())
order by scheduled_time;

排查原因

1. 任务类型不匹配

serverless_task_history仅返回**无服务器任务(Serverless Tasks)的执行记录和Credits消耗。如果你的任务是使用用户仓库(User-Managed Warehouses)**运行的,这个视图不会有数据——因为Credits消耗会算在仓库的使用里,而非任务本身。

可以通过task_history视图中的WAREHOUSE_NAME字段判断:如果该字段不为空,说明任务是用用户仓库执行的,此时需要查询warehouse_metering_history统计Credits消耗,示例:

SELECT 
    start_time::date as day,
    warehouse_name,
    sum(credits_used) as credits_used
FROM table(information_schema.warehouse_metering_history(
    date_range_start=>'2023-04-01 00:00:00.000',
    date_range_end=>'2023-04-28 00:00:00.000')
)
WHERE warehouse_name = '<你的任务使用的仓库名>'
GROUP BY 1,2 ORDER BY 3 DESC;

2. 权限不足

虽然能访问task_history,但serverless_task_history需要额外权限:

  • 拥有MONITOR EXECUTION权限在任务所在的数据库或模式上;
  • 或拥有ACCOUNTADMIN角色,或被授予MONITOR USAGE账户级权限。

检查当前角色权限:

SHOW GRANTS ON SCHEMA <你的任务所在模式>;

若缺少权限,需由管理员执行授权:

GRANT MONITOR EXECUTION ON SCHEMA <模式名> TO ROLE <你的角色名>;

3. 时间范围与过滤规则问题

  • 查询1的date_range_end设为2023-04-28 00:00:00.000,会排除4月28日当天的任务记录,可调整为2023-04-29 00:00:00.000覆盖全天。
  • serverless_task_history默认仅返回成功执行的任务,若任务有失败情况,需添加result_filter参数包含失败记录:
SELECT start_time::date as day
    ,TASK_NAME
    ,sum(CREDITS_USED) as credits_used
FROM table(information_schema.serverless_task_history(
    date_range_start=>'2023-04-01 00:00:00.000',
    date_range_end=>'2023-04-28 00:00:00.000',
    result_filter=>'state IN (''SUCCEEDED'', ''FAILED'')')
)
GROUP BY 1,2 ORDER BY 3 DESC;

内容的提问来源于stack exchange,提问作者Harvesting Data

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:41