警报
计划查询返回的字段达到阈值时,你会收到警报。 使用警报来监视业务或将其与工具集成,以启动用户加入或支持工单等工作流。 警报是对计划查询的补充,但每次执行后都会检查警报的条件。
重要
- 利用带参数的查询的警报使用在 SQL 编辑器中为每个参数指定的默认值。
查看警报
若要查看警报列表,请单击边栏中的
“警报”。 默认情况下,警报按“创建者”列以时间倒序排序。 可以通过单击列标题重新对列表进行排序。
- “名称”显示每个警报的字符串名称。
- “创建者”显示创建警报的用户。
- “状态”显示警报状态是 、
OK还是UNKNOWN。TRIGGERED表示执行最后一次查询时,目标查询中的“值”列满足配置的“条件”和“阈值”。 如果警报检查“cats”是否高于 1500,则“cats”高于 1500 时将触发警报。OK表示执行最后一次查询时,“值”列不满足配置的“条件”和“阈值”。 这并不表示之前未触发“警报”。 如果“cats”值现为 1470,则警报将显示为“OK”。UNKNOWN表示 Databricks SQL 没有足够的数据,无法评估警报条件。 创建警报后将立即显示此状态,直到查询执行完毕。 如果查询结果中没有数据,或者最新查询结果中不包含配置的“值列”,也会显示此状态。

创建警报
按照以下步骤对查询的单个列创建警报。
执行下列操作之一:
- 单击边栏中的
“创建”,然后选择“警报”。 - 单击边栏中的
“警报”,然后单击“+ 新建警报”按钮。
- 单击边栏中的
搜索目标查询。

若要对多个列设置警报,需要修改你的查询。 请参阅对多个列设置警报。
在“触发时间”字段中配置警报。
- “值列”下拉列表控制计算查询结果的哪个字段。
- “条件”下拉列表控制要应用的逻辑操作。
- 使用指定的条件将“阈值”文本输入与值列进行比较。

注意
如果目标查询返回多个记录,则 Databricks SQL 警报对第一个记录起作用。 更改值列设置时,其下方会显示顶行中该字段的当前值。
在“触发时发送通知”字段中,选择触发警报时发送的通知数量:
- 仅一次:当警报状态从 更改为 时发送通知。
- 每次评估警报时:每当警报状态为 时,无论在上次评估中其状态如何,都发送通知。
- 最多每隔:最多每当警报状态在特定时间间隔内为 时发送通知。 此选项可让你避免经常触发的警报遇到通知垃圾邮件。
无论选择哪种通知设置,只要状态从
OK更改为TRIGGERED或从TRIGGERED更改为OK,你都会收到通知。 如果状态在相邻两次执行中都是TRIGGERED,则计划设置将影响你收到的通知数量。 有关详细信息,请查看通知频率。在“模板”下拉列表中,选择一个模板:
- 使用默认模板:警报通知是一条消息,其中有指向警报配置屏幕和查询屏幕的链接。
- 使用自定义模板:警报通知包括有关警报的更多特定信息。
会显示一个框,其中有输入主题和正文的字段。 任何静态内容都有效,你可合并内置模板变量:
ALERT_STATUS:已评估的警报状态(字符串)。ALERT_CONDITION:警报条件运算符(字符串)。ALERT_THRESHOLD:警报阈值(字符串或数字)。ALERT_NAME:警报名称(字符串)。ALERT_URL:警报页 URL(字符串)。QUERY_NAME:关联的查询名称(字符串)。QUERY_URL:关联的查询页 URL(字符串)。QUERY_RESULT_VALUE:查询结果值(字符串或数字)。QUERY_RESULT_ROWS:查询结果行(值数组)。QUERY_RESULT_COLS:查询结果列(字符串数组)。
例如,示例主题可以是:
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}。单击“预览”切换按钮来预览呈现的结果。
重要
若要验证模板变量是否正确呈现,预览功能很有用。 它不是最终通知内容的准确表示形式,因为每个警报目标会以不同方式显示通知。
单击“保存更改”按钮。
在“刷新”中,设置刷新计划。 警报的刷新计划独立于查询的刷新计划。
- 如果查询是“作为所有者运行”,则该查询使用警报刷新计划上的查询所有者的凭据运行。
- 如果查询是“作为观看者运行”,则该查询使用警报刷新计划上的警报创建者的凭据运行。
单击“创建警报”。
选择警报目标。
重要
如果跳过此步骤,那么在触发警报时,你将不会收到通知。

对多个列设置警报
若要基于查询的多个列设置警报,查询可实现警报逻辑,并返回一个布尔值作为警报触发阈值。 例如:
SELECT CASE WHEN drafts_count > 10000 AND archived_count > 5000 THEN 1 ELSE 0 END
FROM (
SELECT sum(CASE WHEN is_archived THEN 1 ELSE 0 END) AS archived_count,
sum(CASE WHEN is_draft THEN 1 ELSE 0 END) AS drafts_count
FROM queries) data
drafts_count > 10000 and archived_count > 5000 时,此查询将返回 1。
然后,可将警报配置为在值为 1 时触发。
通知频率
每当 Databricks SQL 检测到警报状态已从 OK 更改为 TRIGGERED 时(反之亦然),就会将通知发送到你选择的警报目标。
请思考以下示例,其中对计划每天运行一次的查询配置了警报。 下表显示了警报的每日状态。
星期一之前,警报状态为 OK。
| 日期 | 警报状态 |
|---|---|
| 星期一 | 确定 |
| 星期二 | 确定 |
| 星期三 | 已触发 |
| 星期四 | 已触发 |
| 星期五 | 已触发 |
| 星期六 | 已触发 |
| 星期日 | 确定 |
如果通知频率设置为 Just Once,则当状态从 OK 更改为 TRIGGERED 时,Databricks SQL 会在周三发送通知,反之则在周日发送通知。 它不会在周四、周五或周六发送警报,除非你专门将其配置为在这几天发送,因为警报状态在这几天执行期间没有发生变化。
配置警报权限
若要配置可管理和运行警报的人员,请查看警报访问控制。
转让警报的所有权
保存警报时,会成为警报的所有者。 如果从工作区中删除警报的所有者,则该警报将不再具有所有者。 管理员用户可以将警报的所有权转让给其他用户。 使用 Databricks SQL UI 转让所有权:
- 开启警报。
- 单击“共享”。
- 选择一名用户,然后选择“可管理”。
- 阅读提示。 如果同意,请单击“确认”。
若要使用 REST API 转让所有权,请参阅转让警报的所有权。
如果此警报以前具有所有者,则该用户不再具有对警报的“可以管理”权限,而你授予“可以管理”权限的用户现在成为所有者。