予算をモニターする

このトピックでは、予算の支出をモニターし、特定のリソースのクレジット使用状況を追跡する予算を識別する方法について説明します。

予算をモニターするカスタムロールを作成する

管理者以外のユーザーが予算のモニターに使用できるカスタムロールを作成することで、予算のモニターを委任することができます。

アカウント予算をモニターするカスタムロールを作成する

カスタムロールを作成して、アカウント管理者以外のユーザーがアカウント予算をモニターできるようにすることができます。アカウントをモニターするためにロールに付与すべき権限とロールの包括的リストについては、 Budgetのロールと権限 をご参照ください。

注釈

この例のステートメントを実行できるのは、アカウント管理者のみです。

例えば、ロール account_budget_monitor を作成し、そのロールにアカウント予算のクレジット使用状況を表示する権限を与えます。

USE ROLE ACCOUNTADMIN;

CREATE ROLE account_budget_monitor;
 
GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE account_budget_monitor;

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE account_budget_monitor;
Copy

カスタム予算をモニターするカスタムロールを作成する

カスタムロールを作成して、アカウント管理者以外のユーザーがカスタム予算をモニターできるようにすることができます。カスタム予算をモニターするためにロールに付与すべき権限とロールの包括的なリストについては、 Budgetのロールと権限 をご参照ください。

注釈

この例では、予算所有者(OWNERSHIP権限を持つロール)のみがステートメントを実行できます。

予算所有者ロールを使用して、スキーマ budgets_db.budgets_schema の予算 my_budget をモニターする能力をカスタムロール budget_monitor に付与します。

USE ROLE custom_budget_owner;

GRANT USAGE ON DATABASE budgets_db TO ROLE budget_monitor;

GRANT USAGE ON SCHEMA budget_db.budgets_schema TO ROLE budget_monitor;

GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!VIEWER
  TO ROLE budget_monitor;

GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE budget_monitor;
Copy

予算のモニタリング

Snowsight または SQL を使用して予算をモニターできます。

Snowsight を使用した予算のモニタリング

Snowsight の Budgets ページを使用して、現在と過去の予算支出を表示できます。

注釈

Snowsight を使用して予算をモニターできるのは、 ACCOUNTADMIN ロール、または必要な権限とロールが付与されたユーザーのみです。

  1. Snowsight にサインインします。

  2. Admin » Cost Management を選択します。

  3. Budgets を選択します。

予算の Current Month ビューでは、当日までの1日あたりのクレジット使用状況を確認できます。その月の予算を超える可能性があるかどうかを確認できます。棒グラフは月末まで続き、その月の実際のクレジット使用状況に基づいた、クレジット使用状況の予測が表示されます。Spending limit 行は、予算通知がトリガーされる支出制限を示しています。

時計アイコン (表示する月)を選択すると、 Current Month またはそれ以上の期間で表示をフィルターできます。

Spend (現在のクレジット使用状況)と Interval (当月の残り時間)を比較して、支出が月予算を上回っているかどうかを確認できます。

予算アイコン Budgets または リソースアイコン Resources を選択して、ビューをフィルターできます。

  • Budgets ビューでカスタム予算を選択すると、特定の予算の詳細を確認できます。

    注釈

    カスタム予算の Service Type リストには、 Unused Resources タイプが含まれています。このサービスタイプは、予算内のオブジェクトに表示するクレジット使用状況がない場合に表示されます。これは、オブジェクトに計算コストのクレジット使用状況がない場合や、最近オブジェクトを予算に追加し、 サーバーレスバックグラウンドタスク がまだ実行されていない場合に発生する可能性があります。

  • Resources ビューでは、 Service Type、オブジェクト NameCredit Usage でフィルターとソートができます。

SQL コマンドを使用した予算のモニタリング

アカウント予算をモニターするには、必要な権限を有している必要があります。詳細については、 アカウント予算をモニターするカスタムロールを作成する をご参照ください。

アカウント予算の支出履歴を表示するには、 account_budget_monitor ロールを使用します。

USE ROLE account_budget_monitor;

CALL snowflake.local.account_root_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

サービスの種類別に支出履歴を確認することができます。8か月間のアカウント予算の検索最適化サーバーレス機能の支出履歴を表示するには、以下のステートメントを実行します。

USE ROLE account_budget_monitor;

SELECT *
   FROM table(snowflake.local.account_root_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'SEARCH_OPTIMIZATION';
Copy

カスタム予算をモニターするには、必要な権限が必要です。詳細については、 カスタム予算をモニターするカスタムロールを作成する をご参照ください。

カスタム予算の支出履歴を表示するには、 budget_monitor ロールを使用します。たとえば、スキーマ budgets_db.budgets_schema のカスタム予算 na_finance_budget の支出履歴を表示するには、以下のステートメントを実行します。

USE ROLE budget_monitor;

CALL budgets_db.budgets_schema.na_finance_budget!GET_SPENDING_HISTORY(
  TIME_LOWER_BOUND => DATEADD('days', -7, CURRENT_TIMESTAMP()),
  TIME_UPPER_BOUND => CURRENT_TIMESTAMP()
);
Copy

サービスの種類別に支出履歴を確認することができます。例えば、予算に含まれるマテリアライズドビューの1年間の支出履歴を表示するには、以下のステートメントを実行します。

USE ROLE budget_monitor;

SELECT *
   FROM table(budgets_db.budgets_schema.na_finance_budget!GET_SERVICE_TYPE_USAGE_V2(
         '2025-05', '2025-12'))
   WHERE service_type = 'MATERIALIZED_VIEW';
Copy

詳細については、 Budgetメソッド をご参照ください。

リソースを追跡する予算の識別

どの予算がリソースを追跡しているかを判断したい場合は、 SYSTEM$SHOW_BUDGETS_FOR_RESOURCE 関数を呼び出します。

例:

SELECT SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'my_db.my_schema.my_table');
Copy
+-----------------------------------------------------------------------+
| SYSTEM$SHOW_BUDGETS_FOR_RESOURCE('TABLE', 'MY_DB.MY_SCHEMA.MY_TABLE') |
|-----------------------------------------------------------------------|
| [BUDGETS_DB.BUDGETS_SCHEMA.MY_BUDGET]                                 |
+-----------------------------------------------------------------------+

関数は、リソースが追加された予算を返します。以下のいずれかの理由により、リソースを含む予算が含まれます。

  • リソースが直接予算に追加されました。

  • リソースには、予算に追加されたタグと値の組み合わせがあります。

  • リソースは、予算に追加されたオブジェクト(例えば、データベース)に属します。