了解 BigQuery 中的 Cloud Billing 数据表

本文档介绍了导出到 BigQuery 每个表中的 Cloud Billing 数据架构的参考信息。

结算数据表

启用将 Cloud Billing 数据导出到 BigQuery 的功能后,系统会立即在 BigQuery 数据集中自动创建结算数据表。

  • 标准使用费表 - 在 BigQuery 数据集中,该表命名为 gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
  • 详细使用费表 - 此表包含标准使用费表中的所有数据字段,以及提供资源级费用数据的其他字段,例如产生服务用量的虚拟机或 SSD。在 BigQuery 数据集中,该表命名为 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
  • 价格数据表 - 在 BigQuery 数据集中,该表命名为 cloud_pricing_export

数据加载频率

标准和详细使用费导出

  • 在首次启用将标准或详细使用费用导出到 BigQuery 的功能后,可能需要几个小时才能开始看到 Google Cloud 费用数据传播到 BigQuery 数据集。数据按时间顺序导出。如果导出配置为以追溯方式包含当月和上月的数据,则导出的数据最多可能需要 5 天才能完全与当前的使用情况数据同步。
  • Google Cloud 服务会以不同的时间间隔向 Cloud Billing 进程报告使用情况和费用数据。
  • Cloud Billing 会定期将使用情况和费用数据导出到您的 BigQuery 数据集(对于导出到 BigQuery 的具体时间,不提供任何送达或延迟保证)。
  • 使用情况报告频率因 Google Cloud 服务而异,因此,您不一定能立即看到近期用过的所有 Google Cloud 服务的 Cloud Billing 使用情况和费用数据。

价格导出

  • 首次启用将价格导出到 BigQuery 的功能后,最多可能需要 48 小时才能看到您的 Google Cloud 价格数据。
  • 启用价格导出功能后,适用于 Cloud Billing 账号的价格数据每天导出到 BigQuery 一次。

数据可用性

  • 对于首次启用标准或详细使用费用数据导出的客户:

    • 如果您将 BigQuery 数据集配置为使用多区域位置(欧盟或美国),则系统会从上月初开始以追溯方式导出 Cloud Billing 数据。例如,如果您在 9 月 23 日启用了标准使用费用详细使用费用数据导出,则导出内容将包含从 8 月 1 日开始的数据。

      我们按时间顺序导出数据,一次导出一天,因此系统会先填充上个月第一天的数据。对于导出数据的初始回填,追溯性 Cloud Billing 数据最多可能需要 5 天完成导出,然后您才能开始看到最新的使用情况数据。

    • 如果您将 BigQuery 数据集配置为使用受支持的单区域位置,则标准使用费用或详细使用费用数据从您启用 Cloud Billing 导出之日起开始提供。也就是说,系统不会针对非多区域数据集位置以追溯方式添加 Google Cloud 结算数据,因此您不会看到启用导出之前的 Cloud Billing 数据。

    • 对于启用,停用且随后重新启用标准使用费用或详细使用费用数据导出的客户,系统可能不会提供明确停用导出时段内的 Cloud Billing 数据。

  • 如果您启用价格数据导出功能,则 BigQuery 数据集仅反映首次启用价格导出功能当天及其后产生的 Cloud Billing 数据。Cloud Billing 价格数据不会以追溯方式添加,因此您不会看到启用导出之前产生的价格数据。

  • BigQuery 数据集中的数据反映记录使用情况时的资源状态。如果您对资源进行更改,例如为项目添加新标签或更改项目的层次结构(将更改 project.ancestors),则这些更改仅会在使用情况数据未来导出中显示。之前导出的数据记录不会发生变化。

  • 如果您删除了任何已导出的数据(例如 BigQuery 导出记录),我们无法为您回填已删除的记录。

  • BigQuery 负载符合 ACID,因此,如果您在将数据加载到 BigQuery 的同时查询 BigQuery 中的 Cloud Billing 导出数据集,将不会看到未完成加载的数据。

  • 请查看可能会影响将结算数据导出到 BigQuery 的其他限制,例如启用了客户管理的加密密钥 (CMEK) 的数据集。

限制

将 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。

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