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

Интеграция с другими инструментами оркестрации

Наряду с dbt существуют и другие способы планирования и запуска ваших dbt‑задач с помощью инструментов, подобных тем, которые описаны на этой странице.

Создавайте и устанавливайте эти инструменты, чтобы автоматизировать ваши data‑workflow, запускать dbt‑задачи (в том числе размещённые в dbt) и получать удобный, не требующий лишних усилий опыт, экономя время и повышая эффективность.

Airflow

Если ваша организация использует Airflow, существует несколько способов запуска dbt задач, включая:

Установка провайдера dbt для оркестрации заданий dbt. Этот пакет содержит несколько Hooks, Operators и Sensors для выполнения различных действий внутри dbt.

DAG Airflow с использованием DbtCloudRunJobOperatorDAG Airflow с использованием DbtCloudRunJobOperator
Задание dbt, запущенное из AirflowЗадание dbt, запущенное из Airflow

Для получения более подробной информации о каждом из этих методов, включая примеры реализации, ознакомьтесь с этим руководством.

Серверы автоматизации

Серверы автоматизации (такие как CodeDeploy, GitLab CI/CD (видео), Bamboo и Jenkins) могут использоваться для планирования bash команд для dbt. Они также предоставляют интерфейс для просмотра логов в командной строке и интеграции с вашим git-репозиторием.

Azure Data Factory

Интегрируйте dbt и Azure Data Factory (ADF), чтобы обеспечить плавный процесс работы с данными — от их загрузки до трансформации. Вы можете автоматически запускать задания dbt после завершения задач по загрузке данных, используя dbt API в ADF.

Следующее видео предоставляет подробный обзор того, как запускать задание dbt через API в Azure Data Factory.

Чтобы использовать API dbt для запуска задачи в dbt Cloud через ADF:

Чтобы использовать API dbt для запуска задания в dbt через ADF:

  1. В dbt перейдите в настройки задания для ежедневного продакшн‑задания и отключите запланированный запуск в разделе Trigger.
  2. Создайте пайплайн в ADF, который будет запускать задание dbt.
  3. Безопасно получите сервисный токен dbt из хранилища ключей (key vault) в ADF, используя web‑вызов в качестве первого шага пайплайна.
  4. Задайте параметры пайплайна, включая ID аккаунта dbt и ID задания, а также имя key vault и секрета, в котором хранится сервисный токен.
    • Вы можете найти ID задания и ID аккаунта dbt в URL. Например, если ваш URL — https://YOUR_ACCESS_URL/deploy/88888/projects/678910/jobs/123456, то ID аккаунта — 88888, а ID задания — 123456.
  5. Запустите пайплайн в ADF, чтобы стартовать задание dbt, и отслеживайте статус выполнения задания dbt в ADF.
  6. В dbt вы можете проверить статус задания и посмотреть, каким образом оно было запущено.

Cron

Cron — это неплохой способ планирования bash команд. Однако, хотя это может показаться простым способом планирования задачи, написание кода для учета всех дополнительных функций, связанных с производственным развертыванием, часто делает этот путь более сложным по сравнению с другими вариантами, перечисленными здесь.

Dagster

Если в вашей организации используется Dagster, вы можете применять библиотеку dagster_dbt для интеграции команд dbt в ваши пайплайны. Эта библиотека поддерживает выполнение dbt через dbt или dbt Core. Запуск dbt из Dagster автоматически агрегирует метаданные о запусках dbt. Подробнее см. в примере пайплайна.

Рабочие процессы Databricks

Используйте Databricks Workflows для вызова API заданий dbt, что дает несколько преимуществ: интеграцию с другими ETL‑процессами, использование возможностей заданий dbt, разделение ответственности, а также возможность пользовательского запуска заданий на основе собственных условий или логики. Эти преимущества обеспечивают большую модульность, более эффективную отладку и гибкость при планировании заданий dbt.

Дополнительную информацию см. в руководстве Databricks workflows and dbt jobs.

Kestra

Если в вашей организации используется Kestra, вы можете воспользоваться dbt plugin для оркестрации заданий dbt и dbt Core. Пользовательский интерфейс (UI) Kestra содержит встроенные Blueprints — готовые к использованию рабочие процессы. Перейдите на страницу Blueprints в левом навигационном меню и выберите тег dbt, чтобы найти несколько примеров планирования команд dbt Core и заданий dbt в составе ваших конвейеров данных. После каждого запланированного или ad‑hoc выполнения workflow вкладка Outputs в UI Kestra позволяет скачать и просмотреть все артефакты сборки dbt. Представления Gantt и Topology дополнительно визуализируют метаданные, чтобы показать зависимости и время выполнения ваших моделей и тестов dbt. Задача dbt предоставляет удобные ссылки для быстрого перехода между интерфейсами Kestra и dbt.

Orchestra

Если в вашей организации используется Orchestra, вы можете запускать задания dbt с помощью API dbt. Создайте API‑токен в своей учетной записи dbt и используйте его для аутентификации Orchestra в Orchestra Portal. Подробности см. в документации Orchestra по dbt.

Orchestra автоматически собирает метаданные из ваших запусков, чтобы вы могли просматривать ваши задачи dbt в контексте остальной части вашего стека данных.

Ниже приведён пример деталей выполнения в dbt для задания, запущенного с помощью Orchestra:

Пример запуска задачи dbt с помощью OrchestraПример запуска задачи dbt с помощью Orchestra

Ниже приведен пример просмотра родословной в Orchestra для задач dbt:

Пример просмотра родословной для задач dbt в OrchestraПример просмотра родословной для задач dbt в Orchestra

Prefect

Если в вашей организации используется Prefect, то способ запуска заданий будет зависеть от версии dbt, которую вы используете, а также от того, оркестрируете ли вы задания dbt или dbt Core. Ниже приведены различные возможные варианты:

Prefect DAG using a dbt job run flowPrefect DAG using a dbt job run flow
Prefect DAG с использованием потока выполнения задачи dbt CloudPrefect DAG с использованием потока выполнения задачи dbt Cloud

Prefect 2

dbt job triggered by Prefectdbt job triggered by Prefect

Prefect 1

  • Запускайте задания dbt с помощью задачи DbtCloudRunJob.
  • При выполнении этой задачи будет сгенерирован markdown‑артефакт, доступный для просмотра в интерфейсе Prefect UI.
  • Артефакт будет содержать ссылки на dbt‑артефакты, созданные в результате выполнения задания.

Связанные материалы

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

0
Loading