GCP 结算报告中的费用与导出到 GBQ 的费用不匹配
Posted
技术标签:
【中文标题】GCP 结算报告中的费用与导出到 GBQ 的费用不匹配【英文标题】:Costs in GCP billing report and costs exported to GBQ do not match 【发布时间】:2020-06-04 09:28:34 【问题描述】:我希望我在结算报告中看到的费用与我通过“结算导出”选项导出到 BigQuery 的费用必须匹配。但据我所知,报告中的数字之间存在很大差异。
我使用这些说明进行计费导出/监控。
https://medium.com/google-cloud/visualize-gcp-billing-using-bigquery-and-data-studio-d3e695f90c08
是的,我昨天完成了,所以实际报告和导出数据之间可能存在一定的时间差。但有趣的是,导出数据显示更多成本比计费报告。怎么可能?
有什么想法吗?
【问题讨论】:
对于此类问题,最好的建议是联系 Gcp 计费团队进行检查或与他们一起打开一个案例,因为由于您的项目的安全性,没有人可以最好地了解您的计费问题。 cloud.google.com/support/billing 您要删除任何帐户信用吗?有时帐单报告会默认包含此内容? @BenP - 不,我不是。 @Neelam - 感谢您的建议。会检查 【参考方案1】:这是因为在 GCP 结算报告中,数据使用太平洋时区显示,而 BigQuery 中的数据使用 UTC。要匹配这两个数字,请尝试 BigQuery 中的以下 WHERE
子句:
WHERE usage_end_time >= '2020-10-9 00:00:00 America/Los_Angeles' AND usage_end_time < '2020-10-10 00:00:00 America/Los_Angeles'
您可以找到更多信息here。 文档说:
注意:Cloud Billing 报告中的时间段使用太平洋时区,并观察夏令时变化。
【讨论】:
【参考方案2】:要获得完全匹配的日期范围,您必须搜索 usage_start_time 来查找您正在查看的时间段的开始和结束时间。要使发票月份报告与您的 BQ 结果相匹配,您必须删除 usage_start_time 并仅查找 invoice_month 匹配。我使用 ancestry_numbers 字段按文件夹结构组织输出,因此如果不需要,可以省略该字段。
--Exact match for date range:
SELECT
project.name,
sku.description,
project.ancestry_numbers,
SUM(usage.amount) as usage,
sum(cost) as total_cost,
SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits
FROM <billing_acct_ID_here>
WHERE DATE(usage_start_time, "America/Los_Angeles") >= DATE("2022-02-01")
AND DATE(usage_start_time, "America/Los_Angeles") <= DATE("2022-02-28")
GROUP BY 1, 2, 3
ORDER BY 1;
--Exact match for monthly invoice data:
SELECT
project.name,
sku.description,
SUM(usage.amount) as usage,
sum(cost) as total_cost,
SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) as total_credits
FROM <billing_acct_ID_here>
WHERE invoice.month = "202202"
GROUP BY 1, 2
ORDER BY 1;
【讨论】:
以上是关于GCP 结算报告中的费用与导出到 GBQ 的费用不匹配的主要内容,如果未能解决你的问题,请参考以下文章