Автоматизированный рендеринг проектов dbt на Apache Airflow

data build tool (dbt), несомненно, является одной из быстро развивающихся технологий в области обработки данных и аналитики. dbt служит инструментом преобразования данных, играя решающую роль на Т-этапе конвейеров ELT. Это позволяет командам эффективно развертывать аналитический код, придерживаясь лучших практик разработки программного обеспечения. Эти методы включают модульность, непрерывную интеграцию и развертывание, а также автоматическое создание документации.

Хотя Fishtown Analytics, компания, которая первоначально создала dbt, предоставляет план облачного развертывания для этого инструмента, значительное число компаний по-прежнему предпочитают включать dbt в свои внутренние конвейеры данных. Самый распространенный способ добиться этого — использовать Apache Airflow, который позволяет пользователям создавать, планировать и отслеживать рабочие процессы.

В этой статье мы представим пакет Python, предназначенный для бесшовной интеграции проектов dbt с Apache Airflow. Этот пакет позволяет создавать отдельные задачи Airflow для каждого объекта dbt, такие как модели, тесты, семена и моментальные снимки, а также сохранять собственный граф зависимостей, установленный dbt.

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

Обзор архитектуры

Как упоминалось ранее, dbt доступен в двух вариантах: dbt Cloud и dbt Core. Первый — это управляемый сервис, предлагаемый dbt Labs, и он поставляется с пользовательским интерфейсом, который позволяет пользователям тестировать и развертывать аналитический код. С другой стороны, dbt Core — это инструмент командной строки с открытым исходным кодом, используемый для выполнения преобразований, указанных в проектах dbt.

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

Здесь на помощь приходит Apache Airflow. Airflow служит уровнем оркестровки, который обрабатывает…