什麼是 BigQuery 費用計算機?
這款計算機可在「隨用隨付(on-demand)」計價模式下,估算你每月的 Google Cloud BigQuery 帳單。在此模式中,費用包含「查詢掃描的資料量」加上「儲存中保留的資料量」兩大部分。它能在你執行大型分析工作負載之前先預估成本,並讓你看清反覆掃描大型資料表所帶來的費用衝擊。請特別留意:BigQuery 定價會依地區(region)不同而有差異,且由 Google Cloud 以美元(USD)計價——請輸入你專案所在地區實際適用的費率。
使用方式
輸入每次查詢平均掃描的資料量(單位 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 \times \$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\),在应用查询价格 \(P_q\) 之前从中扣除免费层 \(F\)。
- 按需与容量(插槽)
- 按需按扫描的 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 並不會減少實際掃描的位元組數),並善用查詢驗證器(validator),在執行前先查看預估掃描的位元組量。
免費額度會重置嗎?隨用隨付的免費分析額度(通常為 1 TB)每月重置。若此額度已不適用於你的帳戶,請將其設為 0。