Обучение Урок 11 из 12

SQL-отчёт

Цель
Сохранить запросы с параметрами и графиками по представлению process_daily, заданиям jobs и пользовательскому отчёту
Время
30 минут

Файлы примеров

Что понадобится #

  • Оркестратор с базой отчётов и право писать SQL в рабочей области (разработчик, владелец области или аналитик).
  • Задания за несколько дней и отчёт Платежи с записями — из урока Отчёт роботом.
  • Файлы примеров — тексты запросов:
    • runs_by_day.sql — запуски процесса по дням (представление process_daily);
    • payments_by_status.sql — платежи по статусам: таблица отчёта r_payments, соединённая с заданиями jobs.

Запросы выполняются к базе отчётов — копии данных оркестратора и пользовательских отчётов. Копия обновляется каждые 5 минут. Запрос только читает данные своей области: изменить или удалить что-то SQL-запросом нельзя.

Шаг 1. Редактор запросов #

  1. В панели откройте «Отчёты» и нажмите «Запросы», затем «Новый запрос».
  2. Слева — «Схема»: в «Данные оркестратора» — jobs, queue_items, process_daily, robot_daily и другие, в «Пользовательские отчёты» — таблицы отчётов с приставкой r_ (отчёт payments — r_payments). Таблицу можно развернуть, чтобы увидеть колонки с подсказками, и вставить её имя в запрос.
  3. «Примеры» — готовые запросы: успешность по процессам, загрузка роботов, частые ошибки.
Редактор запроса: схема базы отчётов, текст запроса и параметры
Редактор запроса: схема базы отчётов, текст запроса и параметры

Шаг 2. Запрос с параметрами #

  1. Скопируйте текст runs_by_day.sql в поле «Текст запроса».
  2. В тексте три параметра — :from, :to и :process. В блоке «Параметры» задайте им «Подпись» (С даты, По дату, Процесс) и «Тип»: «Дата» для from и to, «Текст» для process.
  3. Значения: today-30, today и часть имени процесса, например проверка. Даты можно писать и относительно: today, yesterday, startOfMonth, today-7 — они считаются в момент запуска.
  4. Нажмите «Выполнить» (Ctrl+Enter). Внизу — «Результат»: на вкладке «Таблица» — строка на каждый день.

Значения параметров никогда не вставляются в текст запроса — они передаются отдельно, поэтому запрос с параметрами безопасен.

Шаг 3. График #

  1. Откройте вкладку «График».
  2. «Вид» — «Линия», «Ось X» — day, «Значения» — succeeded и failed.
График запроса: успешные и неуспешные запуски по дням
График запроса: успешные и неуспешные запуски по дням

График сохраняется вместе с запросом.

Шаг 4. Сохраните запрос #

Нажмите «Сохранить». «Название» — Запуски по дням, «Доступ» — «Вся область»: общий запрос выполняют все, кто видит отчёты области, а «Только я» — личный. Нажмите «Сохранить».

Шаг 5. Отчёт робота и задания вместе #

  1. «Новый запрос» → текст payments_by_status.sql. Здесь r_payments соединяется с jobs по колонке _job_id: у каждой записи отчёта есть системные колонки _created_at, _job_id, _robot, _process.
  2. Параметры from и to — тип «Дата и время», значения today-30 и tomorrow.
  3. «Выполнить», затем «График»: «Вид» — «Круговая», «Ось X» — status, «Значения» — payments.
  4. Сохраните как Платежи по статусам.

Шаг 6. Сохранённые запросы #

В «Запросы» — оба запроса. Откройте запрос: на его странице можно поменять «Значения параметров» и нажать «Выполнить», не трогая текст, и выгрузить все строки в CSV или Excel.

Сохранённые запросы области: автор, доступ и параметры
Сохранённые запросы области: автор, доступ и параметры

Что должно получиться #

  • Запуски по дням: строки за последние 30 дней, где процесс запускался; на графике — две линии.
  • Платежи по статусам: три строки — Новый, Оплачен, Ошибка — с числом записей и суммой; на круговой диаграмме больше всего Новый.
  • Другой участник области видит оба запроса в «Запросы» и выполняет их со своими значениями параметров.

Если не получилось #

Что видно Что сделать
„PostgreSQL не выполнил запрос“ с указанием строки и столбца Нажмите «Показать в тексте» — курсор встанет на место ошибки. Частая причина — опечатка в имени колонки: сверьтесь со «Схема».
Нет таблицы r_payments Отчёт создан в другой области или ещё не появился в копии — подождите 5 минут.
Запрос не вернул строк Проверьте значения параметров: даты from и to и часть имени процесса. Задания последних минут попадают в копию с задержкой до 5 минут.
Ошибка при UPDATE, DELETE или двух запросах подряд В запросе — один оператор SELECT или WITH: база отчётов только для чтения.
Просят задать значения параметров У каждого :параметра из текста должно быть значение или значение по умолчанию.

Схема представлений и примеры запросов — в документации: Отчёты.