定价系统表引用

重要

此功能目前以公共预览版提供。

本文概述了定价系统表,包括架构和示例查询。 通过定价表可以访问 SKU 定价的历史日志。 每次更改 SKU 价格时,都会增加一条记录。 这些日志有助于执行成本分析和监视定价更改。

可在 system.billing.list_prices 找到定价系统表。

定价表架构

定价系统表使用以下架构:

列名称 数据类型 说明 示例
price_start_time timestamp 此价格生效的时间 2023-01-01T09:59:59.999Z
price_end_time timestamp 此价格停止生效的时间 2023-01-01T09:59:59.999Z
account_id string 生成此报告的帐户的 ID 1234567890123456
sku_name string SKU 的名称 STANDARD_ALL_PURPOSE_COMPUTE
cloud string 此价格适用的云的名称。 可能的值为 AWSAZUREGCP AWSAZUREGCP
currency_code string 此价格所用的货币 USD
usage_unit string 货币化的度量单位。 DBU
pricing struct 一个结构化数据字段,其中包含按已发布的标价计算的定价信息。 关键值 default 将始终返回可用于简单估算的单个价格。 某些定价模型可能包括提供更多详细信息的其他关键值。 {"default": "0.10"}

示例查询

可以使用以下示例查询来回答有关 SKU 定价的常见问题:

有关作业成本可观测性的示例查询,请参阅使用系统表监视作业成本

查找特定日期特定 SKU 的标价

由于表中仅包含 SKU 价格变化时间的记录,因此必须查找某个日期或某个日期之前的最新价格变化。

SELECT sku_name, price_start_time, pricing.default
FROM system.billing.list_prices
WHERE sku_name = 'STANDARD_ALL_PURPOSE_COMPUTE'
AND price_start_time <= "2023-01-01"
ORDER BY price_start_time DESC
LIMIT 1

查看上一个日历月内使用特定自定义标签的所有项目的总成本

注意

请务必替换自定义标记的键和值。

SELECT SUM(usage.usage_quantity * list_prices.pricing.default) as `Total Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices
ON list_prices.sku_name = usage.sku_name
WHERE usage.custom_tags.{{ tag_key }} = {{ tag_value }}
AND usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2023-05-01" AND "2023-05-31"

查看几个月之间的价格变化

SELECT sku_name, price_start_time, pricing.default
FROM system.billing.list_prices
WHERE price_start_time BETWEEN "2023-05-01" AND "2023-07-01"

针对上一个日历月的使用情况估算附加产品成本

此查询对该时间段内的所有使用情况都应用简单百分比。 请注意,由于某些附加产品权利的管理方式,这可能与实际货币化略有不同。 将附加产品费率替换为你帐户的费率。

SELECT SUM(usage.usage_quantity * list_prices.pricing.default) * {{ add_on_rate }} as `Total Add-On Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
  WHERE usage.usage_end_time >= list_prices.price_start_time
  AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
  AND usage.usage_date BETWEEN "2024-02-01" AND "2024-02-29"