Что такое оповещения Databricks SQL?
Оповещения Databricks SQL периодически выполняют запросы, оценивают определенные условия и отправляют уведомления, если условие выполнено. Вы можете настроить оповещения для мониторинга бизнеса и отправки уведомлений, когда сообщаемые данные выходят за пределы ожидаемых ограничений. Планирование оповещения выполняет свой базовый запрос и проверяет критерии генерации оповещений. Это независимо от любого расписания, которое может существовать в базовом запросе.
Внимание
- Оповещения, использующие запросы с параметрами и, используют значение по умолчанию, указанное в редакторе SQL для каждого параметра.
Просмотр и упорядочивание оповещений
Используйте один из следующих вариантов для доступа к оповещениям:
- Щелкните значок
рабочей области на боковой панели, чтобы просмотреть оповещения в папке Главная, куда они сохраняются по умолчанию. Пользователи могут упорядочивать оповещения в папки в обозревателе рабочей области вместе с другими объектами Databricks.
- Alerts Icon Щелкните оповещения на боковой панели, чтобы просмотреть страницу списка оповещений.
По умолчанию объекты сортируются в обратном хронологическом порядке. Вы можете изменить порядок списка, щелкнув заголовки столбцов. Щелкните вкладку "Все оповещения" в верхней части экрана, чтобы просмотреть все оповещения в рабочей области. Щелкните вкладку Мои оповещения, чтобы просмотреть оповещения, в которых вы являетесь владельцем.
- Имя отображает строковое имя каждого оповещения.
-
Состояние отображает состояние оповещения:
TRIGGERED
,OK
илиUNKNOWN
. - Последнее обновление отображает время или дату последнего обновления.
-
Время создания отображает дату и время создания оповещения.
-
TRIGGERED
означает, что в последнем выполнении столбец Value в целевом запросе соответствует заданному условию и порогу. Если оповещение проверяет, не превышает ли значение "кошки" число 1500, оповещение будет срабатывать при каждом превышении числа 1500. -
OK
означает, что в последнем выполнении запроса столбец Value не соответствовал заданному условию и порогу. Это не означает, что оповещение не срабатывало ранее. Если значение "кошки" равно 1470, оповещение будет отображаться с состояниемOK
. - Состояние
UNKNOWN
означает, что Databricks SQL не имеет достаточно данных для оценки критериев оповещения. Это состояние отображается немедленно после создания оповещения, пока запрос не выполнен. Вы также увидите этот статус, если в результате запроса не было данных или если самый последний результат запроса не включает значение столбца .
-
Создание оповещения
Выполните следующие действия, чтобы создать оповещение для одного столбца запроса.
Выполните одно из следующих действий:
- Щелкните
Новый на боковой панели и выберите Оповещение.
- Нажмите кнопку
"Оповещения" на боковой панели и нажмите кнопку +Создать оповещение.
- Щелкните
рабочую область на боковой панели и нажмите кнопку "Создать оповещение".
- Щелкните
В поле "Запрос" найдите целевой запрос.
Чтобы оповещать о нескольких столбцах, необходимо изменить запрос. См . агрегаты оповещений.
В поле условия триггера настройте оповещение.
Столбец "Значение" в раскрывающемся списке управляет тем, какое поле вашего результата запроса оценивается. Условия генерации оповещений можно задать в первом значении столбца в результате запроса или задать агрегирование во всех строках одного столбца, например SUM или AVERAGE.
Раскрывающийся список "Оператор" управляет применяемой логической операцией.
Пороговое значение , текстовые входные данные сравниваются с столбцом "Значение", используя указанное условие.
Нажмите кнопку "Предварительный просмотр", чтобы просмотреть оповещение и проверить, активируется ли оповещение с текущими данными.
В поле Когда оповещение активируется, отправьте уведомление поле, выберите количество уведомлений, отправляемых при активации оповещения:
-
Только один раз: отправляет уведомление, если состояние оповещения меняется с
OK
наTRIGGERED
. -
Каждый раз при оценке оповещения: отправляет уведомление при состоянии оповещения
TRIGGERED
независимо от состояния при предыдущей оценке. -
Максимум каждые: отправляет уведомление при регистрации состоянии оповещения
TRIGGERED
в определенном интервале. Этот вариант позволяет не допустить спама уведомлениями для оповещений, которые срабатывают часто.
Независимо от выбранного параметра уведомлений, вы будете получать уведомления при каждом изменении состояния с
OK
наTRIGGERED
или сTRIGGERED
наOK
. Параметры расписания влияют на то, сколько уведомлений вы получите при сохранении состоянияTRIGGERED
для выполнений. Дополнительные сведения см. в разделе Частота уведомлений.-
Только один раз: отправляет уведомление, если состояние оповещения меняется с
В раскрывающемся списке Шаблон выберите шаблон:
- Использовать шаблон по умолчанию: уведомление по оповещению представляет собой сообщение со ссылками на экран настройки оповещений и экран запроса.
-
Использовать пользовательский шаблон: уведомление по оповещению включает подробные сведения об оповещении.
При этом отображается набор полей для ввода темы и текста. Допустимо любое статическое содержимое, и вы даже можете внедрять встроенные переменные шаблона.
-
ALERT_STATUS
: состояние оцененного оповещения (строка). -
ALERT_CONDITION
: оператор условия оповещения (строка). -
ALERT_THRESHOLD
: пороговое значение оповещения (строка или число). -
ALERT_COLUMN
: имя столбца оповещения (строка). -
ALERT_NAME
: имя оповещения (строка). -
ALERT_URL
: URL-адрес страницы оповещения (строка). -
QUERY_NAME
: связанное имя запроса (строка). -
QUERY_URL
: связанный URL-адрес страницы запроса (строка). -
QUERY_RESULT_TABLE
: таблица HTML результатов запроса (строка). Результаты ограничены первыми 100 строками. -
QUERY_RESULT_VALUE
: значение результата запроса (строка или число). -
QUERY_RESULT_ROWS
: строки результатов запроса (массив значений). -
QUERY_RESULT_COLS
: столбцы результатов запроса (строковый массив).
Примером темы может быть
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}
.-
Вы можете использовать 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 (for
<a>
), заголовок (для<a>
,<abbr>
,<acronym>
)
- Теги:
Нажмите кнопку Предварительный просмотр, чтобы просмотреть результат.
Внимание
Предварительный просмотр полезен для проверки правильности отображения переменных шаблона. Это не точное представление содержимого конечного уведомления, так как каждое назначение уведомления может отображать уведомления по-разному.
Нажмите кнопку Сохранить изменения.
Щелкните Создать оповещение.
Щелкните Добавить расписание.
- Используйте раскрывающийся список для указания частоты, периода, времени начала и часового пояса. При необходимости установите флажок
Показать синтаксис cron , чтобы изменить расписание вСинтаксиса Cron в Cron. - Выберите дополнительные параметры , чтобы отобразить необязательные параметры. Вы также можете выбрать следующее:
- Имя расписания.
- Хранилище SQL для управления запросом. По умолчанию хранилище SQL, используемое для выполнения нерегламентированного запроса, также используется для запланированного задания. Используйте этот необязательный параметр, чтобы выбрать другое хранилище для запуска запланированного запроса.
- Используйте раскрывающийся список для указания частоты, периода, времени начала и часового пояса. При необходимости установите флажок
Перейдите на вкладку "Назначения" в диалоговом окне "Добавление расписания ".
- Используйте раскрывающийся список, чтобы выбрать доступные
назначения уведомлений. Или начните вводить имя пользователя, чтобы добавить пользователей.
Внимание
Если пропустить этот шаг, вы не будете получать уведомления при активации оповещения.
- Используйте раскрывающийся список, чтобы выбрать доступные
Нажмите кнопку Создать. Сохраненные оповещения и сведения о уведомлениях отображаются на экране.
Предоставление общего доступа к расписанию.
- Справа от указанного расписания выберите
и выберите Изменить разрешения расписания.
- Выберите пользователя или группу из раскрывающегося меню в диалоговом окне.
- Выберите из следующих разрешений расписания:
- НЕТ РАЗРЕШЕНИЙ. Разрешения не предоставлены. Пользователи без разрешений не видят, что расписание существует, даже если они являются подписчиками или включены в указанные назначения уведомлений.
- CAN VIEW: предоставляет разрешение на просмотр запланированных результатов выполнения.
- CAN MANAGE RUN: предоставляет разрешение на просмотр запланированных результатов выполнения.
- CAN MANAGE: предоставляет разрешение на просмотр, изменение и удаление расписаний. Это разрешение необходимо для внесения изменений в интервал выполнения, обновления списка подписчиков и приостановки или отмены расписания.
- IS OWNER: предоставляет все разрешения CAN MANAGE. Кроме того, учетные данные владельца расписания будут использоваться для выполнения запросов панели мониторинга. Только администратор рабочей области может изменить владельца.
Внимание
Разрешения для оповещений и расписаний разделены. Предоставьте доступ пользователям и группам в списке назначений уведомлений, чтобы они могли просматривать запланированные результаты запусков.
- Справа от указанного расписания выберите
Предоставление общего доступа к оповещению.
- Щелкните
в правом верхнем углу страницы.
- Добавьте пользователей или группы, у которых должен быть доступ к оповещению.
- Выберите соответствующий уровень разрешений, а затем нажмите кнопку "Добавить".
- Щелкните
Внимание
CAN MANAGE предоставляет разрешение на просмотр, изменение и удаление расписаний. Это разрешение необходимо для внесения изменений в интервал выполнения, обновления списка назначения уведомлений и приостановки или отмены расписания.
Дополнительные сведения о уровнях разрешений генерации оповещений см. в разделе "Списки управления доступом оповещений".
Агрегаты оповещений
Агрегирование оповещений работает путем изменения исходного SQL-запроса Databricks 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
.
Периодичность уведомлений
Databricks SQL отправляет уведомления в выбранные назначения уведомлений всякий раз, когда обнаруживает, что состояние оповещения изменилось с OK
TRIGGERED
или наоборот.
Рассмотрим этот пример, когда оповещение настроено в запросе, который планируется выполнять один раз в день. Ежедневное состояние оповещения отображается в следующей таблице.
До понедельника состояние оповещение было OK
.
день | Состояние оповещения |
---|---|
Понедельник | ОК |
Вторник | ОК |
Среда | TRIGGERED |
Четверг | TRIGGERED |
Пятница | TRIGGERED |
Суббота | TRIGGERED |
Воскресенье | ОК |
Если для частоты уведомлений задано значение Just Once
, Databricks SQL отправляет уведомление в среду, когда состояние изменилось с OK
на TRIGGERED
и снова в воскресенье, когда он переключается обратно. Оповещения не отправляются в четверг, пятницу и субботу, если только вы явно не настроите такую отправку, так как состояние оповещения не изменяется в эти дни.
Настройка разрешений оповещений и владение оповещениями
Для общего доступа к запросам необходимо иметь по крайней мере разрешение CAN MANAGE. Уровни разрешений генерации оповещений см. в разделе "Списки управления доступом для оповещений".
На боковой панели нажмите кнопку "Оповещения".
Щелкните оповещение.
Нажмите кнопку в правом верхнем углу, чтобы открыть диалоговое окно "Общий доступ".
Найдите и выберите группы и пользователей и назначьте уровень разрешений.
Нажмите кнопку Добавить.
Передача прав владения оповещением
При сохранении оповещения вы становитесь владельцем оповещения. Если владелец оповещения удаляется из рабочей области, у оповещения больше нет владельца. Пользователь администратора рабочей области может передать права владения оповещение другому пользователю. Субъекты-службы и группы не могут быть назначены владельцем оповещения. Вы также можете передать владение с помощью API разрешений.
Войдите в рабочую область Azure Databricks как администратор рабочей области.
На боковой панели нажмите кнопку "Оповещения".
Щелкните оповещение.
Нажмите кнопку "Общий доступ" в правом верхнем углу, чтобы открыть диалоговое окно "Общийдоступ ".
Щелкните значок шестеренки в правом верхнем углу и нажмите кнопку "Назначить нового владельца".
Выберите пользователя, которому нужно передать права собственности.
Нажмите кнопку Подтвердить.