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

如何从Snowflake的information_schema.warehouse_load_history()获取每分钟平均值

如何从Snowflake的warehouse_load_history获取每分钟平均值

问题背景

Snowflake的information_schema.warehouse_load_history()每5秒生成一条仓库负载数据,需要基于这些数据计算每分钟的平均值。

原始查询语句

select * from table(snowflake.information_schema.warehouse_load_history());

原始查询结果(中文表头)

开始时间结束时间仓库名称平均运行数平均排队加载数平均排队预配置数平均阻塞数
2022-11-10 00:54:00.000 -08002022-11-10 00:54:05.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:05.000 -08002022-11-10 00:54:10.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:10.000 -08002022-11-10 00:54:15.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:15.000 -08002022-11-10 00:54:20.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:20.000 -08002022-11-10 00:54:25.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:25.000 -08002022-11-10 00:54:30.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:30.000 -08002022-11-10 00:54:35.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:35.000 -08002022-11-10 00:54:40.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:40.000 -08002022-11-10 00:54:45.000 -0800PROD_WH0.030.000.000.00
2022-11-10 00:54:45.000 -08002022-11-10 00:54:50.000 -0800PROD_WH0.010.000.000.00
2022-11-10 00:54:50.000 -08002022-11-10 00:54:55.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:54:55.000 -08002022-11-10 00:55:00.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:00.000 -08002022-11-10 00:55:05.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:05.000 -08002022-11-10 00:55:10.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:10.000 -08002022-11-10 00:55:15.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:15.000 -08002022-11-10 00:55:20.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:20.000 -08002022-11-10 00:55:25.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:25.000 -08002022-11-10 00:55:30.000 -0800PROD_WH0.000.000.000.00
2022-11-10 00:55:30.000 -08002022-11-10 00:55:35.000 -0800PROD_WH0.000.000.000.00

解决方案

可以通过DATE_TRUNC函数将时间维度截断到分钟,再按仓库和分钟分组,对各5秒区间的指标平均值再次取平均,得到每分钟的整体平均值(因每个区间时长一致,算术平均即可准确反映分钟级平均水平)。

示例SQL

SELECT
    DATE_TRUNC('minute', START_TIME) AS 分钟起始时间,
    WAREHOUSE_NAME AS 仓库名称,
    AVG(AVG_RUNNING) AS 分钟平均运行数,
    AVG(AVG_QUEUED_LOAD) AS 分钟平均排队加载数,
    AVG(AVG_QUEUED_PROVISIONING) AS 分钟平均排队预配置数,
    AVG(AVG_BLOCKED) AS 分钟平均阻塞数
FROM table(snowflake.information_schema.warehouse_load_history())
GROUP BY DATE_TRUNC('minute', START_TIME), WAREHOUSE_NAME
ORDER BY 分钟起始时间, 仓库名称;

语句说明

  • DATE_TRUNC('minute', START_TIME):将每条数据的开始时间截断到分钟级别,作为分组的时间维度
  • 按分钟起始时间和仓库名称分组,保证不同仓库的统计结果相互独立
  • 对每个5秒区间的各指标平均值再次取平均,得到该分钟的综合平均值

内容的提问来源于stack exchange,提问作者Programming-Lover

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:10:32