Шаг 1 из 4

Добавление DAG

Сохраните код в модуль, например, first_dag.py. Теперь необходимо понять куда его поместить.

  1. Откройте файл конфигурации airflow.cfg
  2. Найдите в нём параметр dags_folder. Значение этого параметра это путь, где должны лежать ваши DAG. Если вы не изменяли этот параметр, то он равен $AIRFLOW_HOME/dags, где $AIRFLOW_HOME это переменная окружения.
  3. Поместите ваш файл в эту папку.

Необходимо убедиться, что у вас запущен планировщик и веб-сервер. Напомню, что именно планировщик отвечает за обнаружение новых DAG.

Если всё прошло без ошибок, то в панели управления вы должны увидеть свой первый DAG:

По умолчанию все новые DAG появляются в статусе Paused.

Комментарии

планировщик не находит файл с DAG если у файла не выставлены права на исполнение. Например, если файл создавался в пайчарме, можно перейти в директорию dags и выполнить: $ chmod 755 DAG_file.py

Шамиль, планировщик может не находить файл из-за отсутствия прав на чтение. Достаточно дать права 644, чтобы DAG был обнаружен. Спасибо за заметку, стоит добавить такое примечание в текст.

Подскажите, я когда активировал этот даг(кнопка переключатель на UI) но у меня начало выполняться куча дагов, хотя расписание вроде как раз в день. Почему так? Код дага не менял, все из урока.

norroen, этот механизм называется backfill и catchup, о них я пишу тут https://startdatajourney.com/ru/course/apache-airflow-2/modules/13/39/1 это означает, что по умолчанию Apache Airflow запускает даги за все прошедшие периоды, начиная со start_date + interval. Его можно отключить, если в настройки DAG передать catchup=False.

На всякий случай добавлю, что dag в UI появляется не сразу, а через 3-4 минуты

в продолжение к предыдущему комменту, кажется иногда нужно в веб интерфейсе обновить страницу ctrl+shift+R, чтобы увиделть свежий DAG

Внесу свои 5 копеек: Даги с одним id (with DAG(dag_id='first_dag', ...) не будут видны, точнее будет виден только один из них.

airflow.cfg где найти этот файл? Не вижу его нигде. Скопировала dags в папку, которую нашла в docker-compose.yml. Права 644 выдала на все файлы. Что еще можно попробовать, чтобы найти эти файлы?

airflow.cfg находится по пути, указанному в переменной окружения AIRFLOW_HOME, если она не была явно задана, то в папке /home/<username>/airflow/, где <username> это имя пользователя в системе. Эта папка создаётся при выполнении airflow initdb.