警报

计划查询返回的字段达到阈值时,你会收到警报。 使用警报来监视业务或将其与工具集成,以启动用户加入或支持工单等工作流。 警报是对计划查询的补充,但每次执行后都会检查警报的条件。

重要

  • 利用带参数的查询的警报使用在 SQL 编辑器中为每个参数指定的默认值。

查看警报

若要查看警报列表,请单击边栏中的 Alerts Icon“警报”。 默认情况下,警报按“创建者”列以时间倒序排序。 可以通过单击列标题重新对列表进行排序。

  • “名称”显示每个警报的字符串名称。
  • “创建者”显示创建警报的用户。
  • “状态”显示警报状态是 OK 还是 UNKNOWN
    • TRIGGERED 表示执行最后一次查询时,目标查询中的“值”列满足配置的“条件”和“阈值”。 如果警报检查“cats”是否高于 1500,则“cats”高于 1500 时将触发警报。
    • OK 表示执行最后一次查询时,“值”列不满足配置的“条件”和“阈值”。 这并不表示之前未触发“警报”。 如果“cats”值现为 1470,则警报将显示为“OK”。
    • UNKNOWN 表示 Databricks SQL 没有足够的数据,无法评估警报条件。 创建警报后将立即显示此状态,直到查询执行完毕。 如果查询结果中没有数据,或者最新查询结果中不包含配置的“值列”,也会显示此状态。

Alert list

创建警报

按照以下步骤对查询的单个列创建警报。

  1. 执行下列操作之一:

    • 单击边栏中的Create Icon“创建”,然后选择“警报”。
    • 单击边栏中的 Alerts Icon“警报”,然后单击“+ 新建警报”按钮。
  2. 搜索目标查询。

    Target query

    若要对多个列设置警报,需要修改你的查询。 请参阅对多个列设置警报

  3. 在“触发时间”字段中配置警报。

    • “值列”下拉列表控制计算查询结果的哪个字段。
    • “条件”下拉列表控制要应用的逻辑操作。
    • 使用指定的条件将“阈值”文本输入与值列进行比较。

    Alert settings

    注意

    如果目标查询返回多个记录,则 Databricks SQL 警报对第一个记录起作用。 更改值列设置时,其下方会显示顶行中该字段的当前值。

  4. 在“触发时发送通知”字段中,选择触发警报时发送的通知数量:

    • 仅一次:当警报状态 更改为 时发送通知。
    • 每次评估警报时:每当警报状态为 时,无论在上次评估中其状态如何,都发送通知。
    • 最多每隔:最多每当警报状态在特定时间间隔内为 时发送通知。 此选项可让你避免经常触发的警报遇到通知垃圾邮件。

    无论选择哪种通知设置,只要状态从 OK 更改为 TRIGGERED 或从 TRIGGERED 更改为 OK,你都会收到通知。 如果状态在相邻两次执行中都是 TRIGGERED,则计划设置将影响你收到的通知数量。 有关详细信息,请查看通知频率

  5. 在“模板”下拉列表中,选择一个模板:

    • 使用默认模板:警报通知是一条消息,其中有指向警报配置屏幕和查询屏幕的链接。
    • 使用自定义模板:警报通知包括有关警报的更多特定信息。
      1. 会显示一个框,其中有输入主题和正文的字段。 任何静态内容都有效,你可合并内置模板变量:

        • 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}}

      2. 单击“预览”切换按钮来预览呈现的结果。

        重要

        若要验证模板变量是否正确呈现,预览功能很有用。 它不是最终通知内容的准确表示形式,因为每个警报目标会以不同方式显示通知。

      3. 单击“保存更改”按钮。

  6. 在“刷新”中,设置刷新计划。 警报的刷新计划独立于查询的刷新计划。

    • 如果查询是“作为所有者运行”,则该查询使用警报刷新计划上的查询所有者的凭据运行。
    • 如果查询是“作为观看者运行”,则该查询使用警报刷新计划上的警报创建者的凭据运行。
  7. 单击“创建警报”。

  8. 选择警报目标

    重要

    如果跳过此步骤,那么在触发警报时,你将不会收到通知。

    Alert destination

对多个列设置警报

若要基于查询的多个列设置警报,查询可实现警报逻辑,并返回一个布尔值作为警报触发阈值。 例如:

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 转让所有权:

  1. 开启警报。
  2. 单击“共享”。
  3. 选择一名用户,然后选择“可管理”。
  4. 阅读提示。 如果同意,请单击“确认”。

若要使用 REST API 转让所有权,请参阅转让警报的所有权

如果此警报以前具有所有者,则该用户不再具有对警报的“可以管理”权限,而你授予“可以管理”权限的用户现在成为所有者。