我想在评估BigQuery的查询成本时仔细检查我需要查看的内容。我发现每TB here的报价,即每TB 5美元,但恰好是1 TB?我一直在假设(在看起来很重要之前)相关数字将是BigQuery UI在结果上方输出的数字,因此对于此示例查询:
...在这种情况下2.34GB。因此,作为一个TB的一小部分并乘以5美元,这将花费大约1.2美分,假设我已经用完本月的补贴。
任何人都可以确认我是对的吗?在我处理一些事情之前检查一下,我认为这可能会产生一些不可忽视的成本。我应该说,在看起来很难做之前,我从来没有被一个相当大的BigQuery法案所蜇伤。
答案 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/