課金利用明細書の照合

Snowflakeは、少なくとも1つの有効な契約を結んでいるお客様を対象に、Snowflake Order Formとも呼ばれる 請求利用明細書 を生成します。

このトピックでは、クエリを使用して、 組織の利用状況スキーマ の請求ビューにある使用量データと明細を照合する方法について説明します。これらのクエリは、 ORGADMIN ロールを有効にしたアカウントで、 ACCOUNTADMIN ロールを使用して実行する必要があります。

注釈

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を返しますが、usage文の値は0以外の数字になる可能性があります。これは既知の不一致であり、将来のアップデートで対処される予定です。

契約の総使用量の照合

Snowflakeは、契約開始以降に使用された金額を記録し、この金額を使用明細の集計セクションにある「消費合計」として分類します。この消費は、消費されたクレジットではなく、消費された通貨で追跡されます。

次のクエリを使用して、使用明細書に表示された合計消費量を 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

アカウント別の月間使用量合計の照合

明細書の「月間使用量」には、組織内の各アカウントの行項目が含まれています。各項目は、その月の合計使用量を示しています。クレジットの消費量と使用金額が通貨で表示されます。

以下のクエリを使用して、各アカウントの月間使用量合計を 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 の自動クラスタリング使用量とは別の行に表示されます。各行には、消費されたクレジット数と消費金額が通貨で表示されます。

以下のクエリを使用して、明細書の「月間使用量」セクションに表示されている個々の使用量カテゴリを、 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内のリージョンには異なる命名規則があります。先のクエリによって返されたリージョンの名前は、使用状況ステートメントの「月間使用量」セクションに表示されているものと一致しないかもしれませんが、同じリージョンを参照しています。これは既知の不一致であり、将来のアップデートで対処される予定です。