予算コストの把握

このトピックの内容:

予算を使用すると、次のコストが発生します。

  • コンピューティングコスト --- Snowflakeはサーバーレスのバックグラウンドタスク(MEASUREMENT_TASK と BACKFILL_TASK)を実行し、アカウント予算とアカウントのカスタム予算のクレジット使用状況データを収集します。これらのタスクに使用されたコンピューティングリソースは、アカウントに請求されます。

  • ストレージコスト --- Snowflakeは、予算のメタデータをアカウントに格納します。このメタデータのストレージは、お客様のアカウントに請求されます。

コンピューティングコストの調査

サーバーレスタスクのコストは、 Snowsight またはAccount Usage SERVERLESS_TASK_HISTORY ビュー を使用して表示できます。

注釈

オブジェクトタグを追加または削除すると、MEASUREMENT_TASK タスクが実行され、タスクの実行に必要なサーバーレスコンピューティングのコストが発生します。

例:すべての予算のコンピューティングコスト

以下の例は、過去28日間の測定タスクのクレジット使用状況を合計しており、予算を使用する際のコンピューティングコストの合計を理解するのに役立ちます。

SELECT SUM(credits_used)
   FROM snowflake.account_usage.serverless_task_history
   WHERE task_name = '_MEASUREMENT_TASK'
     AND start_time >= DATEADD('day', -28, current_timestamp());
Copy
例:各予算のコンピューティングコスト

次の例では、アカウント内の予算と、指定された期間内の各予算に関連するコンピューティングコストが一覧表示されています。

WITH costs AS (
  SELECT instance_id, SUM(credits_used) AS sum_credits
    FROM snowflake.account_usage.serverless_task_history
    WHERE start_time >= DATE_TRUNC('month',  CURRENT_TIMESTAMP())
      AND instance_id IS NOT NULL
   GROUP BY 1)
SELECT ci.name, ci.schema_name, ci.database_name, costs.sum_credits
FROM snowflake.account_usage.class_instances ci
  JOIN costs
    ON costs.instance_id = ci.id
WHERE class_name = 'BUDGET' AND class_database_name = 'SNOWFLAKE' AND deleted IS NULL;
Copy

ストレージコストの調査

予算に必要なデータとメタデータは、次の内部テーブルに格納されます。

  • CONFIGURATION_TABLE

  • MEASUREMENT_TABLE

  • NOTIFICATION_TABLE

  • BUDGET_HOT_USAGE_DATA

  • BUDGET_COLD_USAGE_DATA

これらのテーブルに関連するコストを見積もるには、アカウント使用状況または組織の使用状況スキーマでTABLESビューをクエリし、テーブルに使用されるストレージの量を返すことができます。

次の例は、現在のアカウントの予算に関連付けられた内部テーブルに使用されているストレージの合計を返します。

SELECT SUM(bytes)
   FROM snowflake.account_usage.tables
   WHERE table_name IN (
      '_CONFIGURATION_TABLE',
      '_MEASUREMENT_TABLE',
      '_NOTIFICATION_TABLE',
      '_BUDGET_HOT_USAGE_DATA',
      '_BUDGET_COLD_USAGE_DATA');
Copy