重要
此功能在 Beta 版中。
本页提供了有关启用和使用 Databricks SQL 警报的分步指南,以自动执行查询、评估自定义条件,并在满足这些条件时传递通知。 使用警报,可以主动监视业务数据,并在报告值超出预期阈值时及时接收通知。 计划警报时,会运行其关联的查询,并检查警报条件,而不考虑基础查询上的任何现有计划。 此外,还可以访问警报历史记录来查看过去警报评估的结果。
若要了解如何改用旧警报,请参阅 什么是旧警报?。
在工作区中启用警报
对于大多数客户,工作区管理员可以从 预览页面控制对此预览版的工作区访问权限。 如果在工作区中看不到此版本的警报,请联系 Databricks 帐户团队。
启用此预览不会影响现有警报;可以并行使用这些警报和旧警报。
查看和整理警报
单击边栏中的 警报 以打开警报列表页。
默认情况下,“ 警报 ”选项卡处于打开状态,并显示工作区中的所有警报。 可以键入按名称进行筛选。 单击 “仅我的警报 ”,仅显示你为所有者的警报。
“旧警报”选项卡显示使用以前的警报系统创建的警报。
“名称”显示每个警报的字符串名称。
状态 显示警报状态是
TRIGGERED
、OK
或UNKNOWN
。计划 显示上次更新的时间或日期。
所有者 显示拥有警报的人员的用户名。
创建时间显示创建警报的日期和时间。
-
TRIGGERED
表示在最近的执行中,目标查询中的 “值 ”列满足你配置的 “条件 ”和 “阈值 ”。 如果警报检查“cats”是否高于 1500,则“cats”高于 1500 时将触发警报。 -
OK
表示在最近的查询执行中, “值 ”列不符合配置的 “条件 ”和 “阈值 ”。 这并不意味着以前未触发 警报 。 如果“cats”值现为 1470,则警报将显示为OK
。 -
UNKNOWN
指示 Databricks SQL 没有足够的数据来评估警报条件。 创建警报后立即显示此状态,并一直保持到查询运行为止。 如果查询结果中没有数据,或者最近的查询结果不包含你配置 的值列 ,则也会使用此状态。 -
ERROR
指示警报评估期间发生错误。
-
创建警报
本部分中的步骤将引导你了解如何创建下图所示的警报。 使用标签和说明了解每个组件。
数据集: 编写并测试要对其发出警报的查询。
条件: 选择应触发警报通知的值阈值。 可以运行查询来测试本节中的条件。
附表: 设置要运行的警报的定期计划。
通知: 当阈值超出预期范围时,用户或通知目的地应被标记为警报。
高深: 使用高级设置针对特殊值和条件发出警报。
使用以下步骤创建警报:
单击边栏中的
警报 ,然后单击“ 创建警报”。
在 数据集 编辑器中复制并粘贴以下查询。
SELECT to_date(tpep_pickup_datetime) as date, SUM(fare_amount) as amount FROM `samples`.`nyctaxi`.`trips` GROUP BY ALL ORDER BY 1 DESC
在 “条件” 字段中,设置应触发警报的条件。
应用以下设置,如下所示:
- 选择 总和 作为要检查的数据值。 可对查询结果中的列的第一个值设置警报条件,也可选择跨单个列的所有行设置一个聚合(例如 SUM 或 AVERAGE)。
- 选择 金额 作为要检查的列。
- 选择逻辑运算符 >(大于)以应用。
- 将阈值设置为
Static value
4000。 静态值默认处于选中状态。 在值字段中输入 4000。
单击 “测试条件 ”以预览警报,并测试警报是否使用当前数据触发。 提供的设置应触发警报。 可以更改阈值以进一步测试。
使用“计划”下拉菜单设置警报,使其每 5分钟运行,从每小时正点的0分钟开始。
(可选)选择“显示 cron 语法”复选框以在“Quartz Cron 语法”中编辑时间表。
在“ 通知 ”部分中,搜索用户名,并在出现时单击它。
单击 “创建” 。
警报已保存,并将按你提供的计划运行。 此示例中使用的数据是静态的,因此,如果 测试条件 返回为 “已触发”,它将在下一次运行时再次返回。 你将收到一封电子邮件通知作为警报。 如果 测试条件 返回 “正常”,则不会发送通知。
查看警报详细信息
此时会打开一个页面以显示警报详细信息。 此外,还显示了包含详细信息的警报历史记录和评估历史记录。 单击“ 立即运行 ”按钮,以故意运行警报查询,在此屏幕上返回结果。
单击页面右上角的 “编辑” 以继续编辑警报。
高级设置
单击 “高级设置” 以应用以下设置:
确定通知: 当警报返回为
OK
时发送通知。通知频率: 定期发送警报通知,直到状态返回到
OK
。空结果状态: 设置在查询返回无结果时返回的特殊状态。
模板: 可以选择使用默认模板或自定义模板发送通知。 以下列表说明了每个模板类型:
使用默认模板:警报通知是一条消息,其中有指向警报配置屏幕和查询屏幕的链接。
使用自定义模板:警报通知包括有关警报的更多特定信息。
会显示一个框,其中有输入主题和正文的字段。 任何静态内容都有效,你可合并内置模板变量:
-
ALERT_STATUS
:已评估的警报状态(字符串)。 -
ALERT_CONDITION
:警报条件运算符(字符串)。 -
ALERT_THRESHOLD
:警报阈值(字符串或数字)。 -
ALERT_COLUMN
:警报列名称(字符串)。 -
ALERT_NAME
:警报名称(字符串)。 -
ALERT_URL
:警报页 URL(字符串)。 -
QUERY_NAME
:关联的查询名称(字符串)。 -
QUERY_URL
:关联的查询页 URL(字符串)。 -
QUERY_RESULT_TABLE
:查询结果 HTML 表(字符串)。 结果仅限于前 100 行。 只有电子邮件通知目标才能呈现 HTML。 -
QUERY_RESULT_VALUE
:查询结果值(字符串或数字)。 -
QUERY_RESULT_ROWS
:查询结果行(值数组)。 -
QUERY_RESULT_COLS
:查询结果列(字符串数组)。
例如,示例主题可以是:
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}
。-
可以使用 HTML 设置自定义模板中的消息格式。 只有电子邮件通知目标才能呈现 HTML。 模板中允许使用以下标签和属性:
- 标签:
<a>
、<abbr>
、<acronym>
、<b>
、<blockquote>
、<body>
、<br>
、<code>
、<div>
、<em>
、<h1>
、<h2>
、<h3>
、<h4>
、<h5
>、<h6
>、<head
>、<hr>
、<html>
、<i>
、<li>
、<ol>
、<p>
、<span>
、<strong>
、<table>
、<tbody>
、<td>
、<th>
、<tr>
、<ul>
- 属性:href(适用于
<a>
)、title(适用于<a>
、<abbr>
、<acronym>
)
- 标签:
单击“预览”切换按钮来预览呈现的结果。
重要
若要验证模板变量是否正确呈现,预览功能很有用。 它不是最终通知内容的准确表示形式,因为每个通知目标会以不同方式显示通知。
工作区管理员可以设置新的通知目标。 请参阅 “管理通知目标”。
警报聚合
通过修改附加到警报的 Databricks SQL 查询的原始 SQL,对警报进行聚合。 警报将原始查询文本包装在公用表表达式 (CTE) 中,并对其执行包装聚合查询来聚合查询结果。
例如,如果对附加到带有 SUM
文本的查询的警报执行 SELECT 1 AS column_name
聚合,则每次刷新该警报时,所运行的已修改的 SQL 将是 WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q
。
这意味着只要警报上存在聚合,(已预先聚合的)原始查询结果就不能显示在(使用 QUERY_RESULT_ROWS
和 QUERY_RESULT_COLS
等参数的)警报自定义正文中。 这些变量转而仅显示最终的聚合后的查询结果。
注意
API 不支持任何与聚合相关的触发器条件。
多个列上的警报
若要基于查询的多个列设置警报,查询可实现警报逻辑,并返回一个布尔值作为警报触发阈值。 例如:
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
1
时,此查询将返回 drafts_count > 10000 and archived_count > 5000
。
然后,可将警报配置为在值为 1
时触发。
指标视图的警报
由于指标视图旨在跟踪和度量核心业务指标,因此它们与警报配对,以便在指标超出预期范围时自动收到通知。 指标视图的警报的工作方式与针对任何其他数据集的警报相同。 编写查询以配置查询时,请使用要监视的指标视图的完全限定名称。
配置警报访问权限并转移警报所有权
有关警报权限级别的信息,请参阅警报 ACL。
在边栏中,单击“警报”。
单击警报。
单击警报详细信息页右上角的“ 共享 ”,打开 “共享 ”对话框。
搜索并选择组和用户,然后分配权限级别。
单击“添加” 。
转让警报的所有权
当你保存警报时,你会成为警报的所有者。 如果从工作区中删除警报的所有者,则该警报将不再有所有者。 工作区管理员用户可以将警报的所有权转让给其他用户。 无法为服务主体和组分配警报库的所有权。 也可以使用权限 API 转移所有权。
以工作区管理员身份登录到 Azure Databricks 工作区。
在边栏中,单击“警报”。
单击警报。
单击右上角的“共享”按钮,打开“共享”对话框。
单击右上方的齿轮图标,然后单击“分配新所有者”。
选择用户以向其分配所有权。
单击“确认” 。