设置将 FOCUS Cloud Billing 数据导出到 BigQuery

本文档介绍了设置重点使用费 Cloud Billing 数据导出到 BigQuery 所需的所有步骤。FOCUS 使用费用导出是一个不可变的 BigQuery 数据集(关联数据集),其中包含根据 FinOps 开放费用和使用规范 (FOCUS) 标准进行归一化的详细使用费用数据。

如需启用将 FOCUS 使用费用 Cloud Billing 数据导出到 BigQuery 的功能,请执行以下步骤:

  • 创建一个项目来存储导出的 Cloud Billing 数据,并对该项目启用结算功能(如果您尚未这样做)。
  • 配置对项目和 Cloud Billing 账号的权限。
  • 启用 FOCUS 使用费结算数据导出功能。

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

使用 FOCUS Export 时的 BigQuery 使用费用

当您使用 BigQuery 存储和分析结算使用情况和费用数据时,会产生 BigQuery 使用费。BigQuery 中的主要费用是存储费用(用于存储在 BigQuery 中的数据)和计算费用(用于查询处理)。

由于 FOCUS 结算数据导出功能以 Google 管理的不可变导出(使用关联的数据集)的形式提供,因此您无需为 FOCUS 数据支付存储费用。不过,当您查询 FOCUS 数据时,需要支付费用。如需了解详情,请参阅 BigQuery 使用费用

Google Cloud 控制台简介

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

执行此任务所需的权限

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

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

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

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

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

完成本部分中的三个步骤,以启用将 FOCUS 使用费数据导出到 BigQuery 的功能。

1. 选择或创建项目

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

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

在 Google Cloud 控制台的项目选择器页面上,选择或创建 Google Cloud 项目。

选择或创建项目所需的角色

  • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
  • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予角色

转到“项目选择器”

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

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

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

3. 启用将 FOCUS 使用费用导出到 BigQuery 的功能

您可以在Google Cloud 控制台的“结算”部分启用 Cloud Billing 数据导出功能。

FOCUS 使用费用导出功能使用 Google 提供的不可变的 BigQuery 数据集来存储您的详细使用费用数据,这些数据已使用 FinOps 开放费用和使用规范 (FOCUS) 标准进行了归一化处理。FOCUS 是一项开放规范,它为技术结算数据生成器定义了明确的要求,以生成一致的费用和使用情况数据集。FOCUS 导出中的列通常会映射到详细使用费导出中的字段。

如需启用将 Cloud Billing 数据导出到 FOCUS BigQuery 数据集的功能,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往结算数据导出页面。

    进入“账单导出”页面

  2. 在系统提示时,选择要为其导出结算数据的 Cloud Billing 账号。系统随即会打开所选结算账号的结算数据导出页面。

  3. BigQuery 导出标签页上,点击启用 FOCUS 导出以配置 FOCUS 导出。

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

    在 BigQuery 中,您选择的项目将用于在 Google 提供的不可变 FOCUS 数据集中存储导出的数据。

    对于 FOCUS 使用费导出,Cloud Billing 数据包括通过同一 Cloud Billing 账号支付费用的所有Google Cloud 项目的用量和费用数据。

  5. 必须要有 BigQuery API 才能将数据导出到 BigQuery。如果您选择的项目未启用 BigQuery API,系统会提示您启用该 API。根据需要点击启用 BigQuery API,以启用该 API。

  6. 为 FOCUS 数据集选择数据位置。数据位置用于指定存储数据的多区域或单区域。数据集中的所有表均共用此位置。

    1. 选择位置类型,可以是“多区域”(推荐)或“区域”。
    2. 为指定的位置类型选择位置

      我们建议为 FOCUS 使用费用数据导出(以及标准使用费用和详细使用费用数据导出)选择多区域位置(欧盟或美国)。Cloud Billing 导出支持所有多区域位置(欧盟或美国)。不过,只有部分数据集单区域位置支持将 Cloud Billing 数据导出到 BigQuery。

      您选择的位置可能会影响上个月的数据是否以追溯方式添加到数据集中。如需详细了解数据集位置和数据可用性,请查看限制

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

  7. 点击保存

FOCUS 数据集和数据表

启用 FOCUS 使用费用导出功能后不久,BigQuery Export 会根据您的 FOCUS 导出设置,在新数据集中创建一个包含结算数据的数据集和表:

  • 系统会在您启用 FOCUS 导出功能时指定的 Google Cloud 项目中创建一个不可变数据集,该数据集的命名格式如下:

    gcp_billing_immutable_<BILLING_ACCOUNT_ID>_<Location>

    数据集的名称由三个部分组成:

    1. gcp_billing_immutable - FOCUS 导出所用的数据集名称。
    2. Billing_account_ID - 已启用 FOCUS 导出的 Cloud Billing 账号的 ID。
    3. Location - 您在启用 FOCUS 导出功能时选择的具体区域或多区域位置

    数据集名称示例:gcp_billing_immutable_010101_F0FFF0_61C528_us

  • 在 FOCUS 数据集中创建 FOCUS 结算数据表,命名为:

    gcp_billing_export_focus_<BILLING_ACCOUNT_ID>

    表名称示例:gcp_billing_export_focus_010101_F0FFF0_61C528

更新 FOCUS 使用费导出设置

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

  • 更改存储 FOCUS 数据集的项目。
  • 更改 FOCUS 数据集的区域设置。更改区域设置会创建一个新的不可变数据集。
  • 停用 FOCUS 使用费导出功能。

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

停用 FOCUS 使用费导出功能

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

  1. 选择停用 FOCUS 导出
  2. 选择确认保存您的选择。

如果您日后重新启用 FOCUS 使用费导出功能,则需要重新选择相同的项目和位置设置,才能使用首次启用 FOCUS 导出功能时创建的同一不可变数据集。我们不支持回填在 FOCUS 导出功能停用期间未导出的数据。

重新启用 FOCUS 使用费导出功能

如需重新启用之前停用的 FOCUS 导出,请参阅启用将 Cloud Billing 数据导出到 BigQuery 的功能

  • 如需使用首次启用 FOCUS 导出功能时创建的同一不可变数据集,请重新选择您最初使用的相同项目和区域设置。
  • 如果您选择其他项目或区域设置,系统会为您创建一个新的不可变数据集,并将您的 FOCUS 数据导出到该新数据集(从您重新启用 FOCUS 数据导出功能之日起)。

更改 FOCUS 使用费导出的项目或数据集

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

  1. FOCUS 使用的是在您启用 FOCUS 使用费导出功能时为您创建的不可变数据集。您必须先停用 FOCUS 导出功能,然后才能修改 FOCUS 导出设置。
  2. 接下来,选择启用 FOCUS 导出,然后为 FOCUS 导出选择项目和位置设置。
  3. 选择保存以确认 FOCUS 导出设置。

    在启用过程中,如果您选择的项目或区域与之前的配置不同,系统会在所选项目中为您创建一个新的不可变数据集。

关于数据集权限

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

启用将 FOCUS 数据导出到 BigQuery 的功能后,Google 会自动将服务账号添加为 Google 提供的不可变数据集的所有者。服务账号如下所示:

billing-export-bigquery@system.gserviceaccount.com

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

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

FOCUS 使用费数据表

启用 FOCUS 用量费用导出功能后,BigQuery 会立即在不可变的 BigQuery 数据集中创建一个不可变的数据集和一个 FOCUS 数据表。如需详细了解 FOCUS 表架构,请参阅 FOCUS 数据导出结构

数据加载频率

首次启用将 FOCUS 使用费用导出到 BigQuery 的功能后,可能需要几个小时才能开始看到 Google Cloud 费用数据传播到 BigQuery 数据集。数据按时间顺序导出。如果导出配置为以追溯方式包含当月和上月的数据,则导出的数据最多可能需要 5 天才能完全与当前的使用情况数据同步。

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

限制

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

Cloud Billing 数据导出功能的表架构

所有 Cloud Billing 数据导出的表架构都随时可能会发生变化。

当表架构发生变化时(例如,向 Cloud Billing 数据导出项的 BigQuery 表架构添加了新字段),任何直接引用导出列的查询都可能会失败。为解决此问题,我们建议您创建 BigQuery 视图,用于查询导出的表,并以首选结构显示信息。

然后,您可以调整馈入报告和信息中心的查询,从视图(而非导出的表)中提取信息。通过使用视图,您可以标准化查询和信息中心内使用的数据的结构。

您创建的视图应对数据进行归一化,以便所有相关表使用相同的架构为您展示查询。这样可以保护您的数据免受未来架构变化的影响,还可让您在数据架构发生变化时在这些实例中修改视图的底层查询。

FOCUS 导出和数据保留

导出到 Google 提供的 FOCUS BigQuery Export 的结算数据受 2 年的存留时间 (TTL) 政策约束。系统会自动从 BigQuery 数据集中提供的 FOCUS 导出表中删除超过两年的数据。如果您需要将 FOCUS 结算数据历史记录保留两年以上,请将 FOCUS 数据复制到您拥有的长期存储表中。

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(苏黎世)

区域

  • me-central1(多哈)
  • me-central2(达曼)
  • me-west1(特拉维夫)

位置和数据可用性

  • 对于包含 FOCUS 使用费用数据标准使用费用数据详细使用费用数据BigQuery 数据集,您为数据集配置的位置类型会影响 Google Cloud 结算数据导出到数据集的时间:

    • 如果您将数据集配置为使用多区域位置,则数据集会包含您首次启用导出时的上月初开始产生的 Google Cloud 结算数据,除非您重新启用导出。也就是说,系统会以追溯方式添加当月和上月的 Google Cloud 结算数据。对于导出数据的初始回填,追溯性 Cloud Billing 数据最多可能需要 5 天完成导出,然后您才能开始看到当前的使用情况数据。
    • 如果数据集配置为使用受支持的单区域位置,则 FOCUS 使用费用数据标准使用费用数据详细使用费用数据仅反映自启用 Cloud Billing 导出之日起产生的 Google Cloud 结算数据。也就是说,系统不会针对非多区域数据集位置以追溯方式添加 Google Cloud 结算数据,因此您不会看到启用导出之前的 Cloud Billing 数据。

    • 如需了解详情,请参阅数据可用性

  • 包含价格数据BigQuery 数据集仅收集自设置 Cloud Billing 导出之日起产生的 Google Cloud 结算数据。也就是说,Google Cloud 价格数据不会追溯添加,因此您不会看到启用导出功能之前的 Cloud Billing 价格数据。如需了解详情,请参阅数据可用性

停用、重新启用或修改导出设置

如果您停用重新启用修改导出设置来更新用来存储导出结算数据的项目或数据集,则之前导出的结算数据不会回填到新数据集。如需包含在切换到其他项目或数据集之前导出的结算信息,您必须手动将新数据集与之前的数据集联接。如需了解详情,请参阅联接操作

数据集加密

BigQuery 数据集配置为在创建数据集时通过设置加密密钥选项( Google-owned and Google-managed encryption key或客户管理的加密密钥 [CMEK])来使用静态加密。数据集加密选项只能在创建时设置。 创建数据集后,就无法再更改其加密设置。

如果您已启用将 Cloud Billing 数据导出到 BigQuery 的功能,并且您的数据集已配置为使用Google-managed encryption key,则可以使用 bq 命令行工具在数据集中的每个上启用 CMEK。除非您另行配置,否则 BigQuery 会自动使用数据集默认密钥来保护导出表。

了解如何为 BigQuery 表启用 CMEK

行级安全性

如果您要对包含导出数据的表使用 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);

FOCUS 或详细使用费用数据和 GKE

导出 FOCUS 使用费数据或详细使用费数据时,导出的数据会自动包含有关 Compute Engine 和其他服务的资源级信息。不过,对于 Google Kubernetes Engine (GKE) 数据,如需在 FOCUS 或详细数据导出中查看 GKE 集群费用的明细,您还必须为 GKE 启用费用分配

资源级标记

资源级标记最多可能需要一个小时才能传播到 BigQuery 导出结果中。如果标记是在一个小时内添加或移除的,或者资源存在的时间不超过一个小时,则该标记可能不会显示在导出结果中。

资源级标记适用于标准使用费导出详细使用费导出中的多种资源。