Что такое оповещения Databricks SQL?

Оповещения Databricks SQL периодически выполняют запросы, оценивают определенные условия и отправляют уведомления, если условие выполнено. Вы можете настроить оповещения для мониторинга бизнеса и отправки уведомлений, когда сообщаемые данные выходят за пределы ожидаемых ограничений. Планирование оповещения выполняет свой базовый запрос и проверка условия генерации оповещений. Это независимо от любого расписания, которое может существовать в базовом запросе.

Внимание

  • Оповещения, использующие запросы с параметрами, используют значение по умолчанию, указанное в редакторе SQL для каждого параметра.

Просмотр и упорядочивание оповещений

Используйте один из следующих вариантов для доступа к оповещениям:

  • Значок рабочей областиЩелкните рабочую область на боковой панели, чтобы просмотреть оповещения в папке "Главная", где они хранятся по умолчанию. Пользователи могут упорядочивать оповещения в папки в обозревателе рабочей области вместе с другими объектами Databricks.
  • Значок оповещенийЩелкните оповещения на боковой панели, чтобы просмотреть страницу списка оповещений.

По умолчанию объекты сортируются в обратном хронологическом порядке. Вы можете изменить порядок списка, щелкнув заголовок столбца. Щелкните вкладку "Все оповещения" в верхней части экрана, чтобы просмотреть все оповещения в рабочей области. Перейдите на вкладку "Мои оповещения", чтобы просмотреть оповещения, в которых вы являетесь владельцем.

  • Имя отображает строковое имя каждого оповещения.
  • Состояние отображает состояние оповещения: TRIGGERED, OK или UNKNOWN.
  • Последнее обновление отображает время или дату последнего обновления.
  • Время создания отображает дату и время создания оповещения.
    • Состояние TRIGGERED означает, что при последнем выполнении в столбце "Значение" целевого запроса были выполнены настроенные условия и достигнут порог. Если оповещение проверяет, не превышает ли значение "кошки" число 1500, оповещение будет срабатывать при каждом превышении числа 1500.
    • Состояние OK означает, что при последнем выполнении запроса в столбце "Значение" не были выполнены настроенные условия и не достигнут порог. Это не означает, что оповещение не срабатывало ранее. Если значение "кошки" равно 1470, оповещение будет отображаться с состоянием OK.
    • Состояние UNKNOWN означает, что Databricks SQL не имеет достаточно данных для оценки критериев оповещения. Это состояние отображается немедленно после создания оповещения, пока запрос не выполнен. Вы также увидите это состояние, если в результатах запроса отсутствуют данные или если последние результаты запроса не включают настроенный столбец Значение.

Создание оповещения

Выполните следующие действия, чтобы создать оповещение для одного столбца запроса.

  1. Выполните одно из следующих действий:

    • Нажмите кнопку Значок "Создать" на боковой панели и выберите "Оповещение".
    • Нажмите кнопку Значок оповещений"Оповещения" на боковой панели и нажмите кнопку +Создать оповещение.
    • Щелкните Значок рабочей областирабочую область на боковой панели и нажмите кнопку "Создать оповещение".
    • Меню Кебаб Щелкните меню kebab в правом верхнем углу сохраненного запроса и нажмите кнопку "Создать оповещение".
  2. В поле "Запрос" найдите целевой запрос.

    Целевой запрос

    Чтобы создать оповещение по нескольким столбцам, вам нужно изменить запрос. См . агрегаты оповещений.

  3. В поле условия триггера настройте оповещение.

    • С помощью раскрывающегося меню Столбец значений можно определить, какое поле из результатов запроса будет оцениваться. Условия генерации оповещений можно задать в первом значении столбца в результате запроса или задать агрегирование во всех строках одного столбца, например SUM или AVERAGE.

      Агрегация оповещений

    • Раскрывающийся список "Оператор" управляет применяемой логической операцией.

    • Текстовые входные данные порогового значения сравниваются со столбцом "Значение ", используя указанное условие.

    Условия триггера

  4. Нажмите кнопку "Предварительный просмотр", чтобы просмотреть оповещение и проверить, активируется ли оповещение с текущими данными.

  5. В поле отправки оповещений выберите количество уведомлений при активации оповещения:

    • Только один раз: отправляет уведомление, если состояние оповещения меняется с OK на TRIGGERED.
    • Каждый раз при оценке оповещения: отправляет уведомление при состоянии оповещения TRIGGERED независимо от состояния при предыдущей оценке.
    • Максимум каждые: отправляет уведомление при регистрации состоянии оповещения TRIGGERED в определенном интервале. Этот вариант позволяет не допустить спама уведомлениями для оповещений, которые срабатывают часто.

    Независимо от выбранного параметра уведомлений, вы будете получать уведомления при каждом изменении состояния с OK на TRIGGERED или с TRIGGERED на OK. Параметры расписания влияют на то, сколько уведомлений вы получите при сохранении состояния TRIGGERED для выполнений. Дополнительные сведения см. в разделе Частота уведомлений.

  6. В раскрывающемся списке Шаблон выберите шаблон:

    • Использовать шаблон по умолчанию: уведомление по оповещению представляет собой сообщение со ссылками на экран настройки оповещений и экран запроса.
    • Использовать пользовательский шаблон: уведомление по оповещению включает подробные сведения об оповещении.
      1. При этом отображается набор полей для ввода темы и текста. Допустимо любое статическое содержимое, и вы даже можете внедрять встроенные переменные шаблона.

        • ALERT_STATUS: состояние оцененного оповещения (строка).
        • ALERT_CONDITION: оператор условия оповещения (строка).
        • ALERT_THRESHOLD: пороговое значение оповещения (строка или число).
        • ALERT_COLUMN: имя столбца оповещений (строка).
        • ALERT_NAME: имя оповещения (строка).
        • ALERT_URL: URL-адрес страницы оповещения (строка).
        • QUERY_NAME: связанное имя запроса (строка).
        • QUERY_URL: связанный URL-адрес страницы запроса (строка).
        • QUERY_RESULT_TABLE: таблица html результатов запроса (строка).
        • QUERY_RESULT_VALUE: значение результата запроса (строка или число).
        • QUERY_RESULT_ROWS: строки результатов запроса (массив значений).
        • QUERY_RESULT_COLS: столбцы результатов запросов (массив строк).

        Примером темы может быть Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}.

      2. Вы можете использовать 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>)
      3. Нажмите кнопку Предварительный просмотр, чтобы просмотреть результат.

        Внимание

        Предварительный просмотр полезен для проверки правильности отображения переменных шаблона. Это не точное представление содержимого конечного уведомления, так как каждое назначение уведомления может отображать уведомления по-разному.

      4. Нажмите кнопку Сохранить изменения.

  7. Щелкните Создать оповещение.

  8. Щелкните Добавить расписание.

    • Используйте раскрывающийся список для указания частоты, периода, времени начала и часового пояса. При необходимости выберите синтаксис show cron проверка box, чтобы изменить расписание в синтаксисе Cron Для создания расписания.
    • Выберите дополнительные параметры , чтобы отобразить необязательные параметры. Вы также можете выбрать следующее:
      • Имя расписания.
      • Хранилище SQL для управления запросом. По умолчанию хранилище SQL, используемое для выполнения нерегламентированного запроса, также используется для запланированного задания. Используйте этот необязательный параметр, чтобы выбрать другое хранилище для запуска запланированного запроса.
  9. Перейдите на вкладку "Назначения" в диалоговом окне "Добавление расписания ".

    Вкладка

    • Используйте раскрывающийся список, чтобы выбрать доступное назначение уведомления. Или начните вводить имя пользователя, чтобы добавить пользователей.

    Внимание

    Если пропустить этот шаг, вы не будете получать уведомления при активации оповещения.

  10. Нажмите кнопку Создать. Сохраненные оповещения и сведения о уведомлениях отображаются на экране.

    Сохраненное оповещение

  11. Предоставление общего доступа к расписанию.

    • Справа от указанного расписания выберите Меню Кебаб меню кебаб и выберите пункт "Изменить разрешения расписания".
    • Выберите пользователя или группу из раскрывающегося меню в диалоговом окне.
    • Выберите из следующих разрешений расписания:
      • НЕТ РАЗРЕШЕНИЙ. Разрешения не предоставлены. Пользователи без разрешений не видят, что расписание существует, даже если они являются подписчиками или включены в указанные назначения уведомлений.
      • CAN VIEW: предоставляет разрешение на просмотр запланированных результатов выполнения.
      • CAN MANAGE RUN: предоставляет разрешение на просмотр запланированных результатов выполнения.
      • CAN MANAGE: предоставляет разрешение на просмотр, изменение и удаление расписаний. Это разрешение необходимо для внесения изменений в интервал выполнения, обновления списка подписчиков и приостановки или отмены расписания.
      • IS OWNER: предоставляет все разрешения CAN MANAGE. Кроме того, учетные данные владельца расписания будут использоваться для выполнения запросов панели мониторинга. Только администратор рабочей области может изменить владельца.

    Внимание

    Разрешения для оповещений и расписаний разделены. Предоставьте доступ пользователям и группам в списке назначений уведомлений, чтобы они могли просматривать запланированные результаты выполнения.

  12. Предоставление общего доступа к оповещению.

    • Щелкните Кнопка в правом верхнем углу страницы.
    • Добавьте пользователей или группы, у которых должен быть доступ к оповещению.
    • Выберите соответствующий уровень разрешений, а затем нажмите кнопку "Добавить".

Внимание

CAN MANAGE предоставляет разрешение на просмотр, изменение и удаление расписаний. Это разрешение необходимо для внесения изменений в интервал выполнения, обновления списка назначения уведомлений и приостановки или отмены расписания.

Дополнительные сведения о уровнях разрешений генерации оповещений см. в разделе "Списки управления доступом оповещений".

Агрегаты оповещений

Агрегирование оповещений работает путем изменения исходного SQL-запроса Databricks SQL, присоединенного к оповещению. Оповещение упаковывает исходный текст запроса в общее табличное выражение (CTE) и выполняет в нем запрос агрегирования, чтобы агрегировать результат запроса.

Например, агрегирование оповещений, присоединенных к запросу с текстомSELECT 1 AS column_name, означает, SUM что при обновлении оповещения измененный 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 отправляет уведомления в выбранные назначения уведомлений всякий раз, когда обнаруживает, что состояние оповещения изменилось с OKTRIGGERED или наоборот. Рассмотрим пример, в котором оповещение настроено для запроса, выполняемого ежедневно. Состояние оповещения по ежедневному выполнению отображается в следующей таблице. До понедельника состояние оповещение было OK.

день Состояние оповещения
Понедельник ОК
Вторник ОК
Среда TRIGGERED
Четверг TRIGGERED
Пятница TRIGGERED
Суббота TRIGGERED
Воскресенье ОК

Если для частоты оповещений задано значение Just Once, Databricks SQL отправляет уведомление в среду, когда состояние изменилось с OK на TRIGGERED, и в воскресенье, когда оно поменялось обратно. Оповещения не отправляются в четверг, пятницу и субботу, если только вы явно не настроите такую отправку, так как состояние оповещения не изменяется в эти дни.

Настройка разрешений оповещений и владение оповещениями

Для общего доступа к запросам необходимо иметь по крайней мере разрешение CAN MANAGE. Уровни разрешений генерации оповещений см. в разделе "Списки управления доступом для оповещений".

  1. На боковой панели нажмите кнопку "Оповещения".

  2. Щелкните оповещение.

  3. Кнопка Нажмите кнопку в правом верхнем углу, чтобы открыть диалоговое окно "Общий доступ".

    Управление разрешениями оповещений

  4. Найдите и выберите группы и пользователей и назначьте уровень разрешений.

  5. Нажмите кнопку Добавить.

Передача прав владения оповещением

При сохранении оповещения вы становитесь владельцем оповещения. Если владелец оповещения удаляется из рабочей области, у оповещения больше нет владельца. Пользователь администратора рабочей области может передать права владения оповещение другому пользователю. Субъекты-службы и группы не могут быть назначены владельцем оповещения. Вы также можете передать владение с помощью API разрешений.

  1. Войдите в рабочую область Azure Databricks как администратор рабочей области.

  2. На боковой панели нажмите кнопку "Оповещения".

  3. Щелкните оповещение.

  4. Нажмите кнопку "Общий доступ" в правом верхнем углу, чтобы открыть диалоговое окно "Общийдоступ ".

  5. Щелкните значок шестеренки в правом верхнем углу и нажмите кнопку "Назначить нового владельца".

    Назначение нового владельца

  6. Выберите пользователя, чтобы назначить владение.

  7. Нажмите кнопку Подтвердить.