借助将 Cloud Billing 数据导出到 BigQuery 这一功能,您可以将全天的 Google Cloud 详细结算数据(如用量、费用估算和价格数据)自动导出到您指定的 BigQuery 数据集。然后,您可以从 BigQuery 访问 Cloud Billing 数据以进行详细分析,或者使用 Looker Studio 等工具直观呈现您的数据。您也可以使用这种导出方法将数据导出到 JSON 文件。
时间很重要。我们建议您在创建 Cloud Billing 账号的同时启用将 Cloud Billing 数据导出到 BigQuery 的功能,这样您就可以访问更全面的 Google Cloud 结算数据集,从而满足您的分析需求。
请查看可能会影响将结算数据导出到 BigQuery 的限制。
后续步骤
无论您是经营着规模达数十亿美元的大型企业,还是只有小笔家庭预算,有效管理和报告费用是财务管理的重要环节。为了围绕 Google Cloud 费用和使用情况制定以数据为依据的决策,首先要收集可作为决策依据的数据。
请参阅本部分的指南,了解以下任务:
设置将 Cloud Billing 数据导出到 BigQuery 的功能
要开始收集 Cloud Billing 数据,您必须启用将 Cloud Billing 数据导出到 BigQuery 的功能。
设置指南提供了最佳做法建议和详细说明以便您启用将 Cloud Billing 数据导出到 BigQuery 的功能。您可以导出以下类型的 Cloud Billing 数据:
标准使用费数据 - 包含标准 Cloud Billing 账号使用费信息,例如账号 ID、账单日期、服务、SKU、项目、标签、位置、费用、用量、赠金、调整项和货币。
请使用标准用量导出来分析费用数据中的各种趋势。
详细使用费数据 - 包含详细的 Cloud Billing 账号使用费信息。包括标准使用费数据中的所有内容,外加资源级费用数据,例如产生服务用量的虚拟机或 SSD。
使用详细用量导出可在资源级层分析费用,并识别可能会增加费用的特定资源。详细导出内容包含以下产品的资源级信息:
- Compute Engine
- Google Kubernetes Engine (GKE)
- Cloud Run 函数
- Cloud Run
如需查看 GKE 的相关信息,请在详细导出中启用费用分配。
如需了解进一步的建议和限制,请查看详细使用费数据的架构。
(仅限转销商)重新结算数据导出 - 包含所有添加了合作伙伴特定注解的转销商结算账号的详细 Cloud Billing 账号使用费信息。
使用重新结算数据导出来管理 Google Cloud 客户的结算操作。详细了解支持生成最终客户费用的重新定价配置。
价格数据 - 包含 Cloud Billing 账号价格信息,例如账号 ID、服务、SKU、产品、地理位置元数据、价格单位、货币、汇总和层级。
您还可以通过以下方式获取 Cloud Billing 账号价格数据:
使用 BigQuery 存储和查询 Cloud Billing 数据会产生些许费用。如需了解详情,请参阅使用费。
请查看可能会影响将结算数据导出到 BigQuery 的限制。
了解 Cloud Billing 数据表
在启用将 Cloud Billing 数据导出到 BigQuery 的功能之后,系统将在 BigQuery 数据集中自动创建 Cloud Storage 数据表。
如需了解所导出内容的数据架构,请参阅导出到 BigQuery 数据集中每个表的 Cloud Billing 数据内容的参考信息。
查找 Cloud Billing 数据的查询示例
如需了解如何使用 SQL 对您的 Cloud Billing 数据运行查询的提示和指导,请查看查询示例。
在查询示例页面上,您可以找到各种 SQL 示例,包括以下示例:
使用费
使用 BigQuery 存储和分析结算使用量和费用数据通常会产生些许费用。
- 将数据加载到指定数据集是免费的,因为此操作会利用 BigQuery 的共享资源池批量加载数据。
- 使用 BigQuery 导出和分析 Cloud Billing 数据时,相关费用将取决于您流式传输、存储和查询的数据量。
- 很多分区表操作都是免费的,包括将数据加载到分区、复制分区,以及从分区导出数据。这些操作虽然免费,仍要受 BigQuery 配额和限制的约束。
通常,查询“详细费用”导出操作的费用可能高于查询标准导出的费用。为了优化费用,我们建议使用“标准导出”来分析费用趋势,使用“详细导出”在资源级层跟踪费用,识别可能会提升费用的特定资源。
如需了解预计会产生哪些费用,请参阅估算存储和查询费用。
如需详细了解在 BigQuery 中优化费用的最佳实践,请参阅控制 BigQuery 费用。
如需详细了解价格,请查看 BigQuery 价格。
限制
将 Cloud Billing 数据导出到 BigQuery 时存在以下限制。
支持与 Cloud Billing 数据搭配使用的 BigQuery 数据集位置
BigQuery 数据集配置为使用位置(多区域位置[欧盟或美国]或单区域位置)。数据集位置是在创建时设置的。创建数据集后,就无法再更改其位置。
Cloud Billing 数据导出支持所有多区域位置(欧盟或美国),但仅支持部分单区域位置。配置 Cloud Billing 导出设置时,如果您创建或选择配置为使用不受支持的单区域位置的数据集,则在尝试保存导出设置时,您会看到数据集区域无效错误。
下表列出了支持与用于包含 Cloud Billing 数据的 BigQuery 数据集搭配使用的多区域位置和单区域位置。
美洲 亚太地区 欧洲 多区域:美国
区域:
- northamerica-northeast1(蒙特利尔)
- southamerica-east1(圣保罗)
- us-central1(爱荷华)
- us-east1(南卡罗来纳)
- us-east4(北弗吉尼亚)
- us-west1(俄勒冈)
- us-west2(洛杉矶)
- us-west3(盐湖城)
- us-west4(拉斯维加斯)
区域:
- asia-east1(台湾)
- asia-east2(香港)
- asia-northeast1(东京)
- asia-northeast2(大阪)
- asia-northeast3(首尔)
- asia-south1(孟买)
- asia-southeast1(新加坡)
- asia-southeast2(雅加达)
- australia-southeast1(悉尼)
多区域:欧盟
区域:
- europe-central2(华沙)
- europe-north1(芬兰)
- europe-west1(比利时)
- europe-west2(伦敦)
- europe-west3(法兰克福)
- europe-west4(荷兰)
- europe-west6(苏黎世)
对于包含标准使用费用数据或详细使用费用数据的 BigQuery 数据集,您为数据集配置的位置类型会影响 Google Cloud 结算数据导出到数据集的时间:
- 如果您将数据集配置为使用多区域位置,则数据集会包含您首次启用导出时的上月初开始产生的 Google Cloud 结算数据,除非您重新启用导出。也就是说,系统会以追溯方式添加当月和上月的 Google Cloud 结算数据。对于导出数据的初始回填,追溯性 Cloud Billing 数据最多可能需要 5 天完成导出,然后您才能开始看到当前的使用情况数据。
如果数据集配置为使用受支持的单区域位置,则标准使用费用数据和详细使用费用数据仅反映自启用 Cloud Billing 导出之日起产生的 Google Cloud 结算数据。也就是说,系统不会针对非多区域数据集位置以追溯方式添加 Google Cloud 结算数据,因此您不会看到启用导出之前的 Cloud Billing 数据。
如需了解详情,请参阅数据可用性。
包含价格数据的 BigQuery 数据集仅收集自设置 Cloud Billing 导出之日起产生的 Google Cloud 结算数据。也就是说,系统不会以追溯方式添加 Google Cloud 价格数据,因此您不会看到启用导出之前的 Cloud Billing 数据。如需了解详情,请参阅数据可用性。
导出详细使用费用数据时,详细导出会自动包含有关 Compute Engine 的资源级信息。如需在详细的数据导出中查看 Google Kubernetes Engine (GKE) 集群费用的明细,您还必须为 GKE 启用费用分配。
数据集加密:将结算数据导出到 BigQuery 时,系统不支持客户管理的加密密钥 (CMEK)。如果您为结算数据数据集启用了 CMEK 加密,则此类加密会阻止 Cloud Billing 将结算数据写入该数据集中的相应表。相反,您需要启用数据集以使用 Google 拥有和 Google 管理的密钥。
如果您要对包含导出数据的表使用 BigQuery 行级安全性,则必须使用 BigQuery
TRUE
过滤条件向 Cloud Billing 导出服务账号billing-export-bigquery@system.gserviceaccount.com
授予表的完整访问权限。以下命令会向 Cloud Billing 服务账号授予访问权限:CREATE ROW ACCESS POLICY cloud_billing_export_policy ON `__project_id__.__dataset_id__.__table_id__` GRANT TO ('serviceAccount:billing-export-bigquery@system.gserviceaccount.com') FILTER USING (TRUE);
资源级标记最多可能需要一个小时才能传播到 BigQuery 导出结果中。如果标记是在一个小时内添加或移除的,或者资源存在的时间不超过一个小时,则该标记可能不会显示在导出结果中。
资源级标记适用于以下资源:
- Compute Engine 实例
- Spanner 实例
- Cloud Run 服务
- Artifact Registry 制品库
如果您使用 VPC Service Controls,则您的 BigQuery 导出可能会被阻止。如需解决此问题,您需要手动豁免 VPC。