灵活节省方案 (FSP) 是一种基于支出的承诺使用折扣 (CUD),可帮助您节省 Google Cloud上的使用费用。通过 FSP,您承诺在订阅期(1 年或 3 年)内,在每月权益窗口期内,为一系列符合条件的产品(包括第一方、开源和参与计划的第三方模型)支付支出下限。作为承诺的回报,您可以在符合条件的使用量上享受折扣。
FSP 为基于支出的 CUD 引入了两项新功能:
与使用每小时权益窗口的标准基于支出的承诺使用折扣 (CUD) 不同,FSP 使用每月权益窗口。这使得它们非常适合具有突发性或不可预测的使用模式的工作负载。
查找符合条件的 SKU
您的 Gemini Enterprise FSP 适用于符合条件的 Google Cloud 生成式 AI 模型和产品,包括第一方模型(例如 Gemini)、开源模型即服务产品,以及通过 Vertex AI 和 Cloud Marketplace 提供的参与计划的第三方 (3P) 基础模型。如需查看适用范围内的 SKU 的完整列表,请参阅符合 Gemini Enterprise Flexible Savings Plan 条件的 SKU 页面。
灵活节省方案的运作方式
购买弹性节省方案时,您承诺在 1 年或 3 年期限内每月支出特定金额。系统会监控您的用量,并应用适用的折扣后使用模式费率。
如果您在符合条件的产品上使用了每月承诺金额,则无需为 FSP 付费。当您使用符合条件的产品时,您的 FSP 承诺金额会相应扣减。
范围和定价
以下规则适用于 FSP 范围和定价:
- 订阅期限限制:期限超过 1 个月的订阅无法通过 FSP 享受折扣。例如,如果您订阅了某款产品 1 年,则 FSP 折扣不适用于该产品。
- 支付更优惠的价格:对于所有符合条件的产品和订阅,您始终支付较低(更优惠)的价格。如果您针对此承诺范围内的任何产品拥有协议价,系统将自动应用最低价格。FSP 绝不会将任何产品的价格提高到超出其标准按需费率。如需了解详情,请参阅支付更优惠的费率。
- 不符合折扣条件的商品:部分商品无法享受 FSP 折扣,但仍会从 FSP 中扣减。如需了解这些价格,请参阅价格表报告。
Gemini Enterprise 价格
对于 Gemini Enterprise Flexible Savings Plan Eligible SKUs 页面中的所有 SKU,1 年期 Flexible Savings Plan 提供 10% 的折扣,3 年期 Flexible Savings Plan 提供 20% 的折扣,但以下 SKU 除外,这些 SKU 不会从 FSP 获得任何增量折扣,但仍会消耗 FSP 承诺:
| 产品 | 说明 | SKU ID |
|---|---|---|
| 预配吞吐量 | Vertex AI:预配吞吐量 3 个月 | 13D9-6212-6E17 |
| 预配吞吐量 | Vertex AI:预配吞吐量 1 年 | 9192-74A6-DE45 |
| 预配吞吐量 | Agent Platform 模型:预配吞吐量 3 个月(非全球) | F878-80F5-63BF |
| 预配吞吐量 | Agent Platform 模型:预配吞吐量 1 年(非全球) | 2106-EA10-F9CC |
| 预配吞吐量 | Vertex AI 开源模型即服务:预配吞吐量 3 个月 | 1E0D-E522-0E12 |
| 预配吞吐量 | Vertex AI 开源模型即服务:预配吞吐量 1 年 | 6009-4CB8-85D6 |
| 全量微调 | 第一方基础模型全量微调服务 1 年承诺期 | 88CB-4A51-012D |
| 全量微调 | 第一方基础模型全量微调服务 3 年承诺期 | 0280-9537-E40B |
| 全量微调 | 推断全量微调的第一方模型(1 年承诺) | 74E1-4528-1F94 |
| 全量微调 | 全量微调第一方模型推理 3 年承诺 | 26B4-6E81-10C0 |
| Speech-to-Text | 设备端 Speech-to-Text 语言订阅 | 9886-4062-830D |
| Speech-to-Text | 设备端 Speech-to-Text 服务库订阅 | BEF8-431D-9BF4 |
| Text-to-Speech | 设备端 Text-to-Speech 服务库订阅 | 3D6B-450F-BA51 |
| Text-to-Speech | Text-to-Speech 设备端语音订阅 | 80AF-473F-9A8D |
| Gemini Enterprise 应用 | Gemini Business:订阅 - 1 个月 | D03F-9D37-4753 |
| Gemini Enterprise 应用 | Gemini Business:订阅 - 一年期 | FE0D-41B2-9575 |
| Gemini Enterprise 应用 | Gemini Enterprise Business 版:订阅预付款 - 1 个月 | FA2D-55B2-023F |
| Gemini Enterprise 应用 | Gemini Enterprise Business 版:订阅预付款 - 1 年期 | FB43-B23B-BD15 |
| Gemini Enterprise 应用 | Gemini Enterprise Standard:订阅 - 1 个月 | 0532-C2F0-1DF0 |
| Gemini Enterprise 应用 | Gemini Enterprise Standard:订阅 - 1 年期 | B3D3-B9E1-610F |
| Gemini Enterprise 应用 | Gemini Enterprise Plus:订阅 - 一个月 | 4EDF-A125-F89E |
| Gemini Enterprise 应用 | Gemini Enterprise Plus:订阅 - 1 年期 | 5657-9AD2-26F6 |
| Gemini Enterprise 应用 | Gemini Enterprise Frontline:订阅 - 1 个月 | C3B7-10E2-45EE |
| Gemini Enterprise 应用 | Gemini Enterprise Frontline:订阅 - 1 年期 | 070B-47E2-47B3 |
| Gemini Enterprise 应用 | 面向新兴市场的 Gemini Enterprise Standard:订阅 - 1 个月 | 54F6-590C-84B5 |
| Gemini Enterprise 应用 | 面向新兴市场的 Gemini Enterprise Standard:订阅 - 1 年期 | C853-D67D-D911 |
| Gemini Enterprise 应用 | Gemini Notebook Enterprise:订阅 - 1 个月 | BF82-0F2F-7FA3 |
| Gemini Enterprise 应用 | Gemini Notebook Enterprise:订阅 - 1 年期 | 8597-66F8-5FF1 |
第三方模型和非公开优惠
Gemini Enterprise Flexible Savings Plan 支持通过 Vertex AI 和 Cloud Marketplace 提供的参与计划的第三方 (3P) 基础模型。
与非公开优惠的互动
以下规则用于管理 FSP 和非公开优惠之间的互动:
- 福利应用层次结构:
- 非公开优惠折扣:如果您通过非公开优惠购买了符合 FSP 条件的第三方产品,并且该优惠为您提供了合作伙伴定价的折扣,则系统会应用折扣价格和非公开优惠条款。此外,您的折扣支出将减少您的每月 FSP 承诺。
- 非公开优惠 CUD 赠金:如果您通过非公开优惠购买了符合 FSP 条件的第三方产品,并且该优惠为您提供了赠金,则购买非公开优惠或分期付款将减少您的每月 FSP 承诺。请注意,您使用购买的赠金不会额外扣减您的每月 FSP 承诺金额。
企业协议承诺扣减
根据 FSP 购买第三方模型的支出会从贵组织的企业承诺金额中扣减,具体取决于标准 Cloud Marketplace 扣减规则和企业协议中定义的合同上限。
使用权时间窗口
使用权期限是指根据承诺金额衡量用量的周期性时间段。如果您未在权益期内用完所有承诺金额,系统会向您收取剩余金额。未充分利用的 FSP 承诺不会结转。
FSP 支持每月权益期。这意味着您有一个日历月的时间来消耗承诺支出。不过,结算系统会每小时评估一次您的用量并应用 FSP 折扣。
例如,如果您有 100 美元的月度承诺,系统会每小时检查一次您的用量。如果您在第 1 小时内有符合条件的使用量,则系统会应用折扣,并计入您的 100 美元承诺。这种情况会持续整个月,直到您达到 100 美元的限额或该月结束。如果您在月底之前的使用量超过 100 美元,则后续使用量将按默认用量模型费率收费。
超额使用的承诺(超出承诺用量)
如果您在给定月份的符合条件的用量超过了您承诺的每月金额,则 FSP 会涵盖不超过限额的用量,其余部分将按标准按需费率或您针对此承诺范围内的任何产品协商的价格计费。
- 机制:系统会针对等于您每月承诺金额的用量应用 FSP 折扣费率。
- 费用:当月超出该限额的任何用量都将按标准按需价格(“默认”使用模式)或承诺范围内任何产品的协商价格计费。您不会在超额部分获得任何 FSP 折扣。
未充分利用的承诺(未达到承诺)
如果您在给定月份的符合条件的使用量低于承诺金额,您仍需支付承诺的全部费用。
- 不结转:未使用的承诺金额不会结转到下个月。
- 费用:您需要支付所购承诺的每月全额费用。在月底,您需要为承诺的未使用部分支付承诺费用。
折扣的应用方式
在 FSP 的范围内,折扣按以下顺序应用:
- 使用时间:系统会先应用较早使用小时内的费用。
- 折扣级别:接下来,系统会应用在给定使用小时内相对于按需定价折扣百分比最高的使用量。这种贪婪选择可确保您的承诺金额首先提供最高的节省率。
- 按比例应用:如果多个资源的使用量在一小时内共享相同的折扣百分比,则承诺会按比例应用于该折扣级别和使用小时内的所有费用。
如果您有 FSP 涵盖的订阅,则订阅权益会首先应用于您的用量。您的订阅费用会计入 FSP 支出承诺,但 FSP 不会为订阅价格提供额外折扣。
享受更优惠的价格
系统会应用默认使用模式价格、第三方非公开优惠和 FSP 使用模式价格中的最低价格。
开始时间和按比例计算
购买 FSP 后,承诺会根据购买时间激活:
- 在 :00 到 :49(小时的前 50 分钟)购买:在下一个小时开始时生效。
- 在 :50 到 :59(该小时的最后 10 分钟)购买:跳过一个小时,并在下一个小时开始时生效。
所有激活和授权窗口边界均采用太平洋时间 (PT) (America/Los_Angeles)。
月中购买的按月比例分摊
如果您在月中购买 FSP 并立即激活,则初始权益期将按该日历月剩余时间按比例计算:
- 按比例计算的首月:您将获得从激活时间戳到当前日历月结束(当月最后一天的晚上 11:59:59 PT)期间按比例计算的支出权益。该非整月的承诺费用和利用率不足阈值会按该月已用小时数的比例进行缩放。
- 后续日历月:从下一个日历月的第一天凌晨 0:00(太平洋时间)开始,每个权益期都与一个完整的日历月保持一致,直至 1 年期或 3 年期结束
- 上个月按比例计算:您将获得从当前日历月开始到期限结束之日期间按比例计算的支出权利。该部分月份的承诺费用和利用率不足阈值会按该月已用小时数的比例进行缩放。
例如,假设您购买了 1 年期 FSP,每月承诺金额为 3,000 美元,于 4 月 16 日凌晨 12:00(太平洋时间)生效(4 月总共有 30 天,还剩 15 天)。您 4 月的承诺金额按比例计算为 $1,500 ($3,000 × 15/30)。
取消、迁移和更正
购买后,您无法取消或修改 FSP。在承诺期间,您必须按约定的每月金额支付费用。如果您无意中购买了承诺或配置承诺时出错,请与 Cloud Billing 支持团队联系以获取帮助。
折扣和费用的归因
FSP 使用比例归因,这与其他基于支出的承诺使用折扣 (CUD) 使用的归因模型相同。费用每小时归因一次。系统会根据每个项目消耗的符合条件的总用量按比例向 Cloud Billing 账号中的项目收取费用。如需了解详情,请参阅承诺使用折扣费用和赠金的归因。
购买灵活省钱方案
您可以使用 Google Cloud 控制台(自助服务)直接购买 FSP。
如需购买弹性节省方案,您需要提供与承诺期限关联的优惠 ID。如需查找优惠 ID,请参阅确定要购买的优惠。
配置 FSP 时,您需要指定:
- 订阅期(1 年或 3 年)。
- 每个月度使用权期限的承诺金额。
- FSP 的名称。此名称在您的所有 FSP 和承诺使用折扣 (CUD) 中必须是唯一的。
查看您的灵活节省方案
您可以在 Google Cloud 控制台中的承诺使用折扣 (CUD) 页面上查看有效和历史弹性 Savings Plan。
该页面提供两个级别的详细信息(汇总视图和实例视图),可帮助您管理承诺。如需详细了解这些视图,请参阅查看承诺。
在实例视图中,您可以查看使用权窗口的细分。
监控和分析灵活节省方案
您可以使用标准 Cloud Billing FinOps 工具监控和管理 FSP:
- 费用报告:查看您的 FSP 承诺费用和按需费用。您可以单独查看 FSP 涵盖的费用和用量。
- 费用表报告:通过查看 FSP 费用的详细明细来核对账单。
- 将 Cloud Billing 数据导出到 BigQuery:设置将 Cloud Billing 数据导出到 BigQuery,以编程方式跟踪活跃 FSP、历史效果和利用率指标。您可以使用示例查询来分析这些数据。
查询示例
使用以下示例查询,通过导出到 BigQuery 的 Cloud Billing 数据来分析弹性 Savings Plan (FSP)。
计算承诺可节省的费用
使用以下查询可计算承诺节省金额(以美元为单位)以及开放和封闭权利窗口的百分比。
打开窗口
此查询会计算开放的权利窗口的总节省金额和总节省率:按需费用减去 FSP 涵盖用量的 FSP 折扣费用。未充分利用费不包含在内,因为该费用仅在窗口关闭后收取。如需过滤特定使用模式,请将 LIKE ANY ('%') 中的 '%' 替换为目标使用模式 ID。
WITH fsp_windows AS ( SELECT DISTINCT IF( STARTS_WITH(subscription.instance_id, 'subscriptions/'), subscription.instance_id, CONCAT('subscriptions/', subscription.instance_id)) AS fsp_instance_id, subscription.display_name AS fsp_display_name, subscription.entitlement_period, consumption_model.id AS consumption_model_id, consumption_model.description AS consumption_model_description, entitlement_window.start_time AS window_start_time, entitlement_window.end_time AS window_end_time FROM `PROJECT.DATASET.cud_subscriptions_export`, UNNEST(entitlement_schedule) AS entitlement_window WHERE DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cud_subscriptions_export`) AND consumption_model.id LIKE ANY ('%') AND CURRENT_TIMESTAMP() >= entitlement_window.start_time AND CURRENT_TIMESTAMP() < entitlement_window.end_time ), fsp_cost AS ( SELECT COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) AS fsp_instance_id, IFNULL(consumption_model.applied_subscription_instance_id, '') = '' AS is_fee_line, usage_start_time, currency, SUM(CAST(cost AS NUMERIC)) AS cost, SUM(CAST(cost_at_effective_price_default AS NUMERIC)) AS cost_at_on_demand_price FROM `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID` WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE('America/Los_Angeles'), INTERVAL 93 DAY) AND COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) IN (SELECT fsp_instance_id FROM fsp_windows) GROUP BY ALL ), fsp_window_totals AS ( SELECT fsp_windows.fsp_instance_id, fsp_windows.fsp_display_name, fsp_windows.entitlement_period, fsp_windows.consumption_model_id, fsp_windows.consumption_model_description, fsp_windows.window_start_time, fsp_windows.window_end_time, fsp_cost.currency, IFNULL(SUM(IF(fsp_cost.is_fee_line, 0, fsp_cost.cost_at_on_demand_price)), 0) AS on_demand_cost, IFNULL(SUM(IF(fsp_cost.is_fee_line, 0, fsp_cost.cost)), 0) AS usage_cost FROM fsp_windows LEFT JOIN fsp_cost ON fsp_cost.fsp_instance_id = fsp_windows.fsp_instance_id AND fsp_cost.usage_start_time >= fsp_windows.window_start_time AND fsp_cost.usage_start_time < fsp_windows.window_end_time GROUP BY ALL ) SELECT fsp_instance_id, fsp_display_name, entitlement_period, consumption_model_id, consumption_model_description, DATETIME(window_start_time, 'America/Los_Angeles') AS window_start_time_pt, DATETIME(window_end_time, 'America/Los_Angeles') AS window_end_time_pt, currency, on_demand_cost - usage_cost AS gross_commitment_savings, SAFE_DIVIDE(on_demand_cost - usage_cost, on_demand_cost) AS gross_commitment_savings_rate FROM fsp_window_totals ORDER BY fsp_instance_id, window_start_time_pt
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。BILLING_ACCOUNT_ID:您的 Cloud Billing 账号 API ID,其中连字符替换为下划线。
关闭窗口
此查询会计算应用利用率不足费用 (FEE_UTILIZATION_OFFSET) 后已完成权益窗口的净承诺节省金额和净节省率。在 fsp_windows 和 fsp_cost 中,更新 DATE '2026-07-01' 和 DATE '2026-10-01' 以匹配目标窗口范围,如果您想按特定使用模式过滤,请替换 LIKE ANY ('%') 中的 '%'。
WITH fsp_windows AS ( SELECT DISTINCT IF( STARTS_WITH(subscription.instance_id, 'subscriptions/'), subscription.instance_id, CONCAT('subscriptions/', subscription.instance_id)) AS fsp_instance_id, subscription.display_name AS fsp_display_name, subscription.entitlement_period, consumption_model.id AS consumption_model_id, consumption_model.description AS consumption_model_description, entitlement_window.start_time AS window_start_time, entitlement_window.end_time AS window_end_time FROM `PROJECT.DATASET.cud_subscriptions_export`, UNNEST(entitlement_schedule) AS entitlement_window WHERE DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cud_subscriptions_export`) AND consumption_model.id LIKE ANY ('%') AND entitlement_window.start_time >= TIMESTAMP(DATE '2026-07-01', 'America/Los_Angeles') AND entitlement_window.end_time <= TIMESTAMP(DATE '2026-10-01', 'America/Los_Angeles') AND entitlement_window.end_time <= CURRENT_TIMESTAMP() ), fsp_cost AS ( SELECT COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) AS fsp_instance_id, IFNULL(consumption_model.applied_subscription_instance_id, '') = '' AS is_fee_line, usage_start_time, currency, SUM(CAST(cost AS NUMERIC)) AS cost, SUM(CAST(cost_at_effective_price_default AS NUMERIC)) AS cost_at_on_demand_price, SUM( ( SELECT SUM(CAST(credit.amount AS NUMERIC)) FROM UNNEST(credits) AS credit WHERE credit.type = 'FEE_UTILIZATION_OFFSET' )) AS fee_utilization_offset FROM `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID` WHERE DATE(_PARTITIONTIME) >= DATE '2026-07-01' AND COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) IN (SELECT fsp_instance_id FROM fsp_windows) GROUP BY ALL ), fsp_window_totals AS ( SELECT fsp_windows.fsp_instance_id, fsp_windows.fsp_display_name, fsp_windows.entitlement_period, fsp_windows.consumption_model_id, fsp_windows.consumption_model_description, fsp_windows.window_start_time, fsp_windows.window_end_time, fsp_cost.currency, IFNULL(SUM(IF(fsp_cost.is_fee_line, 0, fsp_cost.cost_at_on_demand_price)), 0) AS on_demand_cost, IFNULL(SUM(fsp_cost.cost + IFNULL(fsp_cost.fee_utilization_offset, 0)), 0) AS actual_fsp_cost FROM fsp_windows LEFT JOIN fsp_cost ON fsp_cost.fsp_instance_id = fsp_windows.fsp_instance_id AND fsp_cost.usage_start_time >= fsp_windows.window_start_time AND fsp_cost.usage_start_time < fsp_windows.window_end_time GROUP BY ALL ) SELECT fsp_instance_id, fsp_display_name, entitlement_period, consumption_model_id, consumption_model_description, DATETIME(window_start_time, 'America/Los_Angeles') AS window_start_time_pt, DATETIME(window_end_time, 'America/Los_Angeles') AS window_end_time_pt, currency, on_demand_cost - actual_fsp_cost AS net_commitment_savings, SAFE_DIVIDE(on_demand_cost - actual_fsp_cost, on_demand_cost) AS net_commitment_savings_rate FROM fsp_window_totals ORDER BY fsp_instance_id, window_start_time_pt
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。BILLING_ACCOUNT_ID:您的 Cloud Billing 账号 API ID,其中连字符替换为下划线。
计算承诺利用率
承诺利用率衡量您利用承诺的有效程度。
打开窗口
此查询会计算未结束的使用权期限内的进行中利用率:截至目前,按 FSP 价格计算的 FSP 涵盖用量(以美元为单位)除以该期限内的承诺金额。如需过滤特定使用模式,请将 LIKE ANY ('%') 中的 '%' 替换为目标使用模式 ID。
WITH fsp_windows AS ( SELECT DISTINCT IF( STARTS_WITH(subscription.instance_id, 'subscriptions/'), subscription.instance_id, CONCAT('subscriptions/', subscription.instance_id)) AS fsp_instance_id, subscription.display_name AS fsp_display_name, subscription.entitlement_period, consumption_model.id AS consumption_model_id, consumption_model.description AS consumption_model_description, entitlement_window.start_time AS window_start_time, entitlement_window.end_time AS window_end_time, entitlement_window.commitment_amount AS window_commitment_amount_usd FROM `PROJECT.DATASET.cud_subscriptions_export`, UNNEST(entitlement_schedule) AS entitlement_window WHERE DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cud_subscriptions_export`) AND consumption_model.id LIKE ANY ('%') AND CURRENT_TIMESTAMP() >= entitlement_window.start_time AND CURRENT_TIMESTAMP() < entitlement_window.end_time ), fsp_cost AS ( SELECT COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) AS fsp_instance_id, IFNULL(consumption_model.applied_subscription_instance_id, '') = '' AS is_fee_line, usage_start_time, SUM(CAST(cost AS NUMERIC) / CAST(currency_conversion_rate AS NUMERIC)) AS cost_usd FROM `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID` WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE('America/Los_Angeles'), INTERVAL 93 DAY) AND COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) IN (SELECT fsp_instance_id FROM fsp_windows) GROUP BY ALL ), fsp_window_totals AS ( SELECT fsp_windows.fsp_instance_id, fsp_windows.fsp_display_name, fsp_windows.entitlement_period, fsp_windows.consumption_model_id, fsp_windows.consumption_model_description, fsp_windows.window_start_time, fsp_windows.window_end_time, fsp_windows.window_commitment_amount_usd, IFNULL(SUM(IF(fsp_cost.is_fee_line, 0, fsp_cost.cost_usd)), 0) AS usage_cost_usd FROM fsp_windows LEFT JOIN fsp_cost ON fsp_cost.fsp_instance_id = fsp_windows.fsp_instance_id AND fsp_cost.usage_start_time >= fsp_windows.window_start_time AND fsp_cost.usage_start_time < fsp_windows.window_end_time GROUP BY ALL ) SELECT fsp_instance_id, fsp_display_name, entitlement_period, consumption_model_id, consumption_model_description, DATETIME(window_start_time, 'America/Los_Angeles') AS window_start_time_pt, DATETIME(window_end_time, 'America/Los_Angeles') AS window_end_time_pt, window_commitment_amount_usd, usage_cost_usd AS covered_usage_cost_usd, SAFE_DIVIDE(usage_cost_usd, window_commitment_amount_usd) AS commitment_utilization_rate FROM fsp_window_totals ORDER BY fsp_instance_id, window_start_time_pt
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。BILLING_ACCOUNT_ID:您的 Cloud Billing 账号 API ID,其中连字符替换为下划线。
关闭窗口
此查询会根据 FSP 费用订单项计算已结束的使用权期限的最终利用率:FEE_UTILIZATION_OFFSET 赠金(代表承诺中已利用的部分)除以该期限的承诺金额。在 fsp_windows 和 fsp_cost 中,更新 DATE '2026-07-01' 和 DATE '2026-10-01' 以匹配目标窗口范围,如果您想按特定使用模式过滤,请替换 LIKE ANY ('%') 中的 '%'。
WITH fsp_windows AS ( SELECT DISTINCT IF( STARTS_WITH(subscription.instance_id, 'subscriptions/'), subscription.instance_id, CONCAT('subscriptions/', subscription.instance_id)) AS fsp_instance_id, subscription.display_name AS fsp_display_name, subscription.entitlement_period, consumption_model.id AS consumption_model_id, consumption_model.description AS consumption_model_description, entitlement_window.start_time AS window_start_time, entitlement_window.end_time AS window_end_time, entitlement_window.commitment_amount AS window_commitment_amount_usd FROM `PROJECT.DATASET.cud_subscriptions_export`, UNNEST(entitlement_schedule) AS entitlement_window WHERE DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cud_subscriptions_export`) AND consumption_model.id LIKE ANY ('%') AND entitlement_window.start_time >= TIMESTAMP(DATE '2026-07-01', 'America/Los_Angeles') AND entitlement_window.end_time <= TIMESTAMP(DATE '2026-10-01', 'America/Los_Angeles') AND entitlement_window.end_time <= CURRENT_TIMESTAMP() ), fsp_cost AS ( SELECT COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) AS fsp_instance_id, usage_start_time, SUM( ( SELECT SUM(CAST(credit.amount AS NUMERIC)) FROM UNNEST(credits) AS credit WHERE credit.type = 'FEE_UTILIZATION_OFFSET' ) / CAST(currency_conversion_rate AS NUMERIC)) AS fee_utilization_offset_usd FROM `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID` WHERE DATE(_PARTITIONTIME) >= DATE '2026-07-01' AND COALESCE( NULLIF(consumption_model.applied_subscription_instance_id, ''), subscription.instance_id) IN (SELECT fsp_instance_id FROM fsp_windows) GROUP BY ALL ), fsp_window_totals AS ( SELECT fsp_windows.fsp_instance_id, fsp_windows.fsp_display_name, fsp_windows.entitlement_period, fsp_windows.consumption_model_id, fsp_windows.consumption_model_description, fsp_windows.window_start_time, fsp_windows.window_end_time, fsp_windows.window_commitment_amount_usd, IFNULL(SUM(fsp_cost.fee_utilization_offset_usd), 0) AS fee_utilization_offset_usd FROM fsp_windows LEFT JOIN fsp_cost ON fsp_cost.fsp_instance_id = fsp_windows.fsp_instance_id AND fsp_cost.usage_start_time >= fsp_windows.window_start_time AND fsp_cost.usage_start_time < fsp_windows.window_end_time GROUP BY ALL ) SELECT fsp_instance_id, fsp_display_name, entitlement_period, consumption_model_id, consumption_model_description, DATETIME(window_start_time, 'America/Los_Angeles') AS window_start_time_pt, DATETIME(window_end_time, 'America/Los_Angeles') AS window_end_time_pt, window_commitment_amount_usd, ABS(fee_utilization_offset_usd) AS utilized_commitment_usd, SAFE_DIVIDE(ABS(fee_utilization_offset_usd), window_commitment_amount_usd) AS commitment_utilization_rate FROM fsp_window_totals ORDER BY fsp_instance_id, window_start_time_pt
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。BILLING_ACCOUNT_ID:您的 Cloud Billing 账号 API ID,其中连字符替换为下划线。
调整交易额
仅使用已结束、已完成的周期来确定交易额。开放期通常包含很少的未涵盖费用,并且可能会使结果出现偏差。容量估算查询会评估在这些时间段内没有任何有效承诺涵盖的历史按需用量。由于历史用量无法反映预定的承诺用量增加、未来激活或到期承诺,因此在确定购买规模时,请考虑即将到来的权利时间表。
查找符合条件的 SKU 和折扣率
此查询会返回符合 FSP 条件的 SKU、其按需价格和每个价格层级的 FSP 价格,以及 FSP 折扣率,以便您验证下一个查询应用的价格。折扣为 0% 的 SKU(例如预配吞吐量)会保留,因为它们仍会消耗承诺。名称中包含“Flexible Savings Plan”的所有使用模式都会纳入其中。如需仅包含特定使用模式,请将 LIKE ANY ('%') 中的 '%' 替换为其 ID,例如仅包含季度 1 年期模式。
WITH fsp_tier_prices AS ( SELECT pricing.sku.id AS sku_id, pricing.sku.description AS sku_description, consumption_model_price.consumption_model_id, consumption_model_price.consumption_model_display_name, on_demand_tier.start_usage_amount AS tier_start_usage_amount, CAST( COALESCE( ( SELECT tier.usd_amount FROM UNNEST(pricing.billing_account_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount ), on_demand_tier.usd_amount) AS NUMERIC) AS on_demand_price_usd, CAST( COALESCE( ( SELECT tier.usd_amount FROM UNNEST(consumption_model_price.billing_account_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount ), ( SELECT tier.usd_amount FROM UNNEST(consumption_model_price.list_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount )) AS NUMERIC) AS fsp_price_usd FROM `PROJECT.DATASET.cloud_pricing_export` AS pricing, UNNEST(pricing.consumption_model_prices) AS consumption_model_price, UNNEST(pricing.list_price.tiered_rates) AS on_demand_tier WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) ) AND consumption_model_price.consumption_model_display_name LIKE '%Flexible Savings Plan%' AND consumption_model_price.consumption_model_id LIKE ANY ('%') ) SELECT sku_id, sku_description, consumption_model_id, consumption_model_display_name, tier_start_usage_amount, on_demand_price_usd, fsp_price_usd, SAFE_DIVIDE(on_demand_price_usd - fsp_price_usd, on_demand_price_usd) AS fsp_discount_rate FROM fsp_tier_prices ORDER BY consumption_model_display_name, sku_id, tier_start_usage_amount
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。
对未涵盖的用量应用折扣率
此查询使用与上一个查询相同的定价逻辑,将每个 SKU 的 FSP 价格比率应用于每个价格层级,以计算过去每个时间段内未涵盖的按需用量。它会返回每个周期的潜在 FSP 费用,并根据最低稳定周期(也称为低水位线)建议每个窗口的承诺。运行上述查询并非前提条件,因为定价步骤是内置的。
在运行查询之前,请在 sizing_periods 和 uncovered_cost 中修改以下输入:
- 使用模式:在
fsp_tier_price_ratios中,选择LIKE ANY ('%')中与期数匹配的使用模式,例如周期为 3 个月的季度 FSP 使用模式。 - 期数:在
sizing_periods中,对于按月 FSP,请使用1;对于按季度 FSP,请使用3。 - 第一个时间段开始:更新
DATE '2026-07-01',它在sizing_periods和uncovered_cost的_PARTITIONTIME过滤条件中出现两次。两个日期保持一致。 - 期数:更新
GENERATE_ARRAY(0, 3)中的3,例如3个月或2到4个季度。所有周期都必须已结束。
WITH fsp_tier_price_ratios AS ( SELECT pricing.sku.id AS sku_id, consumption_model_price.consumption_model_id, consumption_model_price.consumption_model_display_name, on_demand_tier.start_usage_amount AS tier_start_usage_amount, SAFE_DIVIDE( CAST( COALESCE( ( SELECT tier.usd_amount FROM UNNEST(consumption_model_price.billing_account_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount ), ( SELECT tier.usd_amount FROM UNNEST(consumption_model_price.list_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount )) AS NUMERIC), CAST( COALESCE( ( SELECT tier.usd_amount FROM UNNEST(pricing.billing_account_price.tiered_rates) AS tier WHERE tier.start_usage_amount = on_demand_tier.start_usage_amount ), on_demand_tier.usd_amount) AS NUMERIC)) AS fsp_price_ratio FROM `PROJECT.DATASET.cloud_pricing_export` AS pricing, UNNEST(pricing.consumption_model_prices) AS consumption_model_price, UNNEST(pricing.list_price.tiered_rates) AS on_demand_tier WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND DATE(_PARTITIONTIME) = ( SELECT MAX(DATE(_PARTITIONTIME)) FROM `PROJECT.DATASET.cloud_pricing_export` WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) ) AND consumption_model_price.consumption_model_display_name LIKE '%Flexible Savings Plan%' AND consumption_model_price.consumption_model_id LIKE ANY ('%') ), sizing_periods AS ( SELECT period_start_date, period_end_date FROM ( SELECT period_start_date, LEAD(period_start_date) OVER (ORDER BY period_start_date) AS period_end_date FROM UNNEST(GENERATE_ARRAY(0, 3)) AS period_index, UNNEST([DATE_ADD(DATE '2026-07-01', INTERVAL period_index * 1 MONTH)]) AS period_start_date ) WHERE period_end_date IS NOT NULL ), uncovered_cost AS ( SELECT DATE(usage_start_time, 'America/Los_Angeles') AS usage_date, sku.id AS sku_id, IFNULL(price.tier_start_amount, 0) AS tier_start_usage_amount, SUM(CAST(cost AS NUMERIC) / CAST(currency_conversion_rate AS NUMERIC)) AS cost_usd FROM `PROJECT.DATASET.gcp_billing_export_resource_v1_BILLING_ACCOUNT_ID` WHERE DATE(_PARTITIONTIME) >= DATE '2026-07-01' AND IFNULL(consumption_model.applied_subscription_instance_id, '') = '' AND sku.id IN (SELECT sku_id FROM fsp_tier_price_ratios) GROUP BY ALL ), period_cost AS ( SELECT fsp_tier_price_ratios.consumption_model_id, sizing_periods.period_start_date, SUM(uncovered_cost.cost_usd) AS uncovered_on_demand_cost_usd, SUM(uncovered_cost.cost_usd * fsp_tier_price_ratios.fsp_price_ratio) AS potential_fsp_cost_usd FROM uncovered_cost JOIN sizing_periods ON uncovered_cost.usage_date >= sizing_periods.period_start_date AND uncovered_cost.usage_date < sizing_periods.period_end_date JOIN fsp_tier_price_ratios ON fsp_tier_price_ratios.sku_id = uncovered_cost.sku_id AND fsp_tier_price_ratios.tier_start_usage_amount = uncovered_cost.tier_start_usage_amount GROUP BY ALL ), fsp_consumption_models AS ( SELECT DISTINCT consumption_model_id, consumption_model_display_name FROM fsp_tier_price_ratios ) SELECT fsp_consumption_models.consumption_model_id, fsp_consumption_models.consumption_model_display_name, sizing_periods.period_start_date, sizing_periods.period_end_date, IFNULL(period_cost.uncovered_on_demand_cost_usd, 0) AS uncovered_on_demand_cost_usd, IFNULL(period_cost.potential_fsp_cost_usd, 0) AS potential_fsp_cost_usd, IFNULL(period_cost.uncovered_on_demand_cost_usd - period_cost.potential_fsp_cost_usd, 0) AS potential_savings_usd, MIN(IFNULL(period_cost.potential_fsp_cost_usd, 0)) OVER (PARTITION BY fsp_consumption_models.consumption_model_id) AS suggested_commitment_per_window_usd FROM fsp_consumption_models CROSS JOIN sizing_periods LEFT JOIN period_cost ON period_cost.consumption_model_id = fsp_consumption_models.consumption_model_id AND period_cost.period_start_date = sizing_periods.period_start_date ORDER BY consumption_model_display_name, period_start_date
替换以下内容:
PROJECT:包含 Cloud Billing 导出数据集的 Google Cloud 项目的 ID。DATASET:包含 Cloud Billing 导出表的 BigQuery 数据集的名称。BILLING_ACCOUNT_ID:您的 Cloud Billing 账号 API ID,其中连字符替换为下划线。