ALTER RESOURCE MONITOR¶
修改现有 资源监视器 的属性和触发器。使用此命令可以增加或减少 Credit 配额、更改调度信息或更改/替换资源监视器的触发器。
- 另请参阅:
CREATE RESOURCE MONITOR、DROP RESOURCE MONITOR、SHOW RESOURCE MONITORS、ALTER WAREHOUSE、ALTER ACCOUNT
语法¶
ALTER RESOURCE MONITOR [ IF EXISTS ] <name> [ SET { [ CREDIT_QUOTA = <num> ]
[ 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
指定要更改的资源监视器的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
SET ...
CREDIT_QUOTA = num
指定每个频率间隔分配给资源监视器的 Credit。当分配给监视器的所有仓库的总使用量在当前频率间隔内达到此数字时,资源监视器被视为达到配额的 100%。
如果没有为资源监视器指定值,则监视器没有配额,并且永远不会在指定间隔内达到 100% 的使用量。
FREQUENCY = MONTHLY | DAILY | WEEKLY | YEARLY | NEVER
Credit 使用量重置为
0
的频率间隔。如果您指定
NEVER
作为频率,则仓库的 Credit 使用量不会重置。START_TIMESTAMP = timestamp | IMMEDIATELY
资源监视器开始监控所分配仓库的 Credit 使用量的日期和时间。
如果为开始时间戳指定
IMMEDIATELY
,则使用当前时间戳。如果指定日期而不指定时间,则使用当前时间。
如果设置时间时未指定时区,则使用 UTC 作为默认时区。
END_TIMESTAMP = timestamp
资源监视器暂停分配的仓库的日期和时间。
NOTIFY_USERS = ( user_name [ , user_name , ... ] )
指定要在资源监视器上接收电子邮件通知的用户列表。如果用户标识符包含空格或特殊字符或区分大小写,则该标识符必须放在双引号内(例如 "Mary Smith")。有关详细信息,请参阅 标识符要求。
用户标识符
user_name
是 SHOW USERS 输出中name
列的值。列出的每个用户都必须具有经过验证的电子邮件地址。有关在 Web 界面中验证电子邮件地址的说明,请参阅:
对于 Classic Console:在 Classic Console 中验证您的电子邮件地址。
对于 Snowsight:验证电子邮件地址。
非管理员用户的电子邮件通知不会取代管理员的电子邮件通知。任何已 启用电子邮件通知 的账户管理员将继续接收电子邮件通知。
- :samp:`TRIGGERS ...`(即 操作)
为资源监视器指定一个或多个触发器。每个触发器定义包括:
ON threshold PERCENT`(使用百分比;支持大于 ``100`
的值):samp:`DO SUSPEND | SUSPEND_IMMEDIATE | NOTIFY`(达到阈值时执行的操作)。
有关更多详细信息,请参阅 CREATE RESOURCE MONITOR。
使用说明¶
如果资源监视器的
SUSPEND
或SUSPEND_IMMEDIATE
触发器处于活动状态,并且已达到指定频率间隔的触发阈值,从而阻止启动/恢复所有分配的仓库,则可以使用此命令将 Credit 配额增加到触发阈值以上,或者将触发器替换为具有更高阈值的新触发器。当资源监视器的 Credit 配额或触发阈值增加后,就可以启动或恢复分配的仓库。
TRIGGERS
参数 不会 累加(即,该参数会移除资源监视器的所有现有触发器并将它们替换为指定的触发器)。因此,要对现有触发器进行添加,必须指定新触发器 并 复制现有触发器。
如果在资源监视器上设置了
frequency
和start_timestamp
参数,则根据这些参数计算 Credit 使用量重置的日期。无论start_timestamp
中指定的时间如何,Credit 使用量重置为0
的时间为 12:00 AM UTC。如果指定
end_timestamp
,监控会在指定日期和时间结束,所有分配的仓库都会在该日期和时间暂停(即使没有达到 Credit 配额)。出现这种情况时,系统会发出通知,说明资源监视器的配额已达到一定百分比,并触发了“立即暂停”操作。配额百分比反映了截至结束日期当前间隔内所使用的 Credit 数,可能不是您指定的阈值。
如果通知列表中有非管理员用户,则以下说明适用:
如果通知列表中的任何用户没有 经验证的电子邮件地址,SQL 语句将失败。
如果通知列表中的任何用户更改了其电子邮件地址且未验证新的电子邮件地址,则通知将失败且不会有任何提示。
通知列表中最多只能有 5 个非管理员用户。
账户管理员可以在
notify_user
列中 SHOW RESOURCE MONITORS 的输出中查看非管理员用户的通知列表。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
为 limiter
资源监视器指定新的 Credit 配额,并用一组新的触发器替换监视器的现有触发器:
ALTER RESOURCE MONITOR limiter SET CREDIT_QUOTA=2000 TRIGGERS ON 80 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND_IMMEDIATE;
更改资源监视器,以便当 Credit 配额达到 80% 时向三个用户发送通知。在此示例中,两个用户的 user_name
包含空格,因此放在双引号内:
ALTER RESOURCE MONITOR limiter SET CREDIT_QUOTA = 2000 NOTIFY_USERS = (JDOE, "Jane Smith", "John Doe") TRIGGERS ON 80 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND_IMMEDIATE