Назад к вопросам
МВидео
Middle
7
Джобы из dbt в Airflow — ты руками писал или как-то автоматизировал, были шаблоны?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В моём опыте джобы для запуска dbt в Airflow чаще всего автоматизируются с помощью шаблонов и параметризации. Обычно создаётся один универсальный DAG с динамическим созданием тасков на основе списка моделей или проектов dbt. Это позволяет не писать вручную каждый таск.
Пример подхода:
- В Airflow читается конфиг или список моделей dbt.
- Для каждой модели создаётся таск с оператором BashOperator или PythonOperator, который запускает
dbt run --models <model>. - Используются шаблоны Jinja для генерации команд и параметров.
Пример кода на Python в Airflow:
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
models = ['model_a', 'model_b', 'model_c']
with DAG('dbt_dag', start_date=datetime(2023,1,1), schedule_interval='@daily') as dag:
for model in models:
BashOperator(
task_id=f'dbt_run_{model}',
bash_command=f'dbt run --models {model} --profiles-dir /path/to/profiles'
)
Такой подход упрощает поддержку и масштабирование, а также позволяет легко добавлять новые модели без изменения кода DAG.