Resource Monitorは、SnowflakeのVirtual Warehouseが消費するクレジットを監視し、閾値に達したときに通知やWarehouseのサスペンドを自動実行するコスト管理機能です。 予期しないクエリの暴走やWarehouseの停止忘れによるコスト超過を防止します。
この記事では、CREATE RESOURCE MONITORのSQL構文・閾値アクション(Notify / Suspend / Suspend Immediately)の動作・アカウントレベルとWarehouseレベルの割り当て方法を解説します。SnowPro Core試験のPerformance Conceptsドメインで頻出するトピックです。
Resource MonitorはVirtual Warehouseのクレジット消費量を定期的に監視し、設定した閾値に達したときにアクション(通知・サスペンド)を実行します。アカウントレベル(全Warehouseの合計クレジット)または個別Warehouseレベルで適用できます。
Resource Monitorの3つの主要パラメータは以下の通りです。
-- 基本的なResource Monitorの作成
CREATE OR REPLACE RESOURCE MONITOR monthly_cost_monitor
WITH
CREDIT_QUOTA = 500
FREQUENCY = MONTHLY
START_TIMESTAMP = IMMEDIATELY
TRIGGERS
ON 50 PERCENT DO NOTIFY
ON 80 PERCENT DO NOTIFY
ON 95 PERCENT DO SUSPEND
ON 100 PERCENT DO SUSPEND_IMMEDIATELY;上記の例では、月間クレジット上限を500に設定し、50%・80%で通知、95%でSuspend(実行中クエリ完了待ち)、100%でSuspend Immediately(即座にサスペンド)を実行します。
| アクション | 動作 | 実行中クエリ | ユースケース |
|---|---|---|---|
| NOTIFY | 通知のみ(Warehouseは停止しない) | 影響なし | 早期警告。50〜80%の閾値に設定 |
| SUSPEND | 実行中クエリの完了を待ってからWarehouseをサスペンド | 完了まで実行される | 本番環境。90〜95%の閾値に設定 |
| SUSPEND_IMMEDIATELY | 実行中クエリを即座にキャンセルしてWarehouseをサスペンド | 即座にキャンセル(エラー終了) | テスト環境・緊急停止。100%の閾値に設定 |
NOTIFYアクションの通知先はアカウント管理者(ACCOUNTADMINロールのユーザー)で、Snowsightの通知バナーとメールで配信されます。カスタムの通知先を設定するにはアラート統合(Alert Integration)を使用します。
-- アカウントレベルで適用(全Warehouseの合計クレジットを監視)
ALTER ACCOUNT SET RESOURCE_MONITOR = monthly_cost_monitor;アカウントレベルのResource Monitorは、アカウント内の全Virtual Warehouseが消費するクレジットの合計を監視します。組織全体のコスト上限を設定する場合に使用します。
-- 個別Warehouseに適用
ALTER WAREHOUSE etl_wh SET RESOURCE_MONITOR = etl_monitor;
ALTER WAREHOUSE analytics_wh SET RESOURCE_MONITOR = analytics_monitor;
-- Warehouse作成時にResource Monitorを指定
CREATE WAREHOUSE dev_wh
WAREHOUSE_SIZE = 'XSMALL'
RESOURCE_MONITOR = dev_monitor
AUTO_SUSPEND = 300
AUTO_RESUME = TRUE;Warehouseレベルでは、特定のWarehouseのクレジット消費のみを監視します。ETL用・分析用・開発用など用途別にWarehouseを分離し、それぞれに異なるクレジット上限を設定する運用が一般的です。
| 機能 | 監視対象 |
|---|---|
| Virtual Warehouse | ○(クレジット消費を監視) |
| Cloud Services Layer | ×(日次消費がWarehouse消費の10%を超えた分のみ課金・監視対象外) |
| Snowpipe | ×(サーバーレスコンピュート・監視対象外) |
| Automatic Clustering | ×(サーバーレスコンピュート・監視対象外) |
| Materialized View | ×(自動メンテナンス・監視対象外) |
| Search Optimization | ×(サーバーレスコンピュート・監視対象外) |
| ストレージ | ×(ストレージコストは監視対象外) |
-- Resource Monitorの一覧確認
SHOW RESOURCE MONITORS;
-- Resource Monitorの設定変更
ALTER RESOURCE MONITOR monthly_cost_monitor
SET CREDIT_QUOTA = 800;
-- Resource Monitorの削除
DROP RESOURCE MONITOR dev_monitor;
-- 特定Warehouseからの割り当て解除
ALTER WAREHOUSE etl_wh UNSET RESOURCE_MONITOR;Resource Monitor
問題 1
Resource MonitorのTRIGGERSでSUSPENDアクションを設定した場合の動作として正しいものはどれですか?
正解: C
SUSPENDアクションは、閾値に達した時点で新しいクエリの受け付けを停止し、実行中のクエリが完了するのを待ってからWarehouseをサスペンドします。実行中のクエリは正常に完了します。即座にキャンセルするのはSUSPEND_IMMEDIATELYアクションです(Aは誤り)。通知のみ行うのはNOTIFYアクションです(Bは誤り)。Warehouseサイズの自動縮小機能はResource Monitorには含まれません(Dは誤り)。
Resource MonitorはServerless機能のクレジットも監視できますか?
いいえ。Resource MonitorはVirtual Warehouseのクレジット消費のみを監視対象としています。Snowpipe・Automatic Clustering・Materialized Viewの自動メンテナンス・Search Optimization Serviceなどのサーバーレスコンピュートのクレジットは監視対象外です。サーバーレス機能のコストを把握するには、ACCOUNT_USAGEスキーマのMETERING_HISTORY(Snowpipe)・AUTOMATIC_CLUSTERING_HISTORY・MATERIALIZED_VIEW_REFRESH_HISTORY等のビューを使用します。試験では「Resource Monitorが監視する範囲」と「監視しない範囲」を問う問題が出題されます。
Resource Monitorの作成に必要なロールは何ですか?
Resource Monitorの作成にはACCOUNTADMINロールが必要です。SYSADMINやカスタムロールではCREATE RESOURCE MONITORを実行できません。ただし、ACCOUNTADMINが他のロールにMONITOR権限をGRANTすれば、そのロールでResource Monitorの閾値や通知のステータスを確認できます。また、Resource Monitorをアカウントレベルで適用する(ALTER ACCOUNT SET RESOURCE_MONITOR)のもACCOUNTADMINの権限が必要です。Warehouse個別への適用(ALTER WAREHOUSE SET RESOURCE_MONITOR)は、ACCOUNTADMINまたはそのWarehouseのOWNERが実行できます。
Suspend ImmediatelyとSuspendの違いは何ですか?
Suspendは実行中のクエリの完了を待ってからWarehouseをサスペンドします。つまり、閾値到達時に実行中のクエリは最後まで実行され、その後Warehouseが停止します。Suspend Immediatelyは実行中のクエリを即座にキャンセルしてWarehouseをサスペンドします。実行中のクエリはエラーで終了します。本番環境ではSuspend(実行中クエリ完了を待つ)を使い、テスト環境やコスト超過のリスクが高い場合にSuspend Immediatelyを使用するのが一般的です。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...