按标签分析 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:
-- 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
...查询说明
查询对标签重复字段进行 CROSS JOIN,将每个作业每个标签展平为一行。在 job_id 上使用 ROW_NUMBER() 去重,然后按 label_key 和 label_value 分组以对 total_bytes_billed 求和。按需费用按 $6.25/TiB 计算。
关键洞察
如果您的大多数作业缺少标签,此查询只会显示您费用的一部分——从标记最昂贵的管道开始。
逐月比较标签级别的费用以检测新功能或管道更改引入的费用回归。
'environment=production' 与 'environment=staging' 等标签可以揭示非生产工作负载是否花费超出预期。
dbt 自动添加带有模型名称的标签,使此查询对 dbt 团队特别有用。
最佳实践
- 1
执行标记策略:要求所有计划作业至少有一个 'team' 和 'pipeline' 标签。
- 2
在您的编排工具中使用 BigQuery 的默认查询标签,自动标记每个作业。
- 3
创建随时间跟踪标签级别费用的仪表板,以便早期发现回归。
- 4
对每周费用超过阈值的标签发出警报。
相关指南
按用户分析 BigQuery 费用
找出哪些用户产生了最多的 BigQuery 支出。查询 INFORMATION_SCHEMA,按按需费用对用户排名并识别优化目标。
阅读指南按项目分析 BigQuery 费用
跨 GCP 项目跟踪 BigQuery 费用。使用 INFORMATION_SCHEMA 比较项目级支出,找出组织中最昂贵的项目。
阅读指南按费用排名的 BigQuery 热门查询
按按需费用找出最昂贵的 BigQuery 查询。按总计费字节数对查询排名,识别项目中最大的费用驱动因素。
阅读指南按查询分析 BigQuery 费用
分析每个查询的费用、槽位使用情况和执行时间。获取每次查询执行的按需费用详细分解。
阅读指南