BigQuery 费用计算器是什么?
本计算器基于 Google Cloud BigQuery 的按需(on-demand)计费模式,帮你估算每月账单。在这种模式下,费用由两部分组成:查询时扫描的数据量,以及长期保存在存储中的数据量。在运行大型分析任务之前,它能帮你提前预估成本,并直观看出反复扫描超大表会带来多少开销。需要注意的是,BigQuery 的价格由 Google Cloud 以美元(USD)计价,并因区域(region)而异——请填入你所在项目区域对应的实际费率。
如何使用
依次填入每次查询扫描的数据量(单位 TB)、每月查询次数,以及按需模式下的每 TB 查询价格(Google 在许多区域的默认价约为 $6.25/TB)。接着填入免费查询额度(通常每月前 1 TB 免费),再填入活跃存储容量(GB)和每 GB 每月存储价格(活跃存储约为 $0.02)。计算器会用计费数据量乘以查询单价,再加上存储费用,得出总额。
计算公式说明
总扫描量 = 每次查询数据量 × 查询次数。计费扫描量 = 总扫描量 − 免费额度(结果不会低于 0)。查询费用 = 计费扫描量 × 每 TB 价格。存储费用 = 存储 GB 数 × 每 GB 价格。月度估算 = 查询费用 + 存储费用。
$$\text{Total Cost} = \max\!\left(Q \cdot D - F,\; 0\right) \cdot P_q \;+\; S \cdot P_s$$
$$\text{where}\quad \left\{ \begin{aligned} D &= \text{Data Scanned (TB)} \\ Q &= \text{Queries / Month} \\ F &= \text{Free Tier (TB)} \\ P_q &= \text{Query Price (\$/TB)} \\ S &= \text{Storage (GB)} \\ P_s &= \text{Storage Price (\$/GB)} \end{aligned} \right.$$
实例演算
假设每次查询扫描 1 TB,每月运行 1,000 次查询,单价为 $6.25/TB,免费额度为 1 TB。那么:总扫描量 = 1,000 TB;计费量 = 999 TB;查询费用 = 999 × $6.25 = $6,243.75。再加上 1,000 GB 存储,按 $0.02/GB 计为 $20。合计 = 每月 $6,263.75。
$$\max\!\left(1{,}000 \cdot 1 - 1,\; 0\right) \cdot 6.25 \;+\; 1{,}000 \cdot 0.02 = 6{,}243.75 + 20 = 6{,}263.75$$
BigQuery 按需定价参考
Google BigQuery 的按需模型根据每次查询扫描的数据量进行收费,另外还对存储的数据按月收费。以下费率是美国多区域的广泛认可的标价,以美元报价。定价因地区而异(例如,某些地区每 TB 收费更高),因此请始终根据当前的 Google Cloud 定价页面和您的计费地区进行确认。
| 组件 | 认可费率(美国) | 说明 |
|---|---|---|
| 按需查询定价 | ~$6.25 / TB | 按处理的字节数计费,向上舍入;每次查询最少 10 MB |
| 活跃存储 | ~$0.02 / GB / 月 | 在过去 90 天内修改过的表或分区 |
| 长期存储 | ~$0.01 / GB / 月 | 90 个连续天内未修改的数据(折扣约 50%) |
| 免费查询层 | 1 TB / 月 | 每月前 1 TB 的查询数据处理免费 |
| 免费存储层 | 10 GB / 月 | 每月前 10 GB 的存储免费 |
在成本公式中,查询费率对应 \(P_q\)($/TB),存储费率对应 \(P_s\)($/GB),免费查询额度对应 \(F\)(TB),您的存储量对应 \(S\)(GB)。加载、复制和导出数据通常免费,但流式插入和其他某些操作有自己的费用,此处未建模。
常见工作负载场景的成本
下表应用公式 \(\text{总成本} = \max(Q\cdot D - F,\,0)\cdot P_q + S\cdot P_s\),查询价格为 $6.25/TB,免费层为 1 TB,存储固定为 500 GB,存储价格为 $0.02/GB/月(每行都产生 $10.00 的存储费用)。每月扫描的总数据为 \(Q\cdot D\)。
| 场景 | 数据 / 查询 | 查询 / 月 | 总扫描量 | 应计费用(1 TB 免费后) | 查询成本 | 存储成本 | 总计 / 月 |
|---|---|---|---|---|---|---|---|
| 轻量级 | 0.1 TB | 200 | 20 TB | 19 TB | $118.75 | $10.00 | $128.75 |
| 中等 | 1 TB | 1,000 | 1,000 TB | 999 TB | $6,243.75 | $10.00 | $6,253.75 |
| 重量级 | 5 TB | 2,000 | 10,000 TB | 9,999 TB | $62,493.75 | $10.00 | $62,503.75 |
轻量级场景的查询成本计算为 \((200 \times 0.1 - 1) \times 6.25 = 19 \times 6.25 = \$118.75\),加上 \(500 \times 0.02 = \$10.00\) 的存储。这些数字清楚地表明,对于大容量工作负载,查询(扫描)成本远超存储 — 控制扫描的字节数才是节省成本的关键。
关键术语解释
- 扫描数据 / 处理字节(\(D\))
- 查询读取的表数据量,以字节为单位,按 TB 计费。BigQuery 根据处理的字节数计费,与返回的行数无关;选择更少的列意味着读取更少的字节。
- 每月查询数(\(Q\))
- 您每月运行的此类查询数量。总扫描量为 \(Q \cdot D\),从中减去免费层 \(F\),然后应用查询价格 \(P_q\)。
- 按需与容量(插槽)
- 按需根据扫描的 TB 数计费(此计算器中采用的模型)。容量定价则预留称为插槽的计算单元,以统一的小时率或承诺率收费,使成本与扫描的字节数脱钩 — 更适合稳定、高量级的使用。
- 活跃与长期存储
- 当表或分区在过去 90 天内修改时,属于活跃存储(约 $0.02/GB)。如果连续 90 天未触及,它将转为长期存储,费率约为一半(约 $0.01/GB),性能无变化。
- 免费层(\(F\))
- 每月 BigQuery 提供 1 TB 查询处理和 10 GB 存储,无需任何费用。在公式中,\(F\) 是从总扫描量中减去的免费查询额度,最少为零。
- 分区与聚簇
- 组织表的技术,使查询仅读取相关段。有效的分区(例如,按日期)和聚簇会减少 \(D\) — 扫描的字节数 — 直接降低按需成本。
- 地区
- 您的数据集所在的地理位置。每 TB 查询费率和每 GB 存储费率因地区而异;此工具中的 \(P_q\) 和 \(P_s\) 应与您的数据所在的地区匹配。
常见问题
这个结果和我的账单完全一致吗? 不一致——它只是一个估算值。实际的 BigQuery 费用取决于你所在的区域、所用版本(按需 vs. 容量/槽位 slots)、长期存储与活跃存储的折扣差异,以及向最接近 MB 取整等因素。
如何降低查询费用? 只选取需要的列,对表进行分区(partition)和聚簇(cluster);谨慎使用 LIMIT 预览(注意 LIMIT 并不会减少扫描的字节数);并在运行前借助查询校验器查看预计扫描的字节量。
免费额度会重置吗? 按需模式下的免费分析额度(通常为 1 TB)每月重置。如果该额度已不适用于你的账户,请将其设为 0。