本文档介绍了导出到 BigQuery 每个表中的 Cloud Billing 详细使用费数据架构的参考信息。
详细使用费数据提供了标准使用费数据中包含的所有信息,以及提供精细的资源级费用数据的其他字段,例如产生资源用量的虚拟机或 SSD。详细的导出操作包括以下服务的精细费用信息:
|
|
|
按服务确定精细的费用数据
如需分析详细导出中的精细费用信息,请使用下表来识别包含特定资源相关信息的列。
服务说明 | 列 | 如何识别资源 |
---|---|---|
AlloyDB for PostgreSQL | service.description 和 resource.name 或 resource.global_name |
|
App Engine | service.description 和 resource.name 或
resource.global_name |
|
BigQuery | service.description 和 resource.name 或
resource.global_name
|
|
Bigtable | service.description 和 resource.global_name |
|
Cloud Data Fusion | service.description 和 resource.name 或 resource.global_name |
|
Cloud Deploy | service.description 和 resource.name 或 resource.global_name |
|
Cloud Run 函数 | service.description 和 resource.name 或
resource.global_name |
|
Cloud Logging | service.description 和 resource.global_name |
|
Cloud Run | service.description 和 resource.name 或
resource.global_name |
|
Cloud SQL | service.description 和 resource.global_name |
|
Cloud Storage | service.description 和 resource.global_name |
|
Compute Engine | service.description 和 resource.name 或
resource.global_name |
|
Dataflow | service.description 和 resource.name 或
resource.global_name
|
|
Dataproc Metastore | service.description 和 resource.name 或 resource.global_name |
|
Firestore 和 Datastore | service.description 和 resource.name 或
resource.global_name |
|
Google Kubernetes Engine (GKE) | labels.key |
使用以下标签键来过滤资源:
如需查看详细费用数据导出中的精细 GKE 集群费用,您还必须为 GKE 启用费用分配。 |
托管式 Microsoft AD | service.description 和 resource.name 或 resource.global_name |
|
Memorystore for Redis | service.description 和 resource.global_name |
|
Secret Manager | service.description 、resource.name 和 resource.global_name |
|
Spanner | service.description 和 resource.global_name |
|
请参阅查询资源的精细数据示例。
详细使用费数据架构
在 BigQuery 数据集中,详细 Google Cloud 使用费数据会加载到名为 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
的数据表中。
在 BigQuery 中使用详细使用费数据时,请注意以下事项:
- 为详细使用费用数据选择或创建 BigQuery 数据集时,您可以选择任何支持与 Cloud Billing 数据搭配使用的数据集位置。
- 当您在 Cloud Billing 中首次启用详细使用费用数据导出时,如果您选择配置为使用多区域位置(欧盟或美国)的数据集,则 Cloud Billing 数据将从上月初开始以追溯方式提供。数据按时间顺序导出。对于导出数据的初始回填,追溯性 Cloud Billing 数据最多可能需要 5 天完成导出,然后您才能开始看到最新的使用情况数据。
- 如果您启用详细使用费用数据导出并选择配置为使用受支持的区域位置的数据集,则 Cloud Billing 数据将从您启用导出之日起开始提供。
- 如果您启用、停用且随后重新启用详细使用费数据导出,可能不提供明确停用数据导出的时间段内的 Cloud Billing 数据。
- 详细了解数据加载到 BigQuery 表的频率。
- 请查看可能会影响将结算数据导出到 BigQuery 的其他限制,例如启用了客户管理的加密密钥 (CMEK) 的数据集。
- 启用详细使用费数据(而非标准使用费数据)时,请考虑 BigQuery 表可能需要的额外数据量以及额外费用。增加资源级信息的粒度会增加行数,系统会以标准使用费格式进行汇总。我们建议您查看在 BigQuery 中控制费用,以进一步了解管理 BigQuery 费用的最佳实践。
字段 | 类型 | 说明 |
---|---|---|
billing_account_id |
字符串 | 与使用量相关的 Cloud Billing 账号 ID。 对于转销商:对于 Cloud Billing 子账号产生的使用费,这是子账号的 ID,而不是 Cloud Billing 转销商父级账号的 ID。 |
invoice.month |
字符串 | 包含费用专列项的账单的年份和月份 (YYYYMM)。例如:“201901”相当于 2019 年 1 月。 您可以使用此字段获取账单上的总费用。请参阅将 Cloud Billing 数据导出至 BigQuery 查询的示例。 |
invoice.publisher_type |
字符串 | 表示与交易关联的发布商。此字段支持在直接与 Google(第一方)进行的交易与与合作伙伴(第三方)进行的交易之间拆分账单,同时还会指明可能适用于交易的监管规定。 可能的值包括:
|
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.ancestors | 结构体 |
此字段描述了费用专列项的资源层次结构的结构和值,包括项目、文件夹和组织。祖先实体按节点是从节点到根排序(项目、文件夹,再到组织)。 |
project.ancestors.resource_name | 字符串 | 每个祖先实体的相对资源名称,格式为“resourceType/resourceNumber”。使用 project.ancestors.resource_name 可提供更完整的 project.ancestry_numbers 视图。 |
project.ancestors.display_name | 字符串 | 您在控制台中为资源创建的名称。 |
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 ,表示
资源没有特定位置。
如需了解详情,请参阅地理位置和区域以及 Google Cloud 位置。 |
location.country |
字符串 | 当 location.location 是国家/地区、区域或可用区时,此字段是发生了使用的国家/地区,例如 US 。如需了解详情,请参阅地理位置和区域以及 Google Cloud 位置。 |
location.region |
字符串 | 当 location.location 是区域或可用区时,此字段是发生了使用的区域,例如 us-central1 。如需了解详情,请参阅地理位置和区域以及 Google Cloud 位置。 |
location.zone |
字符串 | 当 location.location 是可用区时,此字段是发生了使用的可用区,例如 us-central1-a 。如需了解详情,请参阅地理位置和区域以及 Google Cloud 位置。 |
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.full_name |
字符串 | 与产品 SKU 关联的赠金名称。这是字母数字 credits.id 的直观易懂的说明。
示例包括:
免费试用赠金或
基于支出的承诺使用折扣。
|
credits.type |
字符串 | 此字段说明 credits.id 的用途或来源。
赠金类型包括:
|
credits.name |
字符串 | 对 Cloud Billing 账号应用的赠金的说明。 |
credits.amount |
浮点数 | 对使用量应用的赠金金额。 |
adjustment_info |
结构体 | adjustment_info 包含的字段说明与 Cloud Billing 账号关联的费用专列项的调整项的结构和值。仅当为 Cloud Billing 修改生成了费用专列项时,才会显示 |
adjustment_info.id |
字符串 | 如果存在,则表示费用专列项有一个关联的调整项。adjustment_info.id 是与某个问题相关联的所有调整项的唯一 ID。 |
adjustment_info.description |
字符串 | 调整项及其原因的说明。 |
adjustment_info.type |
字符串 | 调整项的类型。 类型包括:
|
adjustment_info.mode |
字符串 | 发出调整项的方式。 模式包括:
|
export_time |
时间戳 | 与附加的 Cloud Billing 数据关联的处理时间。
每次导出新数据时,该值都会增加。 另请参阅下文的导出的数据和账单之间的区别。 |
tags |
结构体 | 描述标记的字段,例如键、值和命名空间。 |
tags.key |
字符串 | 与此特定标记关联的键的简称或显示名。 |
tags.value |
字符串 | 附加到 |
tags.inherited |
布尔值 | 指示标记绑定是继承的(继承的标记 = True)还是直接的/非继承的(继承的标记 = False)。您可以创建标记绑定来与资源层次结构中的父资源进行关联。 |
tags.namespace |
字符串 | 表示定义标记键和值的资源层次结构。命名空间可以与标记键和标记值简称组合使用,以为标记键或标记值创建全局唯一的完全限定名称。 |
cost_at_list |
浮点数 | 与计入您的 Cloud Billing 账号的所有专列项关联的定价。 |
transaction_type |
字符串 | 卖家的交易类型。交易类型可能是以下各项之一:
|
seller_name |
字符串 | 卖家的法定名称。 |
可用于导出详细使用费数据的其他字段 | ||
resource |
结构体 | 这些字段描述产生用量的服务资源(例如虚拟机或 SSD)的相关信息的结构和值。 |
resource.global_name |
字符串 | 产生相关用量的资源的全局唯一服务标识符。 |
resource.name |
字符串 | 生成相关用量的资源的特定于服务的标识符。这可以是用户生成的输入。 |
price |
结构体 | 描述与支付的使用费相关的结构和值的字段。 |
price.effective_price |
数字 | 系统会收取 Google Cloud 或 Google Maps Platform SKU 和 SKU 价格层级使用费。如果您的 Cloud Billing 账号具有自定义合同价格,则这是特定于结算账号的价格;否则,这是 SKU 或 SKU 层级的定价。 |
price.tier_start_amount |
数字 | SKU 价格层级的下限单位数。例如,具有三个价格层级(例如 0-100 个单位、101-1,000 个单位和 1,001 个以上单位)的 SKU 会显示 SKU 的三行价格,其中 |
price.unit |
字符串 | 指定价格和衡量资源用量所依据的使用单位(例如 GiB、TiB、月、年、GiB/小时、GiB/月或计数)。 |
price.pricing_unit_quantity |
数字 | SKU 的价格层级单位数量。例如,如果层级价格是每 1,000,000 个字节 $1,则此列将显示 1,000,000 |
subscription |
结构体 | 描述基于支出或基于资源的承诺的字段。 您可以使用这些字段来分析特定承诺的费用。 |
subscription.instance_id |
字符串 | 与承诺关联的订阅 ID。 |
了解标准和详细使用费数据
以下部分介绍了导出到 BigQuery 的标准和详细使用费数据。
标签简介
特定标签的费用数据仅显示自该标签应用于资源之日起的使用情况。例如,如果您在 2024 年 1 月 15 日向 Compute Engine 虚拟机添加标签 environment:dev
,则对 environment:dev
的任何分析都仅包括 1 月 15 日以后该虚拟机的使用情况。
您可能还会看到不同服务在不同时间的标签数据,具体取决于每项服务提供相应数据的时间。
可用的系统标签
系统标签是关于发生了使用的资源的重要元数据的键值对。以下系统标签会自动包含在适用的使用情况中。
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 为单位)。 |
compute.googleapis.com/is_unused_reservation |
true;false | 表示通过可用区级预留预留但未使用的用量。 |
storage.googleapis.com/object_state |
live; noncurrent; soft_deleted; multipart | 正在充电的存储对象的状态。 |
导出的数据和账单之间的区别
Google Cloud 产品会以不同的时间间隔向 Cloud Billing 进程报告使用情况和费用数据。因此,您可能会在使用 Google Cloud 服务与可在 Cloud Billing 中查看的使用量和费用之间看到延迟现象。通常,您的费用在一天内可以体现出来,但有时可能需要 24 小时以上。
在某个日历月月末,延迟报告的使用量可能不包含在当月的账单中,而是延至下月的账单。
当您使用时间戳字段查询费用时,返回的数据可能会提取最初未显示在当月生成的账单上且应在以后报告的使用情况。因此,返回的 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 数据中包含错误或需要进行调整,系统会在其中附加更正数据。这些调整分为两类:结算修改或更正。
结算信息修改
结算修改项会显示为单独的订单项。如果您收到了结算修改,则导出到 BigQuery 的 Cloud Billing 数据中会显示新的明细项来反映相应更改。显示的调整项对应于 Google Cloud 控制台结算部分的文档区域中提供的账单、贷记通知单和借记通知单文档。
如需详细了解结算修改以及应用方式,请参阅了解通知单和调整项。
更正
更正项显示为新数据,用于否定来源 SKU 上的错误数据。在某些情况下,新数据会取代错误的扣款。导出的结算数据中的所有列都与原始数据一致,但以下列除外:
cost
credit
usage.amount
export_time
例如,假设您在 1 月 1 日使用 SKU A
的费用为 10 美元。在 1 月份的账单(2 月初开具)中,您会看到 SKU A
的扣款金额为 10 美元。不过,Google Cloud 在 2 月 2 日针对 SKU A
发布了更正,将使用费用降低到了 5 美元。您的 2 月账单(3 月初开具)中会多出两个专列项:
- 1 月 1 日的费用为 -$10(抵扣原费用)
- 1 月 1 日的费用为 5 美元(注明预期收费金额)
这些新项在导出的账单数据中都有 adjustment_info
列。显示超额收费的 1 月原始账单不会调整。您可以按 usage_start_time
查看费用并按 Day
进行分组,以验证结算数据导出中的扣款。在这些视图中,系统会累计因延迟货币化而产生的任何更正或费用,因此您无需担心任何暂时性数据错误。
如需详细了解更正信息,请查看账单月份中的所有费用,并查找使用日期早于账单月份的费用。这些费用是更正或延迟货币化用量产生的费用。
以下代码示例演示了如何创建一个基本查询以返回更正或延迟货币化用量的总费用:
SELECT
SUM(cost)
+ SUM(IFNULL((SELECT SUM(c.amount)
FROM UNNEST(credits) c), 0))
AS total
FROM `project.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX`
WHERE
invoice.month = '202311' AND
DATE(TIMESTAMP_TRUNC(usage_start_time, Day, 'US/Pacific')) < '2023-11-01';
如需查看一个查询示例,该查询按服务返回账单费用的费用明细(其中使用日期早于账单月份),请参阅“Cloud Billing 数据导出查询示例”中的查询费用详细信息以查看指定账单月份的更正或延迟货币化用量(按服务)。
自定义价格合同中的赠送金额简介
如果您拥有自定义价格合同,则作为合同的一部分,您可能会获得可在 Google Cloud 上使用的促销赠金。例如,您可能会收到 $1,000,该笔赠金可用于 Compute Engine 资源。促销赠金通常被视为一种付款方式。系统会自动应用赠送金额(如果可用)以减少您的总账单费用。
合同条款规定了赠送金额是适用于按 SKU 定价计算的费用还是按净价(折扣后)计算的费用。
如果您的促销赠金适用于按定价计算的费用,则费用表报告中会有一个名为 Invoice
的服务,其 SKU 名为 Contract billing adjustment
。此 SKU 会调整您的赠金,以适用于按定价计算的费用。如要查看调整项适用的使用量,请查询 system.labels
列。system.labels.key
中的键为 cloud-invoice.googleapis.com/sku_id
,system.labels.value
中的值包含赠金和调整应用到的 SKU ID。
关于标记
标记是键值对形式的资源,可以直接或通过继承附加到资源。您可以使用标记来执行退款、审核以及进行其他费用分配分析。您还可以使用标记并视情况执行政策以便在资源层次结构内进行精细控制。
标记拥有强大的权限模型,可以支持继承、集中式管理、命名法标准化及政策引擎集成,而标签则是一款单独的工具,您可以使用标签来为资源添加注解。
标记数据会显示在资源、项目、文件夹和组织的 BigQuery 导出结果中。
可用标记
资源、项目、文件夹和组织的“标准费用”和“详细费用”导出结果包括以下标记数据字段:标记键、标记值、继承的标记和标记命名空间。
Cloud Billing 数据导出中的资源级标记适用于以下资源:
- AlloyDB for PostgreSQL 集群、实例和备份
- Artifact Registry 制品库
- Cloud Run 服务和作业
- Cloud Storage 存储桶
- Compute Engine 实例
- Memorystore for Redis 实例
- Secret Manager Secret
- Spanner 实例
标记限制
- 标记最多可能需要一个小时才能传播到 BigQuery 导出结果中。如果标记是在一个小时内被添加或移除的,或者资源存在的时间不超过一个小时,则这些被添加或移除的标记可能不会反映在导出结果中。
详细使用费查询示例
本部分提供了查询导出到 BigQuery 的 Cloud Billing 详细使用费数据的示例。
由于详细使用费架构包含标准使用费架构中的所有字段,因此为导出到 BigQuery 的标准数据提供的查询示例同样适用于导出的详细数据。标准查询示例并不用于检索详细使用费导出选项提供的任何资源级信息。创建详细数据的查询时,您可以使用标准查询示例作为模板,更新表名称,并添加详细使用费架构中提供的任何字段。
详细费用查询示例中使用的常用值
本部分中的查询示例使用以下值作为表名称:project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX
返回账单中的资源级费用
以下查询演示了使用导出的结算数据查看账单上的资源级费用和赠金值的两种方法。
total
字段直接对浮点费用和赠金值求和,可能会产生浮点舍入误差。total_exact
字段在求和之前将费用和赠金值转换为 micros,然后在求和后转换回美元,以避免产生浮点舍入误差。
计算每项资源每个账单的总费用
此查询显示了每个 resource.name
每个月的账单总额,即常规费用、税费、调整项和舍入误差的总和。与资源级项没有关联的所有当月费用都会汇总到名称 null
下。
标准 SQL
SELECT invoice.month, resource.name, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2 ORDER BY 1 ASC, 2 ASC ;
例如,上述查询的结果可能是:
行 | 月 | name | 总计 | total_exact |
---|---|---|---|---|
1 | 201901 | null | $1005.004832999999984 | $1005.00 |
2 | 201901 | backend1 | $781.8499760000028 | $781.85 |
3 | 201902 | null | $953.0034923645475983 | $953.03 |
4 | 201902 | backend1 | $992.3101739999999717 | $992.31 |
5 | 201902 | bitnami-launchpad-wordpress-1-wordpress | $1.2817819999999998 | $1.28 |
按费用类型返回每项资源每个账单月的详细信息
此查询显示了每个 resource.name
每个月各 cost_type
的总费用。费用类型包括常规费用、税费、调整项和舍入误差。与资源级项没有关联的所有当月费用都会汇总到名称 null
下。
标准 SQL
SELECT invoice.month, cost_type, resource.name, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS total, (SUM(CAST(cost * 1000000 AS int64)) + SUM(IFNULL((SELECT SUM(CAST(c.amount * 1000000 as int64)) FROM UNNEST(credits) c), 0))) / 1000000 AS total_exact FROM `project.dataset.gcp_billing_export_resource_v1_XXXXXX_XXXXXX_XXXXXX` GROUP BY 1, 2, 3 ORDER BY 1 ASC, 2 ASC, 3 ASC ;
例如,上述查询的结果可能是:
行 | 月 | 费用类型 | name | 总计 | total_exact |
---|---|---|---|---|---|
1 | 201901 | regular | null | $1000.501209987994782 | $1000.50 |
2 | 201901 | rounding_error | null | –$0.500489920049387 | –$0.50 |
3 | 201901 | tax | null | $10.000329958477891 | $10.00 |
4 | 201901 | adjustment | null | –$5.002572999387045 | –$5.00 |
5 | 201901 | regular | backend1 | $410.998795012082947 | $411.00 |
2 | 201901 | rounding_error | backend1 | –$0.2404900489920378 | –$0.24 |
3 | 201901 | tax | backend1 | $4.105840329977189 | $4.11 |
获取 Google Kubernetes Engine (GKE) 集群费用明细
本部分提供了在 BigQuery 导出报告中过滤 GKE 集群费用的示例。如需详细了解 GKE 集群费用,请参阅查看集群费用明细。
过滤 GKE 费用
以下示例查询展示了如何按集群名称、命名空间和标签对所支持资源类型的 GKE 费用进行过滤和分组。
抵扣赠金之前的 GKE 集群费用
SELECT SUM(cost) AS cost_before_credits, labels.value AS cluster_name FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "goog-k8s-cluster-name" GROUP BY labels.value ;
抵扣赠金之后的 GKE 费用(按命名空间)
SELECT labels.value as namespace, SUM(cost) + SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) c), 0)) AS cost_after_credits, FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` LEFT JOIN UNNEST(labels) as labels ON labels.key = "k8s-namespace" GROUP BY namespace ;
GKE 费用(按 SKU)
SELECT project.id AS project_id, labels.value AS cluster_name, sku.id AS sku_id, sku.description AS sku_description, SUM(cost) AS cost FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX` JOIN UNNEST(labels) AS labels ON labels.key = "goog-k8s-cluster-name" GROUP BY cluster_name, project_id, sku_description, sku_id ;
通过标记进行查询的示例
以下示例演示了使用标记查询数据的方法。
使用标记按账单月份计算费用
以下查询演示了如何使用 cost_center
标记按账单月份计算退货费用。
SELECT invoice.month AS invoice_month, tag.value AS cost_center, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM (CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_resource_v1_XXXXXX-XXXXXX-XXXXXX`, UNNEST(tags) AS tag WHERE tag.key = "cost_center" AND tag.namespace = "821092389413" GROUP BY invoice.month, tag.value ORDER BY invoice.month, tag.value;
例如,上述查询的结果可能是:
行 | invoice_month | cost_center | net_cost |
---|---|---|---|
1 | 202208 | android_mobile_apps | 9.93 |
2 | 202208 | ios_mobile_apps | 9.93 |
3 | 202209 | android_mobile_apps | 25.42 |
4 | 202209 | ios_mobile_apps | 25.4 |
5 | 202209 | personalization | 16.08 |
查看未标记资源的费用
此查询显示未标记资源的账单总额,按账单月份分组。
SELECT invoice.month AS invoice_month, ROUND((SUM(CAST(cost AS NUMERIC)) + SUM(IFNULL((SELECT SUM(CAST(c.amount AS NUMERIC)) FROM UNNEST(credits) AS c), 0))), 2) AS net_cost FROM `project-ID.dataset.gcp_billing_export_v1_XXXXXX-XXXXXX-XXXXXX` WHERE "color" NOT IN (SELECT key FROM UNNEST(tags)) GROUP BY invoice_month ORDER BY invoice_month;
例如,上述查询的结果可能是:
行 | invoice_month | net_cost |
---|---|---|
1 | 202202 | 0 |
2 | 202203 | 16.81 |
3 | 202204 | 54.09 |
4 | 202205 | 55.82 |
5 | 202206 | 54.09 |
6 | 202207 | 55.83 |
7 | 202208 | 31.49 |
相关主题
与导出的 Cloud Billing 数据相关的主题
- 设置将 Cloud Billing 数据导出到 BigQuery 的功能
- 将 Cloud Billing 数据导出到 BigQuery 的查询示例
- 通过 Looker Studio 直观呈现一段时间内的支出
Google Cloud 控制台中提供的费用和价格报告
- 查看您的 Cloud Billing 报告和费用趋势
- 查看并下载账单或对账单的费用详细信息
- 查看和下载 Google 云服务的价格信息
- 通过费用明细报告了解您节省的费用
- 分析您的承诺使用折扣的有效性
- 查看您的费用和付款记录