Перейти к основному содержимому

Задания развертывания

Вы можете использовать deploy jobs, чтобы собирать production data assets. Deploy jobs упрощают запуск команд dbt для проекта в вашей облачной data platform: по расписанию или по событиям. Каждый запуск job в dbt будет отображаться в истории запусков job, а также в подробном обзоре запуска, где доступны:

  • Тип триггера job
  • Commit SHA
  • Имя окружения
  • Информация об источниках (sources) и документации, если применимо
  • Детали запуска job, включая тайминги, данные о времени выполнения моделей и артефакты
  • Подробные шаги запуска с логами и статусами шагов

Вы можете создать deploy job и настроить его запуск по расписанию по дням и времени, задать кастомное cron-расписание или запускать job после завершения другой job.

Предварительные требования

Создание и расписание jobs

  1. На странице deployment environment нажмите Create job > Deploy job, чтобы создать новый deploy job.
  2. Параметры в разделе Job settings:
    • Job name — Укажите имя deploy job. Например: Daily build.
    • (Опционально) Description — Добавьте описание того, что делает job (например, что job потребляет и что она создает).
    • Environment — По умолчанию установлено deployment environment, из которого вы создавали deploy job.
  3. Параметры в разделе Execution settings:
    • Commands — По умолчанию включает команду dbt build. Нажмите Add command, чтобы добавить другие команды, которые должны выполняться при запуске job. Во время запуска job built-in commands «цепочкой» выполняются друг за другом; если один шаг падает, вся job завершится со статусом "Error".
    • Generate docs on run — Включите, если хотите генерировать документацию проекта при запуске deploy job. Если этот шаг упадет, job всё равно может завершиться успешно, если последующие шаги пройдут.
    • Run source freshness — Включите, чтобы выполнить команду dbt source freshness перед запуском deploy job. Если этот шаг упадет, job всё равно может завершиться успешно, если последующие шаги пройдут. Подробнее см. Source freshness.
  4. Параметры в разделе Triggers:
    • Run on schedule — Запускать deploy job по расписанию.
      • Timing — Укажите, как расписать deploy job: Intervals (запуск каждые N часов), Specific hours (в определенные часы суток) или Cron schedule (по cron синтаксису).
      • Days of the week — По умолчанию установлено каждый день, если в Timing выбран Intervals или Specific hours.
    • Run when another job finishes — Запускать deploy job после завершения другой upstream deploy job.
      • Project — Укажите родительский проект, в котором находится upstream deploy job.
      • Job — Укажите upstream deploy job.
      • Completes on — Выберите статус(ы) запуска job, при которых deploy job будет поставлена в очередь (enqueue).
Пример раздела Triggers на странице Deploy JobПример раздела Triggers на странице Deploy Job
  1. (Опционально) Параметры в разделе Advanced settings:

    • Environment variables — Определите переменные окружения, чтобы настроить поведение проекта при запуске deploy job.
    • Target name — Определите имя target, чтобы настроить поведение проекта при запуске deploy job. Переменные окружения и target name часто используются взаимозаменяемо.
    • Run timeout — Отменить deploy job, если время выполнения превышает значение таймаута.
    • Compare changes against — По умолчанию установлено No deferral. Выберите Environment или This Job, чтобы указать dbt, с чем нужно сравнивать изменения.
    к сведению

    В старых версиях dbt можно было делать deferral только на конкретную job, а не на environment. Deferral на job сравнивает state с кодом проекта из последнего успешного запуска deferred job. Deferral на environment эффективнее, поскольку dbt сравнивает с представлением проекта (которое хранится в manifest.json) из последнего успешного запуска deploy job в deferred environment. Учитывая все deploy jobs, которые выполняются в deferred environment, dbt получает более точное и актуальное представление state проекта.

    • dbt version — По умолчанию наследуется версия dbt из окружения. dbt Labs настоятельно рекомендует не менять настройку по умолчанию. Возможность менять версию на уровне job полезна только при обновлении проекта до следующей версии dbt; иначе несовпадение версий окружения и job может приводить к непредсказуемому поведению.
    • Threads — По умолчанию установлено 4 потока. Увеличьте количество потоков, чтобы повысить параллельность выполнения моделей.
    Пример Advanced Settings на странице Deploy JobПример Advanced Settings на странице Deploy Job

Расписание по дням

Чтобы задать расписание job, включите опцию Run on schedule, выберите нужные дни недели и укажите часы или интервалы.

В разделе Timing вы можете использовать регулярные интервалы для jobs, которые должны выполняться часто в течение дня, или указывать конкретные часы для jobs, которые должны выполняться в определенное время:

  • Intervals — Используйте этот вариант, чтобы задать частоту запуска job в часах. Например, если выбрать Every 2 hours, job будет запускаться каждые 2 часа, начиная с полуночи UTC. Это не означает, что первый запуск будет ровно в полночь UTC. Однако последующие запуски всегда будут происходить с одинаковым интервалом. Например, если предыдущий запуск был в 00:04 UTC, следующий будет в 02:04 UTC. Этот вариант полезен, если job нужно запускать несколько раз в день по регулярному интервалу.

  • Specific hours — Используйте этот вариант, чтобы задать конкретные часы запуска job. Можно указать список часов (в UTC) через запятую, когда job должна запускаться. Например, если указать 0,12,23,, job будет запускаться в полночь, в полдень и в 11 вечера UTC. Запуски будут консистентны по часам и дням, так что если job запускается в 00:05, 12:05 и 23:05 UTC, то она будет запускаться в эти же часы каждый день. Этот вариант полезен, если job должна выполняться в определенное время суток и не должна запускаться чаще одного раза в день.

к сведению

dbt использует Coordinated Universal Time (UTC) и не выполняет преобразование в ваш часовой пояс и не учитывает переходы на летнее/зимнее время. Например:

  • 0 означает 12am (полночь) UTC
  • 12 означает 12pm (день) UTC
  • 23 означает 11pm UTC

Cron schedule

Чтобы полностью кастомизировать расписание job, выберите опцию Cron schedule и используйте cron‑синтаксис. В этом синтаксисе можно указать минуту, час, день месяца, месяц и день недели, что позволяет задавать сложные расписания (например запуск job в первый понедельник каждого месяца).

Частота cron

Чтобы повысить производительность, ограничения частоты расписания зависят от тарифа dbt:

  • Developer plans: dbt задает минимальный интервал в 10 минут. Это означает, что запуск чаще, чем раз в 10 минут, или с интервалом меньше 10 минут, не поддерживается.
  • Starter, Enterprise и Enterprise+ plans: ограничений на частоту выполнения job нет.

Примеры

Используйте инструменты вроде crontab.guru, чтобы сформировать корректный cron‑синтаксис. Этот инструмент позволяет вводить cron‑фрагменты и получать их расшифровку на обычном языке. Планировщик dbt поддерживает L для запуска jobs в последний день месяца.

Примеры cron‑расписаний:

  • 0 * * * *: Каждый час, в 0 минут.
  • */5 * * * *: Каждые 5 минут. (Недоступно на Developer plans)
  • 5 4 * * *: Ровно в 4:05 AM UTC.
  • 30 */4 * * *: В минуту 30 каждого 4‑го часа (например 4:30 AM, 8:30 AM, 12:30 PM и т. д., всё UTC).
  • 0 0 */2 * *: В 12:00 AM (полночь) UTC через день.
  • 0 0 * * 1: В полночь UTC каждый понедельник.
  • 0 0 L * *: В 12:00 AM (полночь), в последний день месяца.
  • 0 0 L 1,2,3,4,5,6,8,9,10,11,12 *: В 12:00 AM в последний день месяца, только в январе, феврале, марте, апреле, мае, июне, августе, сентябре, октябре, ноябре и декабре.
  • 0 0 L 7 *: В 12:00 AM в последний день месяца, только в июле.
  • 0 0 L * FRI,SAT: В 12:00 AM в последний день месяца и в пятницу и субботу.
  • 0 12 L * *: В 12:00 PM (день), в последний день месяца.
  • 0 7 L * 5: В 07:00 AM, в последний день месяца и в пятницу.
  • 30 14 L * *: В 02:30 PM, в последний день месяца.

Триггер по завершению job StarterEnterpriseEnterprise +

Чтобы связывать deploy jobs в цепочку:

  1. В разделе Triggers включите опцию Run when another job finishes.
  2. Выберите проект, в котором находится deploy job, после завершения которой вы хотите запускать вашу job.
  3. Укажите upstream (родительскую) job, завершение которой будет триггерить вашу job.
    • Это также можно настроить через Create Job API.
  4. В опции Completes on выберите статус(ы) запуска job, при которых deploy job будет поставлена в очередь (enqueue).
Пример Trigger on job completion на странице Deploy jobПример Trigger on job completion на странице Deploy job
  1. Вы можете настроить конфигурацию, где одна upstream job триггерит несколько downstream (дочерних) jobs, а также jobs в других проектах. Для настройки триггера у вас должны быть соответствующие permissions на проект и job.

Если запуск вашей job был триггернут другой job, ссылку на upstream job можно найти в разделе деталей запуска.

Удаление job

Чтобы удалить одно задание или несколько заданий в dbt:

  1. Нажмите Deploy в навигационной панели.
  2. Нажмите Jobs и выберите задание, которое вы хотите удалить.
  3. Нажмите Settings в правом верхнем углу страницы, затем нажмите Edit.
  4. Прокрутите страницу вниз и нажмите Delete job, чтобы удалить задание.
Delete a jobDelete a job
  1. Подтвердите действие во всплывающем окне, нажав Confirm delete в правом нижнем углу, чтобы немедленно удалить задание. Это действие нельзя отменить. Однако вы можете создать новое задание с теми же параметрами, если удаление было выполнено по ошибке.
  2. Обновите страницу — удалённое задание должно исчезнуть. Если вы хотите удалить несколько заданий, необходимо выполнить эти шаги для каждого задания.

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

Мониторинг заданий

На странице Environments есть два раздела, которые дают обзор заданий для выбранного окружения:

  • In progress — Список заданий, которые в данный момент выполняются, с информацией о времени запуска
  • Top jobs by models built — Ранжирует задания по количеству построенных моделей за определённый период времени
In progress jobs and Top jobs by models builtIn progress jobs and Top jobs by models built

История настроек job

Вы можете просматривать историю изменений настроек job за последние 90 дней.

Чтобы посмотреть историю изменений:

  1. Перейдите в Orchestration в главном меню и нажмите Jobs.
  2. Нажмите на название job.
  3. Нажмите Settings.
  4. Нажмите History.
Пример истории настроек job.Пример истории настроек job.

Нашли ошибку?

0
Loading