核对账单使用情况报表

Snowflake 为至少有一份有效合同(也称为 Snowflake 订购单)的客户生成 账单使用情况报表

本主题介绍如何使用查询将报表与 组织使用架构 的账单视图中的使用数据进行核对。您需要使用 ACCOUNTADMIN 角色在已启用 ORGADMIN 角色的账户中执行这些查询。

备注

执行查询以核对 2024 年 3 月 1 日之前产生的使用量时,查询的结果可能与使用情况报表中的结果略有不同。在此日期之前,某些账单视图未对值进行四舍五入以匹配使用情况报表。例如,在 2024 年 3 月 1 日之前:

  • 0.001 美元或 -0.001 美元的使用量未包含在使用情况报表中,但包含在账单视图中。

  • 在使用情况报表中,1.004 美元的使用量向下舍入为 1.00 美元,但在账单视图中却没有。

  • 在使用情况报表中,1.006 美元的使用量向上舍入为 1.01 美元,但在账单视图中却没有。

查询结果和使用情况报表之间的差异很小,从几美分到不到 10 美元不等,具体取决于合同的有效时间。

核对剩余余额

签订合同的 Snowflake 客户预先承诺支付指定的使用量(即容量承诺)的费用。当客户使用 Snowflake 时,所花费的货币将从此容量承诺中扣除。每哥使用情况报表的摘要部分确定了合同的剩余余额,其计算方法是从原始容量承诺中减去自合同开始以来的总使用量来计算得出。

使用以下查询将使用情况报表中显示的剩余余额与 REMAINING_BALANCE_DAILY 视图 中的数据进行核对。将日期替换为使用情况报表中显示的当月的最后一天。

SELECT date,
       contract_number,
       (capacity_balance + free_usage_balance + rollover_balance) AS remaining_balance
  FROM snowflake.organization_usage.remaining_balance_daily
  WHERE TRUE
    AND date = LAST_DAY(TO_DATE('2024-01-01'));
Copy

备注

如果合同的订阅期限已结束,则前面的查询会正确返回 0,但使用情况报表中的值可能是非零的数字。这是一个已知的差异,将在未来的更新中解决。

核对合同的总使用量

Snowflake 会记录自合同签订以来在使用量上花费的金额,并将该金额归类为总使用量,该金额可在使用情况报表的摘要部分找到。此消耗按所花费的货币进行跟踪,而不是按使用的 Credit 进行跟踪。

使用以下查询将使用情况报表中显示的总使用量与 USAGE_IN_CURRENCY_DAILY 视图 中的数据进行核对。查询返回的总使用量不包括其 balance_sourceoverage 的使用量。将日期替换为使用情况报表中显示的当月的最后一天。

SELECT contract_number,
       SUM(usage_in_currency) AS total_consumed
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_date <= LAST_DAY(TO_DATE('2024-01-01'))
    AND LOWER(balance_source) != 'overage'
  GROUP BY 1
  ORDER BY 1;
Copy

核对每个账户的每月总使用量

报表的每月使用量部分包括组织中每个账户的行项目。每个行项目都显示账户当月的总使用量。它显示使用了多少 Credit 以及以按货币计算的花费金额。

使用以下查询将每个账户的每月总使用量与 USAGE_IN_CURRENCY_DAILY 视图 中的数据进行核对。查询返回的总使用量不包括其 balance_sourceoverage 的使用量。将日期替换为使用情况报表中显示的当月的最后一天。

SELECT contract_number,
       DATE_TRUNC(month, usage_date) AS usage_month,
       CONCAT(account_locator,'-',region) AS account_name,
       SUM(usage_in_currency) AS total_consumed,
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_month = DATE_TRUNC(month,to_date('2024-01-01'))
    AND LOWER(balance_source) != 'overage'
  GROUP BY 1,2,3
  ORDER BY 1,2,3;
Copy

备注

Snowflake 中的区域有不同的命名规范。前面查询返回的区域名称可能与您在使用情况报表的每月使用量部分中看到的名称不匹配,但它指的是同一个区域。这是一个已知的差异,将在未来的更新中解决。

核对每种使用类型

Snowflake 的使用量可以归因于不同的功能和 架构组件。报表的每月使用量部分根据使用量来源逐项列出使用量,并按使用发生的账户分组。例如,归因于账户 account_1 中自动群集的使用量与账户 account_2 中的自动群集使用量显示在不同的行上。每行显示使用了多少 Credit 以及以货币形式计算的花费金额。

使用以下查询将报表的每月使用量部分中显示的各个使用类别与 USAGE_IN_CURRENCY_DAILY 视图 中的数据进行核对。与报表一样,每种类型的使用量在查询结果中按账户分组。将日期替换为使用情况报表中显示的当月的最后一天。

SELECT contract_number,
       DATE_TRUNC(month, usage_date) AS usage_month,
       CONCAT(account_locator,'-',region) AS account_name,
       usage_type AS usage_category,
       SUM(usage) AS units_consumed,
       SUM(usage_in_currency) AS total_usage
  FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE TRUE
    AND usage_month = DATE_TRUNC(month, TO_DATE('2024-01-01'))
  GROUP BY 1,2,3,4
  ORDER BY 1,2,3,4;
Copy

备注

Snowflake 中的区域有不同的命名规范。前面查询返回的区域名称可能与您在使用情况报表的每月使用量部分中看到的名称不匹配,但它指的是同一个区域。这是一个已知的差异,将在未来的更新中解决。

语言: 中文