Сохраните код в модуль, например, first_dag.py
. Теперь необходимо понять куда его поместить.
airflow.cfg
dags_folder
. Значение этого параметра это путь, где должны лежать ваши DAG. Если вы не изменяли этот параметр, то он равен $AIRFLOW_HOME/dags
, где $AIRFLOW_HOME
это переменная окружения.Необходимо убедиться, что у вас запущен планировщик и веб-сервер. Напомню, что именно планировщик отвечает за обнаружение новых DAG.
Если всё прошло без ошибок, то в панели управления вы должны увидеть свой первый DAG:
По умолчанию все новые DAG появляются в статусе Paused
.
Шамиль, планировщик может не находить файл из-за отсутствия прав на чтение. Достаточно дать права 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.
Шамиль Гумеров 3 Апрель 2021
планировщик не находит файл с DAG если у файла не выставлены права на исполнение. Например, если файл создавался в пайчарме, можно перейти в директорию dags и выполнить: $ chmod 755 DAG_file.py