了解 BigQuery 中的 Cloud Billing 数据表

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

结算数据表

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

  • 每日费用详情表 - 在 BigQuery 数据集中,该表命名为 gcp_billing_export_v1_<BILLING_ACCOUNT_ID>
  • 价格表 - 在 BigQuery 数据集中,该表命名为 cloud_pricing_export

数据加载频率

每日费用详情导出

  • 在首次启用将每日费用详情数据导出到 BigQuery 的功能后,可能需要过几个小时才能看到您的 Google Cloud 费用数据。
  • Google Cloud 服务会以不同的时间间隔向 Cloud Billing 进程报告使用情况和费用数据。
  • Cloud Billing 会定期将使用情况和费用数据导出到您的 BigQuery 数据集(对于导出到 BigQuery 的具体时间,不提供任何送达或延迟保证)。
  • 使用情况报告频率因 Google Cloud 服务而异,因此,您不一定能立即看到近期用过的所有 Google Cloud 服务的 Cloud Billing 使用情况和费用数据。

价格导出

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

数据可用性

  • 您的 BigQuery 数据集仅反映首次启用导出功能当天及其后产生的 Cloud Billing 数据。Cloud Billing 数据不会追溯添加,因此您不会看到启用导出之前产生的使用情况的 Cloud Billing 数据。
  • 如果您删除了任何已导出的数据(例如 BigQuery 导出记录),我们无法为您回填已删除的记录。
  • BigQuery 负载符合 ACID,因此,如果您在将数据加载到 BigQuery 的同时查询 BigQuery 中的 Cloud Billing 导出数据集,将不会看到未完成加载的数据。详细了解 BigQuery 的特性
  • 请查看可能会影响将结算数据(例如启用了客户管理的加密密钥 (CMEK) 的数据集)导出到 BigQuery 的其他限制

每日费用详情数据的架构

在 BigQuery 数据集中,您的详细 Google Cloud 每日费用数据会加载到名为 gcp_billing_export_v1_<BILLING_ACCOUNT_ID> 的数据表中。

以下信息介绍导出到 BigQuery 的 Google Cloud 每日费用数据的架构。

字段 类型 说明
billing_account_id 字符串

与使用情况关联的 Cloud Billing 帐号 ID。

对于转销商:对于 Cloud Billing 子帐号产生的使用费,这是子帐号的 ID,而不是 Cloud Billing 转销商父级帐号的 ID。

invoice.month 字符串

包含费用专列项的帐单的年份和月份 (YYYYMM)。例如:“201901”相当于 2019 年 1 月。

您可以使用此字段获取帐单上的总费用。请参阅将 Cloud Billing 数据导出至 BigQuery 查询的示例

cost_type 字符串

此专列项代表的费用类型:常规项、税费、调整项和舍入误差费用。

service.id 字符串 与使用情况关联的服务的 ID。
service.description 字符串 报告 Cloud Billing 数据的 Google Cloud 服务。
sku.id 字符串 服务使用的资源的 ID。如需查看 SKU 的完整列表,请参阅 Google Cloud SKU
sku.description 字符串 服务使用的资源类型的说明。例如,Cloud Storage 的资源类型是“Standard Storage US”。
usage_start_time 时间戳 计算指定费用的每小时使用时间段的开始时间。所有服务的使用情况/费用按小时显示,也就是说,长时间运行的服务的使用情况横跨多个每小时时间段。

如需了解详情,请参阅有关时间戳数据类型的 BigQuery 文档。另请参阅下文的导出的数据和帐单之间的区别

usage_end_time 时间戳 计算指定费用的每小时使用时间段的结束时间。所有服务的使用情况/费用按小时显示,也就是说,长时间运行的服务的使用情况横跨多个每小时时间段。

如需了解详情,请参阅有关时间戳数据类型的 BigQuery 文档。另请参阅下文的导出的数据和帐单之间的区别

project 结构体 project 包含描述 Cloud Billing 项目的字段,例如 ID、编号、名称、祖先编号和标签。
project.id 字符串 生成 Cloud Billing 数据的 Google Cloud 项目的 ID。
project.number 字符串 为生成 Cloud Billing 数据的 Google Cloud 项目内部生成的匿名化的唯一标识符。在您的支持案例和其他客户沟通中,Google 将通过此项目编号引用项目。
project.name 字符串 生成 Cloud Billing 数据的 Google Cloud 项目的名称。
project.ancestry_numbers 字符串 项目(由指定 project.id 标识,例如 my-project-123)的资源层次结构中的祖先。

例如:/ParentOrgNumber/ParentFolderNumber/。详细了解资源层次结构

project.labels.key 字符串 如果存在标签,则为键值对中的键部分,键值对包含发生了使用的 Google Cloud 项目中的标签。如需详细了解如何使用标签,请参阅使用标签
project.labels.value 字符串 如果存在标签,则为键值对中的值部分,键值对包含发生了使用的 Google Cloud 项目中的标签。如需详细了解如何使用标签,请参阅使用标签
labels.key 字符串 如果存在标签,则为键值对中的键部分,键值对包含发生了使用的 Google Cloud 资源中的标签。如需详细了解如何使用标签,请参阅使用标签
labels.value 字符串 如果存在标签,则为键值对中的值部分,键值对包含发生了使用的 Google Cloud 资源中的标签。如需详细了解如何使用标签,请参阅使用标签
system_labels.key 字符串 如果存在系统标签,则为键值对的键部分,包含发生了使用的资源中的系统生成的标签。另请参阅可用的系统标签
system_labels.value 字符串 如果存在系统标签,则为键值对的值部分,包含发生了使用的资源中的系统生成的标签。另请参阅可用的系统标签
location.location 字符串 国家、区域或地区层级的使用情况位置;或者是 global,表示资源没有特定位置。如需了解详情,另请参阅区域和地区
location.country 字符串 location.location 是国家、区域或地区时,此字段是发生了使用的国家,例如 US。如需了解详情,另请参阅区域和地区
location.region 字符串 location.location 是国家或区域时,此字段是发生了使用的区域,例如 us-central1。如需了解详情,另请参阅区域和地区
location.zone 字符串 location.location 是地区时,此字段是发生了使用的地区,例如 us-central1-a。如需了解详情,另请参阅区域和地区
cost 浮点数 不计任何赠金的使用费。如需获得包含赠金的总费用,应将所有 credits.amount 添加到费用中。如需了解详情,请参阅此查询示例
currency 字符串 费用的结算币种。如需了解详情,请参阅结算和付款支持的本地货币
currency_conversion_rate 浮点数 美元兑本地货币的汇率。也就是说,cost ÷ currency_conversion_rate 得出以美元为单位的费用。
usage.amount 浮点数 所用 usage.unit 的数量。
usage.unit 字符串 用于衡量资源使用情况的基本单位。例如,标准存储空间的基本单位是字节/秒。
usage.amount_in_pricing_units 浮点数 所用 usage.pricing_unit 的数量。
usage.pricing_unit 字符串 根据 Cloud Billing Catalog API 衡量资源使用情况的单位。
credits 结构体 credits 包含描述与 Google Cloud 和 Google Maps Platform SKU 关联的赠金的结构和值的字段。
credits.id 字符串 如果存在,则表示赠金与产品 SKU 相关联。credits.id 值要么是字母数字的唯一标识符(例如,12-b34-c56-d78),要么是赠金类型说明(例如,承诺使用折扣:CPU)。

如果 credits.id 字段为空,则产品 SKU 未与赠金相关联。

credits.full_name 字符串 与产品 SKU 关联的赠金名称。这是字母数字 credits.id 的直观易懂的说明。示例包括:免费试用赠金基于支出的承诺使用折扣

credits.full_name 值仅适用于具有字母数字 credits.id 的 SKU。如果 credits.id 的值是赠金类型(如承诺使用折扣:CPU)的说明,则 credits.full_name 字段将为空。

credits.type 字符串 此字段说明 credits.id 的用途或来源。赠金类型包括:
  • COMMITTED_USAGE_DISCOUNT:为 Compute Engine 购买的基于资源的承诺使用合约,以获得大幅度的虚拟机使用费折扣。
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE:为服务购买的基于支出的承诺使用合约,旨在换取您的最低消费额承诺。
  • DISCOUNT:折扣赠金类型用于达到合同支出阈值后获得的赠金。请注意,在 Cloud Console 提供的 Cloud Billing 报告中,折扣赠金类型被列为基于支出的折扣(按合同规定)
  • FREE_TIER:某些服务提供在指定限额内提供免费的资源使用。对于这些服务,赠金用于实现免费层级使用量。
  • PROMOTION:促销赠金类型包括 Google Cloud 免费试用和营销活动赠金,或其他 Google Cloud 用量补贴。在适用情况下,促销赠金会被视为一种付款方式,并会自动应用以减少您的帐单总额。
  • RESELLER_MARGIN:如果您是转销商,转销商利润赠金类型表示每个符合条件的专列项获得的转销商计划折扣。
  • SUBSCRIPTION_BENEFIT:通过购买服务的长期订阅以换取折扣而获得的赠金。
  • SUSTAINED_USAGE_DISCOUNT:持续使用折扣赠金类型是因在结算月份的大部分时间内运行特定 Compute Engine 资源而获得的自动折扣。
credits.name 字符串 对 Cloud Billing 帐号应用的赠金的说明。
credits.amount 浮点数 对使用情况应用的赠金的金额。赠金金额始终为负数。
adjustment_info 结构体 adjustment_info 包含一些字段,用于说明与 Cloud Billing 帐号关联的费用专列项的调整项的结构和值。

仅当为 Cloud Billing 修改生成了费用专列项时,才会显示 adjustment_info 值。更正或非更正原因均可能导致修改。adjustment_info 类型包含调整项的详细信息,无论调整项是出于更正错误还是其他原因发出。

adjustment_info.id 字符串 如果存在,则表示费用专列项有一个关联的调整项。adjustment_info.id 是某个问题导致的所有关联调整项的唯一 ID。
adjustment_info.description 字符串 调整项及其原因的说明。
adjustment_info.type 字符串

调整项的类型。

类型包括:

  • USAGE_CORRECTION:错误报告的使用量导致的更正。
  • PRICE_CORRECTION:错误的定价规则导致的更正。
  • METADATA_CORRECTION:为修复元数据进行的更正,不更改费用。
  • GOODWILL:出于善意向客户发放的赠金。
  • SALES_BASED_GOODWILL:作为合同的一部分,出于善意向客户发放的赠金。
  • SLA_VIOLATION:由于服务等级目标 (SLO) 违规而向客户发放的赠金。
  • BALANCE_TRANSFER:将资金从一个付款帐号转移到另一个付款账号的调整项。
  • ACCOUNT_CLOSURE:将已关闭帐号的余额变为零的调整项。
  • GENERAL_ADJUSTMENT:常规的结算帐号修改。
adjustment_info.mode 字符串

发出调整项的方式。

模式包括:

  • PARTIAL_CORRECTION:更正部分取消原始使用量和费用。
  • COMPLETE_NEGATION_WITH_REMONETIZATION:更正完全取消原始使用量和费用,并使用更新后的使用量和费用发出更正后的专列项。
  • COMPLETE_NEGATION:更正完全取消原始使用量和费用,并且不再重新计算使用量的费用。
  • MANUAL_ADJUSTMENT:手动将调整项分配给费用和使用量。
export_time 时间戳 与附加的 Cloud Billing 数据关联的处理时间。每次导出新数据时,该值都会增加。
另请参阅下文的导出的数据和帐单之间的区别

标签简介

您会在 BigQuery 数据集中看到标签的相关列,但对于当前版本,部分标签值将为空。系统将在不同的时间为不同的服务填充标签导出数据,具体取决于每项服务提供数据的时间。

可用的系统标签

系统标签是关于发生了使用的资源的重要元数据的键值对。以下系统标签会自动包含在适用的使用情况中。

system_labels.key system_labels.value 示例 说明
compute.googleapis.com/machine_spec n1-standard-1、custom-2-2048 虚拟机的配置。如需了解详情,请参阅机器类型
compute.googleapis.com/cores 如果是 n1-standard-4,则为 4;如果是 custom-2-2048,则为 2 可供虚拟机使用的 vCPU 数。
compute.googleapis.com/memory 如果是 n1-standard-4,则为 15360(即 15 GB * 1024 MB/GB);如果是 custom-2-2048,则为 2048 可供虚拟机使用的内存量(以 MB 为单位)。

导出的数据和帐单之间的区别

Google Cloud 服务以不同的时间间隔向 Cloud Billing 进程报告使用情况和费用数据,因此使用量报告有时会略有延迟(可能长达几天)。在某个日历月月末,延迟报告的使用量可能不包含在当月的帐单中,而是延至下月的帐单。不过,这一使用量会包括将相应使用量报告给 Cloud Billing 进程的实际使用日期和时间的时间戳。

当您使用时间戳字段查询费用时,返回的数据可能会提取最初未显示在当月生成的帐单上且应在以后报告的使用情况。因此,返回的 Cloud Billing 数据可能不会直接反映到该帐单上。

时间戳字段包括:

  • usage_start_time
  • usage_end_time
  • export_time

如需返回直接反映到帐单的 Cloud Billing 数据,请对 invoice.month 而不是时间戳字段运行查询。

税费

2020 年 9 月 1 日开始,您的每日费用明细数据会显示每个项目(而非单个专列项)的纳税金额。如果您的查询或可视化内容依赖于税务数据,您可能需要更新这些查询以体现这些变化。

例如,对于 9 月 1 日之前记录的费用,您的费用明细数据类似于以下示例,其中展示了 $10 的总纳税金额。

billing_account_id project.id cost_type cost
123456-ABCDEF-123456 示例项目 常规 $60
123456-ABCDEF-123456 测试项目 常规 $40
123456-ABCDEF-123456 [空] 税费 $10

对于 9 月 1 日之后记录的费用,$10 将细分为 $6 用于 example-project,$4 用于 test-project

billing_account_id project.id cost_type cost
123456-ABCDEF-123456 示例项目 常规 $60
123456-ABCDEF-123456 测试项目 常规 $40
123456-ABCDEF-123456 示例项目 税费 $6
123456-ABCDEF-123456 测试项目 税费 $4

错误和调整

请注意,万一您的 Cloud Billing 数据中包含错误或需要进行调整,系统会在其中附加 Cloud Billing 数据以排除类似错误。除以下列之外,所有其他列都将保持不变:

  • cost
  • credit
  • usage.amount
  • export_time

如需确定哪些数据是新数据,只需查询 export_time 即可。

每日费用详情数据的查询示例

每日费用详情查询示例


价格数据的架构

在 BigQuery 数据集中,您的 Cloud Billing 帐号价格数据会加载到名为 cloud_pricing_export 的数据表中。

以下信息介绍导出到 BigQuery 的 Cloud Billing 帐号价格数据的架构。

字段 类型 说明
export_time 时间戳 与附加的 Cloud Billing 数据关联的处理时间。每次导出新数据时,该值都会增加。
pricing_as_of_time 时间戳 系统每天生成一次适用于您的 Cloud Billing 帐号的价格数据,以准备导出到 BigQuery。这是生成价格数据时的每日时间戳。
billing_account_id 字符串

与价格关联的 Cloud Billing 帐号 ID。

对于转销商:对于与 Cloud Billing 子帐号相关联的价格,这是子帐号的 ID,而不是 Cloud Billing 转销商父级帐号的 ID。

billing_account_name 字符串

与价格关联的 Cloud Billing 帐号的名称。

business_entity_name 字符串 提供 SKU 的服务的 Google 服务系列名称。值包括 GCP (Google Cloud) 或 Maps (Google Maps Platform)。
service.id 字符串 报告 Cloud Billing 数据的 Google Cloud 服务或 Google Maps Platform API 的 ID。例如,6F81-5844-456A。
service.description 字符串 报告了 Cloud Billing 数据的 Google Cloud 服务或 Google Maps Platform API 的说明。例如,Compute Engine。
sku.id 字符串 服务使用的资源 SKU 的唯一标识符。例如,2E27-4F75-95CD。如需查看 SKU 的完整列表,请参阅 Google Cloud SKU
sku.description 字符串 服务使用的资源 SKU 的直观易懂的说明。例如,在美洲运行的 N1 预定义实例核心。
sku.destination_migration_mappings 字符串数组 将向其中迁移此 SKU 的目标 SKU 名称。
product_taxonomy 字符串数组 适用于 SKU 的产品类别列表,例如无服务器、Cloud Run、TaskQueue、按需虚拟机数、核心数:每个核心等。
geo_taxonomy 结构体 适用于 SKU 的地理元数据,例如地区和多地区(如us-east4 欧盟)。
geo_taxonomy.type 字符串 与 SKU 关联的地理元数据的类型。有效值包括:
  • Global –无地区
  • REGIONAL - 包含 1 个地区
  • MULTI_REGION - 包含 2 个或更多地区
geo_taxonomy.regions 字符串数组 与 SKU 关联的 Google Cloud 地区。例如 Europe-west2US

单地区位置是具体的地理位置,如伦敦。 多地区位置是至少包含两个地理位置的大型地理位置,如美国。

pricing_unit 字符串 定价所依据的使用量单位的简称(例如“GiBy.mo”)。
pricing_unit_description 字符串 直观易懂的使用量单位说明(例如“吉比字节月”)。
account_currency_code 字符串 Cloud Billing 帐号采用的货币,使用 ISO 4217 中定义的由三个字母组成的货币代码。如需了解详情,请参阅用于结算和自动付款的本地货币
currency_conversion_rate 字符串 美元兑 Cloud Billing 帐号采用的本地货币的汇率。如果 Cloud Billing 帐号的货币是美元,则汇率默认为 1.0。

如果您的 Cloud Billing 费用以非美元货币结算,您可以使用下列公式将使用费转换为美元:cost ÷ currency_conversion_rate = 以美元结算的使用费。

请注意,按本地货币收费时,Google 会根据主要金融机构发布的汇率将所列价格转换为相应的本地货币。包括针对以非美元货币结算而收取的任何附加费。我们将使用对 pricing_as_of_time 有效的汇率。

list_price 结构体

Google Cloud 或 Google Maps Platform SKU 和 SKU 的价格层级的定价从 pricing_as_of_time 起开始生效。

list_price 包含说明定价结构和值的字段,其中包括:

如需了解定价,请访问 list_price.tiered_rates.usd_amount

将为所有客户生成和导出定价数据。如果您的 Cloud Billing 帐号具有自定义的合同价格,则还会导出结算帐号特定的价格。

billing_account_price 结构体

如果您有合同价格,则这是与您的 Cloud Billing 帐号关联的合同中商定的 SKU 价格。

billing_account_price 包含一些字段,说明 Google Cloud、Google Maps Platform SKU 和 SKU 的价格层级中商定价格的结构和值。billing_account_price 包括:

您的合同价格(适用于您的 Cloud Billing 帐号)可在billing_account_price.tiered_rates.usd_amount

price_info 结构体 合同价格的背景信息。
price_info.price_reason 字符串

合同价格来源的背景信息。

原因包括:

  • FIXED_DISCOUNT:定价的折扣百分比,以应用折扣当日的定价为基础。
  • FLOATING_DISCOUNT:当前定价的折扣百分比(不以具体日期的定价为基础)。
  • MIGRATED_PRICE:适用于从其他 SKU 迁移过来的价格。
  • MERGED_PRICE:从多个来源合并后的 SKU 价格。例如,对于合并的层级,每个单独的层级都可以来自具有不同折扣类型的不同来源。
price_info.discount_percent 数字 对于应用了百分比折扣(FIXED_DISCOUNTFLOATING_DISCOUNT)的合同价格,这是使用的百分比折扣。
price_info.discount_percent_fixed_date 日期 对于限定于特定日期 (FIXED_DISCOUNT) 并应用了百分比折扣的合同价格,这是使用的日期。
price_info.discount_migrated_from 字符串 对于从其他 SKU (MIGRATED_PRICE) 迁移的合同价格折扣,这是折扣的来源 SKU。有时,将一个 SKU 拆分成两个时,折扣会从旧的 SKU 迁移到新的 SKU。
aggregation_info 结构体 表示单个 SKU 的价格层级的汇总层级和间隔。
aggregation_info.aggregation_level 字符串 是指在哪个级别汇总使用量以计算价格层级的费用。

级别包括:

  • ACCOUNT:表示采用多层级价格的 SKU;价格层级的 SKU 使用量会在单个 Cloud Billing 帐号的所有项目中进行汇总。
  • PROJECT:表示采用多层级价格的 SKU;每个项目的价格层级的 SKU 使用量会进行汇总。
  • UNKNOWN_AGGREGATION_LEVEL:表示采用单层级价格的 SKU;这是采用未分层价格的 SKU 的默认值。
aggregation_info.aggregation_interval 字符串 是指汇总使用量以计算价格层级费用的时间间隔。

间隔包括:

  • ONE_DAY:表示采用多层级价格的 SKU;价格层级的 SKU 使用量每天进行汇总。
  • ONE_MONTH:表示采用多层级价格的 SKU;价格层级的 SKU 使用量每月进行汇总。
  • UNKNOWN_AGGREGATION_INTERVAL:表示采用单层级价格的 SKU;这是采用未分层价格的 SKU 的默认值。
tiered_rates 字符串数组 定价层级的相关信息,包括以美元为单位的 SKU 价格以及以 Cloud Billing 帐号配置使用的货币为单位的 SKU 价格。

某些 SKU 只有一个价格层级。如果一个 SKU 有多个价格层级,则每个价格层级都会以单独的行显示。您可以使用 tiered_rates.start_usage_amount 识别具有多个价格层级的 SKU。

tiered_rates.pricing_unit_quantity 浮点数 SKU 的价格层级单位数量。例如,如果层级价格是每 1000000 个字节 $1,则此列将显示 1000000。
tiered_rates.start_usage_amount 浮点数 指定价格层级的数量下限,以价格单位度量。例如,具有 3 个价格层级(如 0-100 个单位、101-1000 个单位和 1001 个以上单位)的 SKU 会显示 3 行价格,其中 0、101 和 1001 分别为 [tiered_rates].start_usage_amount 这三个值。
tiered_rates.usd_amount 数字 SKU 的价格(以美元为单位)。
tiered_rates.account_currency_amount 数字 使用 currency_conversion_rate,将 SKU 的层级价格从美元换算为 Cloud Billing 帐号配置使用的货币

此换算后的价格通过以下公式计算得出:tiered_rates.usd_amount * currency_conversion_rate = tiered_rates.account_currency_amount

按本地货币收费时,Google 会根据主要金融机构发布的汇率将所列价格转换为相应的本地货币。包括针对以非美元货币结算而收取的任何附加费。我们将使用对 pricing_as_of_time 有效的汇率。

价格层级简介

SKU 价格按价格层级提供。价格层级根据不同层级级别提供价格结构。某些 SKU 只有一个价格层级,而其他 SKU 有多个价格层级。采用多层级价格的 SKU 示例包括:

  • 具有免费用量层级的 SKU。例如:1-1000 个单位免费。1001 个以上单位按每个单位 $1 计费。
  • 在 SKU 中,如果使用量超出一个层级的单位数,则单位价格会降低。例如:1-100 个单位,每个单位价格为 $5;101-1000 个单位,每个单位价格为 $4;1001 个单位以上,每个单位价格为 $3。

有关多层级价格的一些说明:

  • 根据每日或每月 SKU 的 aggregation_interval,层级用量计数器将重置为零。

    • 每日 SKU 会在每天凌晨 12 点重置(美国和加拿大太平洋时间 (UTC-8))。
    • 每月 SKU 会在每个日历月(例如:一月、二月等)的第一天凌晨 12 点重置为零(美国和加拿大太平洋时间 (UTC-8))。
  • 层级针对每个 Cloud Billing 帐号独立运作,并且不会汇总多个 Cloud Billing 帐号,即使项目属于同一个组织或属于同一个法律实体也是如此。

  • 层级针对每个 SKU 独立运作:一个 SKU 的使用量只会影响该 SKU 的价格。目前,没有任何 SKU 会影响其他 SKU 的分层价格。

  • 请注意,定价的 SKU 价格层级与合同价格的价格层级可能不完全一致。这种情况非常少见。

  • 如果一个 SKU 有多个价格层级,则每个 SKU 层级价格会在价格表中以单独的行列出。您可以使用 tiered_rates.start_usage_amount 识别具有多个价格层级的 SKU。

  • 您可以根据编写查询的方式将 SKU 价格层级以嵌套数据或非嵌套数据的形式返回。如需详细了解嵌套数据和非嵌套数据,请参阅以下示例

价格查询示例:返回具有多个价格层级的 SKU 的定价

您可以按表名称查询 BigQuery 数据。查询的 FROM 子句中使用的表名称通过以下三个值来确定:project.dataset.BQ_table_name

这些示例中使用的常用值

  • 表名称project.dataset.cloud_pricing_export
  • SKU ID2DA5-55D3-E679(Cloud Run - 请求)

示例 1:返回嵌套数据

此示例查询单个 SKU 以返回 list_price 数据。此 SKU 有多个价格层级。定价字段值以嵌套在 SKU ID 这行下方的个别行显示。

标准 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       list_price.*
FROM my-billing-admin-project.my_billing_dataset.cloud_pricing_export
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

查询结果:

sku_id sku_description service_id service_description aggregation_info.
aggregation_level
aggregation_info.
aggregation_interval
tiered_rates.
pricing_unit_quantity
tiered_rates.
start_usage_amount
tiered_rates.
usd_amount
tiered_rates.
account_currency_amount
1 2DA5-55D3-E679 请求 152E-C115-5142 Cloud Run ACCOUNT MONTHLY 1000000 0 0 0
            1000000 2000000 0.4 0.4

示例 2:返回与同一表联接的未嵌套数据

此示例查询单个 SKU 以返回 list price。SKU 有多个价格层级。该查询演示了如何使用 UNNEST 运算符来展平 tiered_rates 数组,并将各个字段与相同表联接,以便每个价格层级各占一行。

标准 SQL

SELECT sku.id AS sku_id,
       sku.description AS sku_description,
       service.id AS service_id,
       service.description as service_description,
       tier.*
FROM `my-billing-admin-project.my_billing_dataset.cloud_pricing_export`, UNNEST (sku_pricing.list_price.tiered_rates) as tier
WHERE DATE(_PARTITIONTIME) = "2020-07-20"
      AND sku.id = "2DA5-55D3-E679"
;

查询结果:

sku_id sku_description service_id service_description pricing_unit_quantity start_usage_amount usd_amount account_currency_amount
1 2DA5-55D3-E679 请求 152E-C115-5142 Cloud Run 1000000.0 0.0 0.0 0.0
2 2DA5-55D3-E679 请求 152E-C115-5142 Cloud Run 1000000.0 2000000.0 0.4 0.4

价格数据的所有查询示例

价格数据查询示例

限制

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

  • 您的 BigQuery 数据集仅反映自设置 Cloud Billing 导出之日起产生的 Google Cloud 结算数据。也就是说,Google Cloud 结算数据不会追溯添加,因此您不会看到启用导出之前的 Cloud Billing 数据。
  • 将结算数据导出到 BigQuery 时,系统不支持客户管理的加密密钥 (CMEK)。如果您为数据集启用了 CMEK,这会阻止 Cloud Billing 将结算数据写入该数据集中的相应表。

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