本文档介绍了导出到 BigQuery 每个表中的 Cloud Billing 价格数据架构的参考信息。
价格数据的架构
在 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。 |
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 关联的地理元数据的类型。有效值包括:
|
geo_taxonomy.regions |
字符串数组 | 与 SKU 关联的 Google Cloud 地区。例如 Europe-west2 或 US 。单地区位置是具体的地理位置,如伦敦。 多地区位置是至少包含两个地理位置的大型地理位置,如美国。 |
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 费用以非美元货币结算,您可以使用下列公式将使用费转换为美元: 按本地货币收费时,Google 会根据主要金融机构发布的汇率将所列价格转换为相应的本地货币。包括针对以非美元货币结算而收取的任何附加费。我们将使用对 |
list_price |
结构体 | Google Cloud 或 Google Maps Platform SKU 和 SKU 的价格层级的定价从
如需了解定价,请访问 将为所有客户生成和导出定价数据。如果您的 Cloud Billing 账号具有自定义的合同价格,则还会导出结算账号特定的价格。 |
billing_account_price |
结构体 | 如果您有合同价格,则这是与您的 Cloud Billing 账号关联的合同中的自定义 SKU 价格。
您的合同价格(适用于您的 Cloud Billing 账号)可在 |
price_info |
结构体 | 合同价格的背景信息。 |
price_info.price_reason |
字符串 | 合同价格来源的背景信息。 原因包括:
|
price_info.discount_percent |
数字 | 对于应用了百分比折扣(FIXED_DISCOUNT 或 FLOATING_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 |
字符串 | 是指在哪个级别汇总使用量以计算价格层级的费用。
级别包括:
|
aggregation_info.aggregation_interval |
字符串 | 是指汇总使用量以计算价格层级费用的时间间隔。
间隔包括:
|
tiered_rates |
字符串数组 | 定价层级的相关信息,包括以美元为单位的 SKU 价格以及以 Cloud Billing 账号配置使用的货币为单位的 SKU 价格。 某些 SKU 只有一个价格层级。如果一个 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 账号配置使用的货币。此换算后的价格通过以下公式计算得出: 按本地货币收费时,Google 会根据主要金融机构发布的汇率将所列价格转换为相应的本地货币。包括针对以非美元货币结算而收取的任何附加费。我们将使用对 |
价格层级简介
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 或 UTC-7)。
- 每月 SKU 会在每个日历月(例如:一月、二月等)的第一天凌晨 12 点重置为零(美国和加拿大太平洋时间 [UTC-8 或 UTC-7])。
层级针对每个 Cloud Billing 账号独立运作,并且不会汇总多个 Cloud Billing 账号,即使项目属于同一个组织或属于同一个法律实体也是如此。
层级针对每个 SKU 独立运作:一个 SKU 的使用量只会影响该 SKU 的价格。没有任何 SKU 会影响其他 SKU 的分层价格。
定价的 SKU 价格层级与合同价格的价格层级可能不完全一致。这种情况非常少见。
如果一个 SKU 有多个价格层级,则每个 SKU 层级价格会在价格表中以单独的行列出。您可以使用
tiered_rates.start_usage_amount
识别具有多个价格层级的 SKU。您可以根据编写查询的方式将 SKU 价格层级以嵌套数据或非嵌套数据的形式返回。如需详细了解嵌套数据和非嵌套数据,请参阅以下示例。
价格数据查询示例
本部分提供了演示如何查询导出到 BigQuery 的 Cloud Billing 价格数据的示例。
本部分提供了不同的示例,演示如何查询导出到 BigQuery 的 Cloud Billing 价格数据。
价格查询示例中使用的常用值
本部分中的查询示例使用以下值:
- 表名称:
project.dataset.cloud_pricing_export
- SKU ID:
2DA5-55D3-E679
(Cloud Run - 请求)
获取特定 SKU 的定价
此示例演示了一个查询,该查询针对指定 SKU 的每个价格层级返回 list_price
。
标准 SQL
SELECT sku.id, sku.description, list_price.* FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
_PARTITIONTIME
是 BigQuery 自动生成的字段,表示数据所属的日期。您可以使用 Cloud Billing 导出作业明确生成的字段(例如 pricing_as_of_time
),而不是使用 _PARTITIONTIME
。
以下是配置为使用 pricing_as_of_time
字段的同一查询:
SELECT sku.id, sku.description, list_price.* FROM `project.dataset.cloud_pricing_export` WHERE DATE(pricing_as_of_time) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
查询结果
行 | id | 说明 | pricing_unit | 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 | 请求 | COUNT | 账号 | 每月 | 1000000 | 0 | 0 | 0 |
1000000 | 2000000 | 0.4 | 0.4 |
获取特定 SKU 的定价,并包含服务说明
本部分中的两个示例演示了针对指定 SKU 的每个价格层级返回 list_price
的查询,并且包含 SKU 说明和服务说明。
- 示例 1 针对每行返回一个 SKU,其价格层级显示为嵌套数据。
- 示例 2 演示了如何将数据解除嵌套,以针对每个价格层级为每个 SKU 返回一行。
示例 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 | 账号 | 每月 | 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` as sku_pricing, 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 |
使用商品类目和地理类目查询 SKU
获取 SKU 的商品类目
此示例演示了一个针对指定 SKU 返回 product_taxonomy
列表的查询,其中 SKU ID = 2DA5-55D3-E679
(Cloud Run - 请求)。
标准 SQL
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND sku.id = "2DA5-55D3-E679" ;
查询结果:
行 | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 2DA5-55D3-E679 | 请求 | 152E-C115-5142 | Cloud Run | GCP |
无服务器 | |||||
Cloud Run | |||||
其他 |
获取特定商品类目的所有 SKU
此示例演示了一个查询,该查询返回与指定的 product_taxonomy
匹配的所有 SKU。在此查询中,我们将无服务器指定为 product taxonomy
值。
标准 SQL
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND "Serverless" in UNNEST(product_taxonomy) LIMIT 10 ;
查询结果:
行 | sku_id | sku_description | service_id | service_description | product_taxonomy |
---|---|---|---|---|---|
1 | 0160-BD7B-4C40 | Cloud Tasks 网络内部地区出站流量 | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
无服务器 | |||||
Cloud Tasks | |||||
其他 | |||||
2 | FE08-0A74-7AFD | Cloud Tasks GOOGLE-API 出站流量 | F3A6-D7B7-9BDA | Cloud Tasks | GCP |
无服务器 | |||||
Cloud Tasks | |||||
其他 | |||||
3 | A81A-32A2-B46D | 任务队列存储空间盐湖城 | F17B-412E-CB64 | App Engine | GCP |
无服务器 | |||||
GAE | |||||
其他 | |||||
TaskQueue |
获取特定地理类目和商品类目的所有 SKU
此示例演示了一个查询,该查询返回与指定的 geo_taxonomy
地区和指定的 product_taxonomy
匹配的所有 SKU。其中 region
= us-east4 而 product_taxonomy
= 按需虚拟机数。
标准 SQL
SELECT sku.id AS sku_id, sku.description AS sku_description, service.id AS service_id, service.description as service_description, geo_taxonomy, product_taxonomy FROM `project.dataset.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) = "2020-07-20" AND "VMs On Demand" in UNNEST(product_taxonomy) AND geo_taxonomy.type = "REGIONAL" AND "us-east4" in UNNEST (geo_taxonomy.regions) ;
查询结果:
行 | sku_id | sku_description | service_id | service_description | geo_taxonomy.type | geo_taxonomy.regions | product_taxonomy |
---|---|---|---|---|---|---|---|
1 | 9174-81EE-425B | 在弗吉尼亚运行的单租户实例 RAM 的单租户附加费 | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
计算 | |||||||
GCE | |||||||
按需虚拟机数 | |||||||
内存:每 GB | |||||||
2 | C3B9-E891-85ED | 在弗吉尼亚州运行的单租户实例 RAM | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
计算 | |||||||
GCE | |||||||
按需虚拟机数 | |||||||
内存:每 GB | |||||||
3 | 6E2A-DCD9-87ED | 在弗吉尼亚运行的 N1 预定义实例 RAM | 6F81-5844-456A | Compute Engine | REGIONAL | us-east4 | GCP |
计算 | |||||||
GCE | |||||||
按需虚拟机数 | |||||||
内存:每 GB |
返回具有多个价格层级的 SKU 的定价
您可以按表名称查询 BigQuery 数据。查询的 FROM
子句中使用的表名称通过以下三个值来确定:project.dataset.BQ_table_name
。
这些示例中使用的常用值:
- 表名称:
project.dataset.cloud_pricing_export
- SKU ID:
2DA5-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 | 账号 | 每月 | 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` as sku_pricing, 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 数据相关的主题
- 设置将 Cloud Billing 数据导出到 BigQuery 的功能
- 将 Cloud Billing 数据导出到 BigQuery 的查询示例
- 通过 Looker Studio 直观呈现一段时间内的支出
Google Cloud 控制台中提供的费用和价格报告
- 查看您的 Cloud Billing 报告和费用趋势
- 查看并下载账单或对账单的费用详细信息
- 查看和下载 Google 云服务的价格信息
- 通过费用明细报告了解您节省的费用
- 分析您的承诺使用折扣的有效性
- 查看您的费用和付款记录