确认如何计算bigquery查询成本

时间:2017-12-19 16:14:29

标签: google-bigquery

我想在评估BigQuery的查询成本时仔细检查我需要查看的内容。我发现每TB here的报价,即每TB 5美元,但恰好是1 TB?我一直在假设(在看起来很重要之前)相关数字将是BigQuery UI在结果上方输出的数字,因此对于此示例查询:

BigQuery UI

...在这种情况下2.34GB。因此,作为一个TB的一小部分并乘以5美元,这将花费大约1.2美分,假设我已经用完本月的补贴。

任何人都可以确认我是对的吗?在我处理一些事情之前检查一下,我认为这可能会产生一些不可忽视的成本。我应该说,在看起来很难做之前,我从来没有被一个相当大的BigQuery法案所蜇伤。

2 个答案:

答案 0 :(得分:2)

  

任何人都可以确认我是对的吗?

确认

请注意 - BigQuery UI实际上使用DryRun,它只估计Total Bytes Processed。最终成本基于Bytes Billed,反映了一些细微差别 - 例如,查询中涉及的每个表最少10MB。您可以在此处查看更多详细信息 - https://cloud.google.com/bigquery/pricing#on_demand_pricing

答案 1 :(得分:0)

我知道我来晚了,但这可能对您有帮助。

如果将审核日志推送到另一个数据集,则可以在该数据集上执行以下操作。

  WITH data as
  (
    SELECT
      protopayload_auditlog.authenticationInfo.principalEmail as principalEmail,
      protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent AS jobCompletedEvent
    FROM
      `administrative-audit-trail.gcp_audit_logs.cloudaudit_googleapis_com_data_access_20190227`
  )
  SELECT
    principalEmail,
    FORMAT('%9.2f',5.0 * (SUM(jobCompletedEvent.job.jobStatistics.totalBilledBytes)/POWER(2, 40))) AS Estimated_USD_Cost
  FROM
    data
  WHERE
    jobCompletedEvent.eventName = 'query_job_completed'
  GROUP BY principalEmail
  ORDER BY Estimated_USD_Cost DESC

参考:https://cloud.google.com/bigquery/docs/reference/auditlogs/