ALTER ALERT¶
修改现有警报的属性并暂停或恢复现有 警报。
语法¶
ALTER ALERT [ IF EXISTS ] <name> { RESUME | SUSPEND };
ALTER ALERT [ IF EXISTS ] <name> SET
[ WAREHOUSE = <string> ]
[ SCHEDULE = '{ <number> MINUTE | USING CRON <expr> <time_zone> }' ]
[ COMMENT = '<string_literal>' ]
ALTER ALERT [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER ALERT [ IF EXISTS ] <name> UNSET
[ WAREHOUSE ]
[ COMMENT ]
ALTER ALERT <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER ALERT [ IF EXISTS ] <name> MODIFY CONDITION EXISTS (<condition>)
ALTER ALERT [ IF EXISTS ] <name> MODIFY ACTION <action>
参数¶
name要更改的警报的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
{ RESUME | SUSPEND }指定要对警报执行的操作:
RESUME使暂停的警报处于活动状态。SUSPEND将警报置于“已暂停”状态。
如果按照间隔(即
num MINUTE)设置警报计划,则为避免含糊不清,计划的 * 基本间隔时间 * 将重置为恢复警报时的当前时间。基本间隔时间从当前时钟时间开始间隔计数器。例如,如果使用
10 MINUTE创建警报并在 9:03 AM 恢复警报,则在 9:13 AM、9:23 AM 等时间运行警报。请注意,我们尽最大努力确保绝对精度,但仅保证警报不会在设定的时间间隔发生 之前 执行(例如,在当前示例中,刷新可以首先在上午 9:14 AM 运行,但绝对不会在上午 9:12 AM 运行)。SET ...指定要为警报设置的一个(或多个)属性(用空格、逗号或换行符分隔)。
WAREHOUSE = warehouse_nameSpecifies the virtual warehouse that provides compute resources for executing this alert.
备注
对于 无服务器警报,请勿设置此属性。
SCHEDULE ...指定定期评估警报条件的计划。
创建警报时,省略此参数或将其设置为 NULL 会创建 新数据警报。
对于计划警报,您可以用以下方法之一指定计划:
USING CRON expr time_zone指定用于定期评估警报条件的 Cron 表达式和时区。支持标准 cron 实用程序语法的子集。
cron 表达式由以下字段组成:
# __________ minute (0-59) # | ________ hour (0-23) # | | ______ day of month (1-31, or L) # | | | ____ month (1-12, JAN-DEC) # | | | | _ day of week (0-6, SUN-SAT, or L) # | | | | | # | | | | | * * * * *
支持以下特殊字符:
特殊字符
描述
*通配符。为给定字段指定警报时,警报将在该字段的每个时间单位运行。
例如,月份字段中的
*指定警报每月运行一次。L代表“last”。在星期几字段中使用时,它允许您指定结构,例如给定月份的“最后一个星期五”(“5L”)。在日期字段中,它指定该月的最后一天。
/n指示给定时间单位的第
n个实例。每个时间量子都是独立计算的。例如,如果在月份字段中指定
4/3,则条件评估计划为 4 月、7 月和 10 月(即每 3 个月一次,从一年中的第 4 个月开始)。在随后的几年中保持相同的计划。也就是说,条件不会计划在 1 月(10 月运行后 3 个月)评估。
备注
cron 表达式当前仅根据指定的时区进行计算。更改账户的 TIMEZONE 参数值(或在用户或会话级别设置该值) :emph:` 不会 ` 更改警报的时区。
Cron 表达式定义用于评估警报条件的所有 有效 时间。Snowflake 尝试基于此计划评估条件;但是,如果在下一个有效运行时间开始之前未完成上一次运行,则跳过任何有效运行时间。
当 Cron 表达式中同时包含一个月中的特定某一天和一周中的某一天时,条件评估将安排在满足该月中的某一天 或 一周中的某一天的日期。例如,
SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'计划在该月的第 10 天到第 20 天的任何一天以及这些日期之外的任何星期二或星期四的 0AM 进行评估。
num MINUTE指定在警报评估之间插入的等待时间间隔(以分钟为单位)。仅接受正整数。
还支持
num M语法。为避免歧义,在恢复警报时设置 *基本间隔时间*(使用 ALTER ALERT ...RESUME)。
基本间隔时间从当前时钟时间开始间隔计数器。例如,如果使用
10 MINUTE创建警报并在 9:03 AM 恢复警报,则在 9:13 AM、9:23 AM 等评估警报的条件。请注意,我们尽最大努力确保绝对精度,但仅保证条件不会在设定的时间间隔发生 之前 评估(例如,在当前示例中,条件可以首先在 9:14 AM 评估,但绝对不会在 9:12 AM 评估)。备注
支持的最大值为
11520(8 天)。具有较大num MINUTE值的警报永远不会评估其条件。
COMMENT = 'string_literal'指定警报的注释。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 Tag quotas。
UNSET ...指定要为警报取消设置的一个(或多个)属性/参数,这会将它们重置回默认值:
WAREHOUSECOMMENTTAG tag_key [ , tag_key ... ]
MODIFY CONDITION EXISTS (condition)指定应表示警报条件的 SQL 语句。您可以使用以下命令:
如果语句返回一行或多行,则执行警报操作。
MODIFY ACTION action指定在条件返回一行或多行时应执行的 SQL 语句。
要发送通知,您可以 调用 SYSTEM$SEND_EMAIL 或 SYSTEM$SEND_SNOWFLAKE_NOTIFICATION 存储过程。
访问控制要求¶
要执行此 SQL 命令,需要至少具有以下 :ref:` 权限 <label-access_control_overview_privileges>` 的 :ref:` 角色 <label-access_control_overview_roles>`:
恢复警报:
要暂停警报,执行 ALTER ALERT 的角色必须对警报具有 OPERATE 或 OWNERSHIP 权限。
要修改警报的属性,执行 ALTER ALERT 的角色必须对警报 OWNERSHIP 权限。
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
当警报恢复时,Snowflake 会验证具有警报的 OWNERSHIP 权限的角色是否也对分配给警报的仓库具有 USAGE 权限,以及全局 EXECUTE ALERT 权限;如果没有,则会产生错误。
只有账户管理员(具有 ACCOUNTADMIN 角色的用户)可以向角色授予全局 EXECUTE ALERT 权限。为便于使用,我们建议创建自定义角色(例如 alert_admin),并为该角色分配 EXECUTE ALERT 权限。然后,任何可以授予权限的角色(例如 SECURITYADMIN 或任何具有 MANAGE GRANTS 权限的角色)均可将此自定义角色授予任何警报所有者角色,以允许其修改自己的警报。有关创建自定义角色和角色层次结构的说明,请参阅 配置访问控制。
执行 CREATE ALERT 或 ALTER ALERT 时,不会对条件和操作中的语句执行某些验证检查,包括:
对象标识符的解析。
表达式的数据类型的解析。
对函数调用中实参的数量和类型的验证。
如果条件或操作的 SQL 语句指定了无效的标识符、不正确的数据类型、不正确的函数实参数量和类型等,则 CREATE ALERT 和 ALTER ALERT 命令不会失败。相反,在执行警报时会发生故障。
要检查现有警报中的故障,请使用 ALERT_HISTORY 表函数。
要避免这些类型的失败,在指定警报的条件和操作之前,请验证这些条件和操作的 SQL 表达式和语句。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
请参阅 暂停和恢复警报。