CREATE RESOURCE MONITOR¶
新しい リソースモニター を作成します。このコマンドは、アカウント管理者のみが実行できます。
- こちらもご参照ください:
ALTER RESOURCE MONITOR , DROP RESOURCE MONITOR , SHOW RESOURCE MONITORS , ALTER WAREHOUSE , ALTER ACCOUNT
構文¶
CREATE [ OR REPLACE ] RESOURCE MONITOR [ IF NOT EXISTS ] <name> WITH
[ CREDIT_QUOTA = <number> ]
[ FREQUENCY = { MONTHLY | DAILY | WEEKLY | YEARLY | NEVER } ]
[ START_TIMESTAMP = { <timestamp> | IMMEDIATELY } ]
[ END_TIMESTAMP = <timestamp> ]
[ NOTIFY_USERS = ( <user_name> [ , <user_name> , ... ] ) ]
[ TRIGGERS triggerDefinition [ triggerDefinition ... ] ]
条件:
triggerDefinition ::= ON <threshold> PERCENT DO { SUSPEND | SUSPEND_IMMEDIATE | NOTIFY }
必須パラメーター¶
name
リソースモニターの識別子。アカウントに対して一意である必要があります。
識別子はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
CREDIT_QUOTA = num
頻度間隔ごとにリソースモニターに割り当てられたクレジットの数。モニターに割り当てられたすべてのウェアハウスの合計使用量が現在の頻度間隔でこの数に達すると、リソースモニターはクォータの100%にあると見なされます。
リソースモニターに値が指定されていない場合、モニターにはクォータがなく、指定された間隔内で使用率が100%に達することはありません。
デフォルト: 値なし(つまり、クレジットクォータなし)
FREQUENCY = MONTHLY | DAILY | WEEKLY | YEARLY | NEVER
クレジット使用状況が
0
にリセットされる頻度間隔。リソースモニターの頻度を設定する場合は、
START_TIMESTAMP
も設定する必要があります。頻度を
NEVER
に指定した場合、ウェアハウスのクレジット使用状況はリセットされません。デフォルト: 値なし(つまり、各暦月の初めにクレジットクォータがリセットされる従来の動作)
START_TIMESTAMP = timestamp | IMMEDIATELY
リソースモニターが割り当てられたウェアハウスのクレジット使用状況のモニタリングを開始する日時。
リソースモニターのタイムスタンプを設定する場合は、
FREQUENCY
も設定する必要があります。開始タイムスタンプに
IMMEDIATELY
を指定すると、現在のタイムスタンプが使用されます。時刻なしで日付を指定すると、現在の時刻が使用されます。
タイムゾーンを指定せずに時間を設定すると、デフォルトのタイムゾーンとして UTC が使用されます。
デフォルト: 値なし(つまり、リソースモニターがウェアハウスのモニターをすぐに開始する従来の動作)
END_TIMESTAMP = timestamp
リソースモニターが割り当てられたウェアハウスを中断する日時。
デフォルト: 値なし(つまり、ウェアハウスの一時停止日なし)
NOTIFY_USERS = ( user_name [ , user_name , ... ] )
リソースモニターで電子メール通知を受信する、ユーザーのリストを指定します。ユーザー識別子にスペースや特殊文字が含まれている場合、または大文字と小文字が区別される場合は、IDを二重引用符で囲む必要があります(例:"Mary Smith")。詳細については 識別子の要件 をご参照ください。
ユーザー識別子
user_name
は、 SHOW USERS の出力からのname
列の値です。リストされている各ユーザーは、確認済みのメールアドレスを持っている必要があります。ウェブインターフェイスでメールアドレスを確認する手順については、以下をご参照ください。
Classic Console の場合は、 従来のコンソールにおけるメールアドレスの確認。
Snowsight の場合は、 メールアドレスの確認。
管理者以外のユーザーの電子メール通知は、管理者の電子メール通知を置き換えるものではありません。 有効な電子メール通知 を持つアカウント管理者は、引き続き電子メール通知を受信します。
注釈
管理者以外のユーザーには、次の制限が適用されます。
管理者以外のユーザーには電子メールで通知されますが、 Classic Console に通知を表示することはできません。
管理者以外のユーザーは、リソースモニターを作成できません。
通知は、個別のウェアハウスのリソースモニターに限定されます。管理者以外のユーザーは、アカウントレベルのリソースモニターに関する通知を受信できません。
管理者以外のユーザーには、アカウントレベルのリソースモニターについて通知することはできません。
管理者以外のユーザーは、他のユーザーに通知を割り当てることはできません。
TRIGGERS ...
(別名、 アクション)リソースモニターの1つ以上のトリガーを指定します。各トリガー定義は次で構成されます。
ON threshold PERCENT
リソースモニターのクレジットクォータの割合として指定された数値。
100
より大きい値がサポートされています。現在の頻度間隔でこのしきい値に達すると、トリガーが起動します。DO SUSPEND | SUSPEND_IMMEDIATE | NOTIFY
しきい値に達したときにトリガーによって実行されるアクションを指定します。
SUSPEND
: 現在実行中のクエリの完了を許可しながら、割り当てられたすべてのウェアハウスを一時停止します。リソースモニターのクレジットクォータが増加するまで、ウェアハウスは新しいクエリを実行できません。さらに、このアクションは、自分で通知を有効にしているすべてのユーザーに通知を送信します。SUSPEND_IMMEDIATE
: 割り当てられたすべてのウェアハウスを直ちに一時停止し、ウェアハウスを使用している現在実行中のクエリまたはステートメントをキャンセルします。さらに、このアクションは、自分で通知を有効にしているすべてのユーザーに通知を送信します。NOTIFY
: 通知を(通知が有効になっているすべてのアカウント管理者に)送信しますが、他のアクションは実行しません。
デフォルト: 値なし(つまり、リソースモニターのアクションなし)
使用上の注意¶
トリガーはオプションです。ただし、アクションを実行するには、 少なくとも 1つのトリガーをリソースモニターに追加する必要があります。
各リソースモニターは、最大5つの
NOTIFY
アクショントリガーまでサポートします。作成されたリソースモニターは、モニターアクションを実行する前にウェアハウスまたはアカウントに割り当てる必要があります。
ウェアハウスをリソースモニターに割り当てるには、 ALTER WAREHOUSE (またはウェアハウスを作成している場合は CREATE WAREHOUSE)を使用します。
アカウントレベルでリソースモニターを割り当てるには、 ALTER ACCOUNT を使用します。NOTIFY_USERS パラメーターはnullにする必要があります。
アカウントで作成されたすべてのリソースモニターとその割り当てを表示するには、 SHOW RESOURCE MONITORS コマンドを使用します。コマンド出力では、アカウントまたはいずれのウェアハウスにも割り当てられていないリソースモニターの
level
列にNULL
を表示します。このため、クレジットの使用状況はモニターされていません。リソースモニターで
frequency
およびstart_timestamp
パラメーターが設定されている場合、クレジット使用状況のリセットの日はそれらのパラメーターに基づいて計算されます。クレジット使用状況が0
にリセットされる時間は、start_timestamp
で指定された時間に関係なく、12:00 AM UTC です。end_timestamp
を指定すると、その指定日時にモニターが終了し、クレジットクォータに達していなくても、割り当てられたすべてのウェアハウスがその日時に中断されます。これが発生すると、リソースモニターがそのクォータの割合に達し、即時中断アクションをトリガーしたという通知が送信されます。クォータの割合は、現在の間隔で終了日までに使用されたクレジット数を反映しており、指定されたしきい値ではない場合があります。
通知リストに管理者以外のユーザーがある場合は、以下の注意事項が適用されます。
確認済みのメールを持っていないユーザーがある場合、 SQL ステートメントは失敗します。
通知リスト内のユーザーがメールアドレスを変更し、新しいメールアドレスを確認していない場合、通知はエラーを出さずに失敗します。
通知リストは、最大5名の管理者以外のユーザーに制限されています。
アカウント管理者は、
notify_user
列の SHOW RESOURCE MONITORS の出力で管理者以外のユーザーの通知リストを表示できます。
メタデータについて、
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
重要
リソースモニターによって生成された通知を受信するには、通知リストにあるアカウント管理者および非管理者ユーザーが設定で通知を明示的に有効にする必要があります。さらに、メール通知を受信するには、ユーザーが設定で確認済みのメールを持っている必要があります。プリファレンスは、Snowflake ウェブインターフェイスでのみ設定できます。詳細については、 通知受信の有効化 をご参照ください。
例¶
3トリガーで limiter
という名前のリソースモニターを作成します。
CREATE OR REPLACE RESOURCE MONITOR limiter WITH CREDIT_QUOTA = 5000 TRIGGERS ON 75 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND ON 110 PERCENT DO SUSPEND_IMMEDIATE;
クレジットクォータの75%に達したときに、3人のユーザーに通知を送信するリソースモニターを作成します。この例では、2人のユーザーの user_name
にスペースが含まれているため、ユーザー名を二重引用符で囲む必要があります。
CREATE OR REPLACE RESOURCE MONITOR limiter WITH CREDIT_QUOTA = 5000 NOTIFY_USERS = (JDOE, "Jane Smith", "John Doe") TRIGGERS ON 75 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND ON 110 PERCENT DO SUSPEND_IMMEDIATE;