新的 BigQuery 定价 'tiers'

New BigQuery pricing 'tiers'

根据 pricing page,BigQuery 将于 2016 年 1 月 1 日引入新的分层定价模型。

我们希望能够预测这可能对我们的应用程序产生的任何成本影响。因此,我们查看了一些更复杂查询的 JSON 响应,以查看分配给它的 'tier' 是什么。

billingTier 层在 JSON 响应中清晰可见。

200 OK
- Show headers -
{
  "kind": "bigquery#job",
  [...]
  "totalBytesProcessed": "45319172942",
  "query": {
  "totalBytesProcessed": "45319172942",
  "totalBytesBilled": "45319454720",
  "billingTier": 1,
  "cacheHit": false
} 

在 2016 年 1 月 1 日新定价模型开始之前,这只是分配的默认层级(第 1 层),还是分配给查询的层级的真实指示?

billingTier 字段是根据我们即将推出的定价结构分配给查询的等级的真实指标。如果此字段设置为 1,则您的查询将按新定价结构下的当前(第 1 层)费率计费。

请注意,计费层级是在每次调用查询时单独计算的,因此不能严格保证同一查询始终属于同一计费层级。我建议抽查您的查询的合理样本,以大致了解您的工作负载在新定价结构下的位置。

如果您有兴趣,我已经编写了一个简单的脚本,如果 运行 每天将审计数据添加到包含用户同质化查询的大查询中的 table。我们正在使用它来审核查询成本并确定哪些 table 可能需要分片。

https://gist.github.com/ericuldall/ac475fe71d0ee2f3a5f0

此脚本估算的收费数据费用约为 5 美元/TB。

审计数据Table架构

job_id STRING NULLABLE
user STRING NULLABLE
size_in_gb FLOAT NULLABLE
estimated_cost FLOAT NULLABLE
sql STRING NULLABLE
timestamp TIMESTAMP NULLABLE