设置将 Cloud Billing 数据导出到 BigQuery 的功能 (original) (raw)

本文档介绍了设置将 Cloud Billing 数据导出到 BigQuery 所需的所有步骤。

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

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

Google Cloud 控制台简介

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

执行此任务所需的权限

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

如需启用和配置 Cloud Billing 价格数据和 CUD 元数据的导出,您需要以下权限:

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

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

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

完成本部分中的五个步骤,以启用将 Cloud Billing 数据导出到 BigQuery 的功能。

如需快速了解如何启用结算数据导出功能以及在 BigQuery 中运行 Cloud Billing 数据的示例查询,请按照此结算数据导出互动教程操作。

如果您是转销商,则可以使用 Partner Sales Console 设置渠道服务结算数据的特定于转销商的导出。为此,请按照本页面上的第 1-4 步创建您的项目和 BigQuery 数据集。然后,在第 5 步中,参阅将渠道服务数据导出到 BigQuery 以启用导出功能。

1. 选择或创建项目

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

我们建议您创建并使用一个单独的 Google Cloud 项目来满足 Cloud Billing 账号的所有 FinOps 和结算管理需求(包括存储导出的 Cloud Billing 数据)。详细了解使用以 FinOps 为核心的项目来满足您的结算管理用例需求的好处

In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

Roles required to select or create a project

Go to project selector

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

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

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

3. 启用 BigQuery Data Transfer Service API

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

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

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

  1. 登录 Google Cloud 控制台,然后前往 API 页面。
    前往 BigQuery Data Transfer Service API 页面
  2. 在页面的左上角,选择一个项目。您必须在您用来包含 BigQuery 数据集的项目中启用 BigQuery Data Transfer Service API。如果您遵循了项目部分中的建议,那么这是您的 FinOps 或结算管理 Google Cloud 项目。
  3. BigQuery Data Transfer Service API 页面上,点击启用以在所选项目中启用 API。

如需详细了解如何启用 API,请参阅 Service Usage 文档

4. 创建 BigQuery 数据集

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

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

如果您使用现有数据集,请查看可能会影响将结算数据导出到 BigQuery 的限制,例如无法将数据导出到配置为使用客户管理的密钥加密的数据集,或无法使用配置了不受支持的单区域位置的数据集。

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

  1. 登录 Google Cloud 控制台,然后前往 BigQuery 页面。
    转到 BigQuery 页面
  2. 在 Google Cloud 控制台页面顶部的项目下拉列表( 我的项目 )中,选择您设置用来包含数据集的项目。请记下项目 ID,以便在后续步骤中使用。
  3. 探索器面板的置顶项目部分,点击 您的项目 ID 以展开项目来查看任何现有数据集和保存的查询。
  4. 项目 ID 旁边,点击查看操作菜单 (),然后点击创建数据集。随即会打开“创建数据集”面板。
    1. 输入数据集 ID。我们建议使用跨项目的 ID(例如 all_billing_data),而不是项目特定的 ID。
    2. 选择数据位置。 数据位置指定了存储数据的多区域或单区域。此数据集内的所有表均共用此位置。
      我们建议选择多区域位置(欧盟或美国)。对于标准使用费用和详细使用费用数据导出,您选择的位置可能会影响上个月的数据是否以追溯方式添加到数据集中。如需详细了解数据集位置和数据可用性,请查看限制
      Cloud Billing 导出支持_所有多区域_位置(欧盟或美国)。但是,只有部分数据集单区域位置支持将 Cloud Billing 数据导出到 BigQuery。如需详细了解数据集位置,请查看限制
      创建数据集后,该位置_无法更改_。详细了解位置。
    3. 确保启用表过期时间选项已清除
      如果您启用表过期时间并输入天数,则在此数据集内创建的任何新表都将在创建指定天数后自动删除。
    4. 高级选项部分中,选择加密设置。默认选项为 Google-owned and Google-managed encryption key
      如果您想要使用客户管理的加密密钥 (CMEK) 加密方法,请选择**客户管理的加密密钥 (CMEK)**,然后选择一个加密密钥。
    5. 点击创建数据集进行保存。

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

如果您是转销商,则在启用特定于转销商的渠道服务结算数据导出时,可以重复使用您刚刚创建的同一项目和数据集。

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

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

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

  1. 在 Google Cloud 控制台中,前往结算数据导出页面。
    进入“账单导出”页面
  2. 在系统提示时,选择要为其导出结算数据的 Cloud Billing 账号。系统随即会打开所选结算账号的结算数据导出页面。
  3. BigQuery 导出标签页上,对于要导出的每种数据,点击修改设置。每种类型的数据都是单独配置的。
  4. 项目列表中,选择您设置用来包含 BigQuery 数据集项目
    您选定的项目将用于在 BigQuery 数据集中存储导出的数据。
    对于标准和详细使用费数据导出,Cloud Billing 数据包括通过同一 Cloud Billing 账号支付费用的所有Google Cloud 项目的用量和费用数据。
    对于价格数据导出,Cloud Billing 数据仅包括特定于与所选数据集项目关联的 Cloud Billing 账号的价格数据。
    对于 _CUD 元数据_导出,其中包含与结算账号关联的任何项目中购买的所有 CUD 的 CUD 元数据。
  5. 数据集 ID 字段中,选择您设置用来包含导出的 Cloud Billing 数据的数据集
    对于导出到 BigQuery 的所有类型的 Cloud Billing 数据,以下内容均适用:
    • 必须要有 BigQuery API 才能将数据导出到 BigQuery。如果您选择的项目未启用 BigQuery API,系统会提示您启用该 API。点击启用 BigQuery API 以启用该 API。
    • 如果您选择的项目不包含任何 BigQuery 数据集,系统会提示您创建一个数据集。如有必要,请按照以下步骤创建新的数据集
    • 如果您使用现有数据集,请查看可能会影响将结算数据导出到 BigQuery 的限制,例如无法将数据导出到配置为使用 CMEK 的数据集,或无法使用配置了不受支持的单区域位置的数据集。
      对于价格数据导出,需要使用 BigQuery Data Transfer Service API 将数据导出到 BigQuery。如果您选择的项目未启用 BigQuery Data Transfer Service API,系统会提示您启用该 API。如有必要,请按照以下步骤启用 API
  6. 点击保存

更新要导出的 Cloud Billing 数据

启用将 Cloud Billing 数据导出到 BigQuery 的功能后,您可以更改各种数据导出设置,例如:

在更新存储结算数据的项目或数据集或者停用任何数据导出之前,请先查看相关限制数据可用性准则,了解这些更新可能会对导出到 BigQuery 的结算数据造成何种影响。

停用某种类型的结算数据导出

如需停止将某种类型的 Cloud Billing 数据导出到 BigQuery,请执行以下操作:

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

启用某种类型的结算数据导出

如需恢复将之前停止导出的 Cloud Billing 数据导出到 BigQuery,请参阅启用将 Cloud Billing 数据导出到 BigQuery 的功能

更改结算数据导出的项目或数据集

如需更新用来存储所导出结算数据的项目或数据集,请执行以下操作:

  1. 针对要更新的导出,选择修改设置
  2. 修改设置页面上,选择其他项目或数据集。
  3. 选择保存以确认更新。

关于数据集权限

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

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

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

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

结算数据表

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

数据加载频率

详细了解数据加载到 BigQuery 表的频率

限制

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

当表架构发生变化时(例如,向 Cloud Billing 数据导出项的 BigQuery 表架构添加了新字段),任何直接引用导出列的查询都可能会失败。为解决此问题,我们建议您创建 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(苏黎世)
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);  

Google Cloud 控制台中提供的费用和价格报告