Get a free observability report to evaluate the potential savingsContact us →
槽位使用3 分钟阅读

按天统计 BigQuery 槽位使用情况

每日槽位使用情况为您提供 BigQuery 计算消耗的大图景。此查询生成每天平均槽位使用情况的时间序列,对无活动的天数进行零填充,非常适合趋势分析和容量规划。

为什么重要

每日趋势揭示了关键决策的信息模式:您是否在增长并需要更多容量?周末是否显示可以缩减的最小使用量?是否有可以利用计划预留来利用的每周模式?这些数据对于从按需定价过渡到 Editions 定价至关重要。

工作原理

查询从 INFORMATION_SCHEMA.JOBS_TIMELINE 读取,该视图提供每秒槽位使用数据。按天汇总 period_slot_ms(除以每天毫秒数)以获得平均槽位使用情况。日历 CTE 创建完整的时间序列,LEFT JOIN 对空缺进行零填充。

SQL 查询

Fill in your details to get a ready-to-run query:

SQL
-- Average slot consumption per day (zero-filled time series)

DECLARE lookback_days INT64 DEFAULT 14;
DECLARE ms_per_day INT64 DEFAULT 86400000;

WITH daily_slots AS (
  SELECT
    TIMESTAMP_TRUNC(period_start, DAY) AS day,
    ROUND(SUM(period_slot_ms) / ms_per_day, 2) AS avg_slots
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE
  WHERE period_start >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND statement_type != 'SCRIPT'
  GROUP BY day
),
calendar AS (
  SELECT ts AS day FROM UNNEST(GENERATE_TIMESTAMP_ARRAY(
    TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY), DAY),
    TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY),
    INTERVAL 1 DAY)) AS ts
)
SELECT
  c.day,
  IFNULL(d.avg_slots, 0) AS avg_slots
FROM calendar c
LEFT JOIN daily_slots d ON c.day = d.day
ORDER BY c.day
将 your-project 和 region-us 替换为您的 GCP 项目和数据集区域。

查询说明

JOBS_TIMELINE 每秒记录 period_slot_ms。对这些值求和并除以一天中的毫秒数(86,400,000)得到该天的平均槽位使用数量。GENERATE_TIMESTAMP_ARRAY 创建完整的逐日时间线,LEFT JOIN 确保对无使用的天数进行零填充。

关键洞察

  • lightbulb

    一致的每日使用量表明计划管道——适合承诺 Editions 预留的好候选者。

  • lightbulb

    安静天数伴随的高峰使用量表明临时工作负载——按需或自动扩展 Editions 可能更具成本效益。

  • lightbulb

    周末与工作日模式可以为预留调度提供信息(周末缩减)。

  • lightbulb

    几周内向上的趋势表明工作负载在增长——在达到槽位限制之前规划容量。

最佳实践

  1. 1

    使用此数据将 Editions 基准槽位调整为您的 P50 每日使用量。

  2. 2

    设置自动扩展器最大槽位以覆盖 P95 每日峰值。

  3. 3

    在非峰值时段安排繁重的 ETL 作业,以平滑槽位需求。

  4. 4

    对槽位使用量超过预期最大值的天数发出警报。

想让 CloudClerk 自动找到这些节省吗?

我们的平台连接到您的 BigQuery 项目,自动运行这些分析,并提供 AI 驱动的优化建议——所有数据完全匿名。

相关指南