设置将 Cloud Billing 数据导出到 BigQuery 的功能

本指南介绍了启用将 Cloud Billing 数据导出到 BigQuery 的功能所需的所有设置步骤。

概览

如需将 Cloud Billing 数据导出到 BigQuery,您需要执行以下步骤:

  • 创建一个项目来存储 Cloud Billing 数据,并对项目启用结算功能(如果您尚未这样做)。
  • 配置对项目和 Cloud Billing 帐号的权限。
  • 启用 BigQuery Data Transfer Service API(导出价格数据时需要用到)。
  • 创建一个 BigQuery 数据集来存储数据。
  • 启用将要写入的 Cloud Billing 费用数据和价格数据导出到数据集的功能。

本文档将逐步介绍每个步骤的详细信息。

Cloud Console 简介

Google Cloud Console(访问文档打开控制台)是一个网页界面,用于预配、配置、管理和监控使用 Google Cloud 产品的系统。您可以使用 Cloud Console 设置和管理 Google Cloud 和 Cloud Billing 资源。

执行此任务所需的权限

如需启用和配置将 Google Cloud 结算数据导出到 BigQuery 数据集的功能,您需要以下权限:

此外,如需启用和配置 Cloud Billing 价格数据导出功能,您需要以下权限:

  • 将用于存储 Cloud Billing 数据的 BigQuery 数据集所在的 Cloud 项目的 BigQuery Admin 角色
  • 目标数据集所属的 Cloud 项目的 resourcemanager.projects.update 权限。这包含在 roles/editor 角色中。

您可能还需要项目权限。如果您是 Google Cloud 组织的成员,则需要拥有组织或文件夹的 Project Creator 角色才能创建新项目。具体而言,如需创建新项目,您需要拥有以下权限:

  • resourcemanager.organizations.get
  • resourcemanager.projects.create

如需详细了解 Google Cloud 权限,请参阅:

启用将 Cloud Billing 数据导出到 BigQuery 的功能

完成本部分详细介绍的步骤,以启用将 Cloud Billing 数据导出到 BigQuery 的功能。

1.选择或创建项目

导出到 BigQuery 的 Cloud Billing 数据包含在 BigQuery 数据集中。数据集包含在您指定的 Cloud 项目中。

关于项目的建议:我们建议您创建一个 Cloud 项目,以包含您的所有结算管理需求,包括导出的 Cloud Billing 数据。您还可以将此结算管理 Cloud 项目用于 Cloud Billing API 访问、程序化预算通知的 Pub/Sub 渠道以及其他 Cloud Billing 管理任务。

重要提示:您选择用来包含数据集的 Cloud 项目应关联到您计划导出到 BigQuery 数据集的数据所在的 Cloud Billing 帐号。一个 Cloud 项目一次只能关联到一个 Cloud Billing 帐号。一个 Cloud Billing 帐号可以关联到一个或多个项目

在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

转到“项目选择器”

详细了解如何创建和管理项目

2. 验证是否已启用结算功能

必须确保您选择用来包含数据集的 Cloud 项目已启用结算功能,并且该 Cloud 项目关联到您计划导出到 BigQuery 数据集的数据所在的 Cloud Billing 帐号

3.启用 BigQuery Data Transfer Service API

如果您计划将 Cloud Billing 价格数据导出到 BigQuery,则需要启用 BigQuery Data Transfer Service API。如果您不打算导出 Cloud Billing 价格数据,则可以跳到第 4 步. 创建 BigQuery 数据集

BigQuery Data Transfer Service API 应该在您打算用于包含 BigQuery 数据集的 Cloud 项目中启用。如果您遵循了项目部分中的建议,那么这是您的结算管理 Google Cloud 项目

要启用 BigQuery Data Transfer Service API,请按如下所述操作:

  1. 登录 Google Cloud Console 并转到 API 页面。

    转到 BigQuery Data Transfer Service API 页面

  2. 系统提示您时,请选择一个项目。您必须在您用来包含 BigQuery 数据集的项目中启用 BigQuery Data Transfer Service API。如果您遵循了项目部分中的建议,那么这是您的结算管理 Google Cloud 项目

  3. 在 BigQuery Data Transfer Service API 页面上,点击启用以在所选项目中启用 API。

如需详细了解如何启用 API,请参阅服务使用工具文档

4.创建 BigQuery 数据集

在启用将 Cloud Billing 数据导出至 BigQuery 之前,您必须至少创建一个 BigQuery 数据集以管理导出的数据。您可以使用同一数据集来包含标准使用费数据、详细使用费数据和价格数据。

数据集包含在您指定的 Cloud 项目中。数据集是用来组织和控制视图访问权限的顶级容器。表或视图必须属于数据集,因此需要创建至少一个数据集,才能将数据加载到 BigQuery 中。

如果您要创建新数据集,我们建议您选择一个多区域位置,例如美国 (US)欧盟 (EU)。例如,详细使用费数据仅在多区域美国和欧盟数据集中受支持。

如果您使用现有数据集,请查看可能会影响将结算数据导出到 BigQuery 的限制,例如无法使用启用了客户管理的加密密钥的数据集,或者详细使用费数据需要多区域数据集。

如需创建 BigQuery 数据集,请执行以下操作:

  1. 登录 Google Cloud Console,然后转到 BigQuery 页面。

    转到 BigQuery 页面

  2. 在 Google Cloud Console 页面顶部的项目下拉列表(我的项目 )中,选择您设置用来包含数据集的项目。 请记下项目 ID,以便在下一步中使用。

  3. 在“探索器”面板的“置顶项目”部分,点击 您的项目 ID 以打开项目。如果您在项目 ID 旁边看到溢出菜单 (),请点击菜单并选择打开

  4. 点击 创建数据集。随即会打开“创建数据集”面板。

    1. 输入数据集 ID。 我们建议使用跨项目的 ID(例如 all_billing_data),而不是特定于项目的 ID。
    2. 选择数据位置。 数据位置用于指定存储数据的区域。此数据集内的所有表均共用此位置,

      创建数据集时,我们建议您选择一个多区域位置,例如美国 (US)欧盟 (EU)。这是导出详细使用费数据所必需的。

      创建数据集后,该位置无法更改详细了解位置。

    3. 默认表过期时间设置为永不

      选择永不会保留您的数据。如果输入天数,则在此数据集内创建的任何新表都将在创建后的指定天数自动删除。重要提示:如果您删除了包含导出的 Cloud Billing 数据记录的任何表,这些记录将会消失,并且我们无法回填已删除的记录。

    4. 加密选项设置为 Google 管理的密钥

      请注意,“客户管理的密钥”加密现为不支持将 Cloud Billing 数据记录导出到 BigQuery。

    5. 点击创建数据集进行保存。

请查看可能会影响将结算数据导出到 BigQuery 的限制

5. 启用将 Cloud Billing 数据导出到 BigQuery 数据集的功能

您可以在 Cloud Console 的 Cloud Billing 部分启用 Cloud Billing 数据导出功能。 您可以导出以下类型的数据:

  • 标准使用费数据 - 包含标准 Cloud Billing 帐号使用费信息,例如帐号 ID、帐单日期、服务、SKU、项目、标签、位置、费用、用量、赠金、调整项和货币。如果您不想查看资源级费用数据,请启用此选项。
  • 详细使用费数据 - 包含详细的 Cloud Billing 帐号使用费信息。包括标准使用费数据中的所有内容,外加资源级费用数据,例如产生服务用量的虚拟机或 SSD。如果您想要分析资源级费用数据以及标准使用费数据,请启用此选项。您不需要同时启用标准和详细选项。
  • 价格数据 - 包含 Cloud Billing 帐号价格信息,例如帐号 ID、服务、SKU、产品、地理位置元数据、价格单位、货币、汇总和层级。

要启用将 Cloud Billing 使用费价格数据导出到 BigQuery 的功能,请执行以下操作:

  1. 登录 Google Cloud Console。

    登录 Cloud Console

  2. 打开控制台导航菜单 (),然后选择结算

    如果您有多个 Cloud Billing 帐号,请执行以下操作之一:

    • 如需管理当前 Cloud 项目的 Cloud Billing,请选择转至关联的结算帐号
    • 如需查找其他 Cloud Billing 帐号,请选择管理结算帐号,然后选择要为哪个帐号启用将 Cloud Billing 数据导出到 BigQuery 的功能。
  3. 在“结算”导航菜单中,选择帐单导出

  4. 选择 BigQuery 导出标签页(此标签页默认处于选中状态)。

  5. 点击要导出的数据类型对应的修改设置。每种类型的数据都是单独配置的。

  6. 项目列表中,选择您设置用来包含 BigQuery 数据集项目

    您选定的项目将用于在 BigQuery 数据集内存储导出的 Cloud Billing 数据。

    对于标准和详细使用费数据导出,Cloud Billing 数据包括通过同一 Cloud Billing 帐号支付费用的所有 Cloud 项目的用量/费用数据。

    对于价格数据导出,Cloud Billing 数据仅包括特定于与所选数据集项目关联的 Cloud Billing 帐号的价格数据。

  7. 数据集 ID 字段中,选择您设置用来包含导出的 Cloud Billing 数据的数据集

    对于导出到 BigQuery 的所有类型的 Cloud Billing 数据,以下内容均适用:

    • 必须要有 BigQuery API 才能将数据导出到 BigQuery。如果您选择的项目未启用 BigQuery API,系统会提示您启用该 API。点击启用 BigQuery API 以启用该 API。
    • 如果您选择的项目不包含任何 BigQuery 数据集,则系统会提示您创建一个数据集。如有必要,请按照以下步骤创建新的数据集
    • 如果您使用现有的数据集,请查看可能会影响将计费数据导出到 BigQuery 的限制,例如无法将数据导出到配置为使用客户管理的密钥加密的数据集。

    对于价格数据导出,需要使用 BigQuery Data Transfer Service API 将数据导出到 BigQuery。如果您选择的项目未启用 BigQuery Data Transfer Service API,系统会提示您启用该 API。如有必要,请按照以下步骤启用 API

  8. 点击保存

更新要导出的 Cloud Billing 数据

启用要导出到 BigQuery 的 Cloud Billing 数据后,您可以通过停用或启用不同的类型来更改要导出的数据。

在停用任何数据导出之前,请先查看限制数据可用性准则,了解它们可能会如何影响导出到 BigQuery 的结算数据。

如需停用导出到 BigQuery 的 Cloud Billing 类型,请执行以下操作:

  1. 相应地选择停用标准导出功能停用详细导出功能停用价格导出功能
  2. 选择确认保存您的选择。

如需启用当前被停用的导出到 BigQuery 的 Cloud Billing 类型,请参阅启用要导出到 BigQuery 的 Cloud Billing 数据

关于数据集权限

将 Cloud Billing 数据导出到 BigQuery 的功能使用服务帐号来管理数据集权限。

启用将 Cloud Billing 数据导出到 BigQuery 的功能之后,Google 会自动将服务帐号添加为您指定的数据集的所有者。该服务帐号类似于如下所示:

  • billing-export-bigquery@system.gserviceaccount.com

该服务帐号由 Google 拥有和管理,并提供离线过程创建表以及在表中写入 Cloud Billing 记录所需的权限。

请查看可能会影响将结算数据导出到 BigQuery 的限制

结算数据表

启用将 Cloud Billing 数据导出到 BigQuery 的功能后,系统会立即在 BigQuery 数据集中自动创建结算数据表。如需详细了解这些 BigQuery 表和表架构,请参阅了解 BigQuery 中自动创建的数据表

数据加载频率

  • 在首次启用将标准详细使用费导出到 BigQuery 的功能后,可能需要过几个小时才能看到您的 Google Cloud 费用数据。
  • 首次启用将价格导出到 BigQuery 的功能后,最多可能需要 48 小时才能看到您的 Google Cloud 价格数据。

如需详细了解数据加载到 BigQuery 表的频率,请参阅数据加载频率

限制

将 Cloud Billing 数据导出到 BigQuery 时存在以下限制。

  • 包含标准使用费和价格数据的 BigQuery 数据集仅反映设置 Cloud Billing 导出之日开始产生的 Google Cloud 结算数据。也就是说,Google Cloud 结算数据不会追溯添加,因此您不会看到启用导出之前的 Cloud Billing 数据。 如需了解详情,请参阅数据可用性
  • 包含详细使用费数据的 BigQuery 数据集反映首次启用导出功能的上个月月初开始产生的 Google Cloud 结算数据(除非是重新启用)。也就是说,仅针对当月和上月追溯添加 Google Cloud 结算数据。如需了解详情,请参阅数据可用性
  • 导出详细使用费数据时,您必须导出到配置了多区域位置(例如美国 (US) 或欧盟 (EU))的数据集。如果您选择的数据集不是多区域位置,这会导致 Cloud Billing 无法将详细结算数据写入该数据集中的相应表。
  • 将结算数据导出到 BigQuery 时,系统不支持客户管理的加密密钥 (CMEK)。如果您为“结算数据”数据集启用了 CMEK,这会阻止 Cloud Billing 将结算数据写入该数据集中的相应表。您需要配置数据集以使用 Google 管理的密钥加密。

Google Cloud Console 中提供的费用和价格报告