Get a free observability report to evaluate the potential savingsContact us →
费用分析3 分钟阅读

按标签分析 BigQuery 费用

BigQuery 作业标签让您可以用任意键值元数据标记查询——团队名称、管道 ID、功能标志或环境标签。此查询按标签汇总费用,以便您将支出归因于对您的组织最重要的业务维度。

为什么重要

用户级别的费用归因只能做到这一步。在现代数据栈中,单个服务账户可能代表数十个团队或管道运行查询。标签通过让您用业务上下文标记作业(例如 team=analytics、pipeline=revenue_report),然后相应地切分费用来弥合这一差距。

工作原理

BigQuery 将标签存储为每个作业上的重复 STRUCT 字段。此查询对标签数组进行 CROSS JOIN,对作业去重,然后按每个标签键值对汇总 total_bytes_billed。

SQL 查询

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

SQL
-- Break down on-demand cost by job label

DECLARE lookback_days INT64 DEFAULT 30;

WITH flattened AS (
  SELECT
    job_id,
    lbl.key AS label_key,
    lbl.value AS label_value,
    COALESCE(total_bytes_billed, 0) AS bytes_billed,
    ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
  CROSS JOIN UNNEST(labels) AS lbl
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND state = 'DONE'
    AND total_slot_ms IS NOT NULL
    AND lbl.key IS NOT NULL
),
deduplicated AS (
  SELECT label_key, label_value, bytes_billed
  FROM flattened WHERE rn = 1
)
SELECT
  label_key,
  label_value,
  COUNT(*) AS job_count,
  ROUND(SUM(bytes_billed) / POW(1024, 3), 2) AS gib_scanned,
  ROUND(SUM(bytes_billed) / POW(1024, 4) * 6.25, 2) AS estimated_cost_usd
FROM deduplicated
GROUP BY label_key, label_value
...
将 your-project 和 region-us 替换为您的 GCP 项目和数据集区域。

查询说明

查询对标签重复字段进行 CROSS JOIN,将每个作业每个标签展平为一行。在 job_id 上使用 ROW_NUMBER() 去重,然后按 label_key 和 label_value 分组以对 total_bytes_billed 求和。按需费用按 $6.25/TiB 计算。

关键洞察

  • lightbulb

    如果您的大多数作业缺少标签,此查询只会显示您费用的一部分——从标记最昂贵的管道开始。

  • lightbulb

    逐月比较标签级别的费用以检测新功能或管道更改引入的费用回归。

  • lightbulb

    'environment=production' 与 'environment=staging' 等标签可以揭示非生产工作负载是否花费超出预期。

  • lightbulb

    dbt 自动添加带有模型名称的标签,使此查询对 dbt 团队特别有用。

最佳实践

  1. 1

    执行标记策略:要求所有计划作业至少有一个 'team' 和 'pipeline' 标签。

  2. 2

    在您的编排工具中使用 BigQuery 的默认查询标签,自动标记每个作业。

  3. 3

    创建随时间跟踪标签级别费用的仪表板,以便早期发现回归。

  4. 4

    对每周费用超过阈值的标签发出警报。

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

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

相关指南