Budgetsを使用したクレジット使用状況のモニター

Budgetsを使用すると、特定のSnowflakeオブジェクトのグループに対するSnowflakeクレジット使用状況をアカウントレベルでモニターおよび通知できます。

Budgetsの概要

予算により、SnowflakeアカウントまたはSnowflakeオブジェクトのカスタムグループの コンピューティングコスト の月間支出制限を定義できます。支出制限を超えると予想される場合、通知が送信されます。この通知を電子メールアドレスのリスト、クラウドサービス(Amazon SNS、Azure Event Grid、またはGoogle Cloud PubSub)が提供するキュー、またはサードパーティシステム(例えば、Slack、Microsoft Teams、または PagerDuty)のWebhookに送信するように予算を構成することができます。

アカウント予算およびカスタム予算

アカウント予算 は、アカウント内のすべての サポートオブジェクト の支出をモニターします。

また、 カスタム予算 を作成して、サポートオブジェクトの特定のグループの支出制限を監視することもできます。

どちらのタイプの予算でも、支出制限をセットし、通知を受け取る方法を指定する必要があります。

Snowflakeで予算の使用を開始するには、 アカウント予算をアクティブ化 します。

支出制限と時間間隔

支出制限はSnowflakeクレジットで表示され、警告と通知の目的のみに使用されます。支出制限は、1暦月の時間間隔で設定されます。

時間間隔は、月の初日の12:00AM UTC で始まり、月の最終日の11:59PM UTC で終わります。予算が月の初日以降に作成された場合、最初の監視間隔は当月の最終日までの期間となり、翌月の初日にリセットされます。

月の初日以降に アカウント予算 を有効にした場合、月初からのデータがバックフィルされ、その月の支出制限を超えるかどうかを判断するために使用されます。

月の初日以降に カスタム予算 を作成した場合、その月の履歴データは バックフィルされません。将来の支出予測は、予算が有効になってから数日間のクレジットの使用状況に基づいて行われます。

注釈

月の初日以降にカスタム予算を作成した場合、初月の予算を超過する可能性があります。途中からの月では、予算が作成される前のクレジットの使用状況はカスタム予算ではバックフィルされず、間違った予測になる可能性があります。翌月以降は、支出履歴に基づいてクレジットの使用状況を正しく予測します。

サポートされているオブジェクト

サポートされるオブジェクトのリストの各オブジェクトは、すべてアカウント予算の支出制限に貢献します。カスタム予算では、監視する特定のオブジェクトのグループを選択できます。カスタム予算にオブジェクトを追加すると、予算はバックグラウンドのメンテナンス操作やサーバーレス機能を含む、オブジェクトのすべての計算コストを監視します。たとえば、カスタム予算にテーブルを追加し、そのテーブルで自動クラスタリングを有効にした場合、予算は自動クラスタリングのバックグラウンドメンテナンスのクレジット使用状況を監視します。

予算では、次のSnowflakeオブジェクトを監視できます。

オブジェクト

監視されたコスト

アラート

サーバーレスアラートはアカウント予算によって監視されます。ユーザー管理ウェアハウスを使用して実行されるアラートのクレジット使用状況を監視するには、そのウェアハウスを予算に追加する必要があります。アラートのコストについては、 警告のコストの理解 をご覧ください。

アプリ . (Snowflake Native Apps)

Snowflake Native App を予算に追加すると、クレジットを消費し、アプリによって作成され所有されるすべてのオブジェクトが自動的に予算に追加されます。これには、アプリが所有するウェアハウスや Snowpark Container Services コンピューティングプールが含まれます。共有されているウェアハウスやコンピューティングプールは、予算では自動的に追跡されませんが、手動で追加することができます。

アプリが作成し所有するオブジェクトを別の予算に追加することはできません。共有するウェアハウスやコンピューティングプールを別の予算に追加することができます。

ウェアハウスまたはコンピューティングプールがアプリによって所有されているかどうかを判断するには、以下を確認してください。

  • ウェアハウスについては、 SHOW WAREHOUSES コマンドを実行してください。 owner_role_type 列の値が APPLICATION の場合、ウェアハウスは Snowflake Native App によって所有されています。

  • コンピューティングプールの場合は、 SHOW COMPUTE POOLS コマンドを実行します。 application 列の値が NULL でない場合、コンピューティングプールは Snowflake Native App によって所有されています。

コンピューティングプール

Snowpark Container Servicesのコンピューティングプールの使用状況。詳細については、 コンピューティングプールコスト をご参照ください。

データベース

データベースを予算に追加すると、そのデータベースが含むすべてのサポート対象オブジェクトも自動的に追加されます。予算は以下のオブジェクトとサーバーレス機能のクレジット使用状況を監視します。

  • 上記のスキーマオブジェクトをサポートしています。

  • セカンダリ(レプリカ)データベースの複製。

    注釈

    複製グループまたはフェールオーバーグループで複製されるセカンダリデータベースの複製コストは、アカウント予算でのみ監視できます。

マテリアライズドビュー

マテリアライズドビューのバックグラウンドメンテナンス。詳細については、 マテリアライズドビューのコスト をご参照ください。

スキーマ

スキーマを予算に追加すると、スキーマが含むすべてのサポート対象オブジェクトも自動的に追加されます。予算は上記のようにスキーマオブジェクトのクレジット使用状況を監視します。

パイプ

Snowpipeを使用したデータ読み込み中のリソース消費。詳細については、 Snowpipeコスト をご参照ください。

テーブル

自動クラスタリング および 検索最適化 がテーブル上で有効になっている場合のバックグラウンドメンテナンス操作。

タスク

サーバーレスのタスクはカスタム予算によって監視されます。ユーザーが管理するウェアハウスを使用して実行されるタスクのクレジット使用状況を監視するには、そのウェアハウスを予算に追加する必要があります。詳細については、 タスクのコスト をご参照ください。

ウェアハウス

クエリ実行、ウェブインターフェイス、その他の機能(仮想ウェアハウスのクレジット使用状況 を参照)、サーバーレスタスク、 クラウドサービスのコンピューティング のためのコンピューティングリソース。

サポートされるサーバーレス機能

Budgetsにより、予算に含まれるサポートされたサーバーレス機能のクレジット使用状況がモニターされます。次の表は、クレジット使用状況を監視するためのサーバーレス機能とアカウントおよびカスタム予算のサポート一覧です。

注釈

サーバーレス機能のアカウント予算のサポートは、Account Usage METERING_HISTORY ビュー ビューのサービスタイプの可用性に依存します。

サーバーレス機能

アカウント予算

カスタム予算

オブジェクト

AI_SERVICES

AUTO_CLUSTERING

テーブル

COPY_FILES

DATA_QUALITY_MONITORING

テーブル

HYBRID_TABLE_REQUESTS

MATERIALIZED_VIEW

マテリアライズドビュー

PIPE

パイプ

QUERY_ACCELERATION

QUERY_ACCELERATION_READER

REPLICATION

データベース

SEARCH_OPTIMIZATION

テーブル

SERVERLESS_ALERTS

アラート

SERVERLESS_TASK

タスク

SNOWPARK_CONTAINER_SERVICES

コンピューティングプール

SNOWPIPE_STREAMING

テーブル

WAREHOUSE_METERING

ウェアハウス

WAREHOUSE_METERING_READER

ウェアハウス

予算の通知

予算により、時系列予測に基づき、現在の支出が支出制限を超えそうな場合、毎日アラート通知が送信されます。支出予定額が支出限度額を10%以上上回った時点で通知が始まる。

以下は、メールで送信される通知の例です。

予算通知メールの例

注釈

メール通知は、SnowflakeのAmazon Web Services(AWS)デプロイメントで、 AWS Simple Email Service(SES)を使用して処理されます。AWS を使用して送信されたメールメッセージのコンテンツは、メッセージの配信を管理するために最大30日間Snowflakeによって保持される場合があります。この期間を過ぎると、メッセージのコンテンツは削除されます。

自動アラート通知を受け取るには、 アカウント予算をアクティベートし、カスタム予算を作成する 一環として、以下を行う必要があります。

  • 予算の支出制限を設定する。

  • 予算に関する通知を受け取る方法を指定します。

Budgetのロールと権限

アカウント内のカスタムロールが予算を操作できるようにするには、以下のロールと権限を付与します。

アカウント予算を管理するアプリケーションロール

アカウントのカスタムロールに次のアプリケーションロールを付与し、アカウント予算を変更または監視できます。

アプリケーションロール

説明

BUDGET_VIEWER

ロールが予算使用データを表示し、予算内のリソースを一覧表示できるようにします。

BUDGET_ADMIN

ロールがアカウント予算を有効化または無効化し、支出制限、使用する通知統合、通知を受け取るメールアドレスのリスト、通知のミュート設定など、予算のプロパティを変更できるようにします。

アプリケーションロールに加えて、カスタムロールがアカウント予算を監視または管理できるようにするために付与すべきその他の必要権限があります。詳細については、 予算のロールと権限 をご参照ください。

カスタム予算を管理するインスタンスロール

各カスタム予算にはインスタンスロールがあり、他のロールに付与して予算を表示または変更できます。

インスタンスロール

説明

VIEWER

ロールが予算使用状況データを表示できるようにします。

ADMIN

ロールが、支出制限、使用する通知統合、通知を受け取るメールアドレスのリスト、ミュート通知設定、グループ内のオブジェクトを含む、予算のプロパティを変更できるようにします。

インスタンスロールに加えて、カスタムロールがカスタム予算を作成、監視、または変更できるようにするために付与すべきその他の必要権限があります。詳細については、 予算のロールと権限 をご参照ください。

予算のロールと権限

アプリケーションロールまたはインスタンスロールに加えて、予算を監視または管理するカスタムロールには以下の権限を付与する必要があります。

権限またはロール

予算タイプ

作成する

管理する

モニター

メモ

USAGE_VIEWER

両方

Snowflakeデータベースロール USAGE_VIEWER をカスタムロールに付与します。

USAGE

カスタム

カスタム予算を含むデータベースでUSAGE権限を付与します。

USAGE

カスタム

カスタム予算を含むスキーマにUSAGE権限を付与します。

SNOWFLAKE.BUDGET_CREATOR

カスタム

このデータベースロールをカスタムロールに付与して、カスタム予算を作成できるようにします。

CREATE SNOWFLAKE.CORE.BUDGET

カスタム

カスタム予算を含むスキーマにこの権限を付与します。

APPLYBUDGET

カスタム

カスタム予算から追加または削除する各オブジェクトに付与する必要があります。

USAGE

カスタム

カスタム予算からスキーマオブジェクトを追加または削除するには、オブジェクトを含むデータベースとスキーマにこの権限を付与する必要があります。

詳細と例については、次のトピックをご参照ください。

制限事項

以下はBudgetsに関する制限事項です。

  • BUDGET クラスのインスタンスをターゲットアカウントに 複製 することはできません。

  • アカウントには最大100件のカスタム予算を含めることができます。

  • 現在、Budgetsは ハイブリッドテーブル のコストのモニタリングをサポートしていません。

  • 以下のアカウントレベルのパラメーターは、セットしないかデフォルト値にセットする必要があります。

    • AUTOCOMMIT はセットしないか、 TRUE にセットする必要があります。

      このパラメーターが FALSE にセットされている場合、予算のアクティブ化に失敗したり、使用状況が正しくトラッキングされなかったりする可能性があります。

    • TIMESTAMP_INPUT_FORMAT はセットしないか、 AUTO にセットする必要があります。

      このパラメーターが AUTO にセットされていない場合、使用状況が正しくトラッキングされない可能性があります。

    予算を有効にする前に、 SHOW PARAMETERS コマンドを実行し、 これらのパラメーターの値を確認 してください。

    SHOW PARAMETERS LIKE 'AUTOCOMMIT' IN ACCOUNT;
    
    Copy
    SHOW PARAMETERS LIKE 'TIMESTAMP_INPUT_FORMAT' IN ACCOUNT;
    
    Copy

    注釈

    これらのパラメーターはアカウントレベルでセットする必要があります。より低いレベル(例えばセッションレベル)でパラメーターをセットしても、予算のアクティブ化や使用状況のトラッキングには影響しません。