Size: a a a

2020 December 22

GB

Georgy Borodin in Airflow
Alexandr Vladimirovich
а скажите, в чем смысл использования execution_date значения в airflow? ведь он отражает не актуальное время выполнения ДАГа
зачем в макросах завязываться именно на этот атрибут мне непонятно
Вариантов очень много, вот, например:
1. Выставили датой старта 1 декабря
2. Написали воркфлоу, которому нужно сначала что-то посчитать из файлов за 1 декабря, чтобы считать правильно из файлов за 2-е
3. Сегодня 22-е, мы запускаем с catchup=True, и max_active_runs=1, всё идёт, как нужно
источник

GB

Georgy Borodin in Airflow
Или когда ты что-то грузишь от внешнего API, надо тебе получать за день инфу, если ты будешь использовать время сейчас для получения – успешно выгрузишь один день
источник

AV

Alexandr Vladimirovi... in Airflow
Georgy Borodin
Вариантов очень много, вот, например:
1. Выставили датой старта 1 декабря
2. Написали воркфлоу, которому нужно сначала что-то посчитать из файлов за 1 декабря, чтобы считать правильно из файлов за 2-е
3. Сегодня 22-е, мы запускаем с catchup=True, и max_active_runs=1, всё идёт, как нужно
но ведь в этом кейсе мы например не сможем вручную запускать тогда ДАГ, и максимум что мы сможем сделать, так это backfill
+ Мне кажется для этого аналогично можно было использовать prev_start_date значение из предыдущего ДАГа
лично для меня execution_date сыграл злую шутку, так как я изначально не так интерпретировал его значение
источник

GB

Georgy Borodin in Airflow
Alexandr Vladimirovich
но ведь в этом кейсе мы например не сможем вручную запускать тогда ДАГ, и максимум что мы сможем сделать, так это backfill
+ Мне кажется для этого аналогично можно было использовать prev_start_date значение из предыдущего ДАГа
лично для меня execution_date сыграл злую шутку, так как я изначально не так интерпретировал его значение
Почему? Я не совсем может корректно выразился, "запустили"="положили в эирфлоу". При указанной мной конфигурации он сам создаст запуски, начиная с самого первого, backfill нужен не будет
источник

AV

Alexandr Vladimirovi... in Airflow
Georgy Borodin
Почему? Я не совсем может корректно выразился, "запустили"="положили в эирфлоу". При указанной мной конфигурации он сам создаст запуски, начиная с самого первого, backfill нужен не будет
для первого запуска и не нужен будет конечно, но если например мы найдем дефект в загруженных данных, то нам придется править логику ДАГа и перезапускать его
источник

ME

Max Efremov in Airflow
Alexandr Vladimirovich
а скажите, в чем смысл использования execution_date значения в airflow? ведь он отражает не актуальное время выполнения ДАГа
зачем в макросах завязываться именно на этот атрибут мне непонятно
Для бэкфилинга
источник

AV

Alexandr Vladimirovi... in Airflow
Max Efremov
Для бэкфилинга
а можно для тупых пожалуйста ссылку на описание этого значение, а то чет в оф документации не нашел указание на это значение
источник

GB

Georgy Borodin in Airflow
Alexandr Vladimirovich
для первого запуска и не нужен будет конечно, но если например мы найдем дефект в загруженных данных, то нам придется править логику ДАГа и перезапускать его
Ну это уже условности, лить на прод битые даги не нужно)
источник

ME

Max Efremov in Airflow
Это кетчуп который, доппустим надо раз в месяц грузить данные, ставим старт прошлым годом и он нагоняет до текущего месяца
источник

GB

Georgy Borodin in Airflow
И даже когда ты перезапустишь битый даг, завязанный на execution_date, он выполнит действия актуальные для того момента
источник

AV

Alexandr Vladimirovi... in Airflow
Georgy Borodin
Ну это уже условности, лить на прод битые даги не нужно)
ну это ровно так же как и писать код без ошибок, первый блин комом)
источник

ME

Max Efremov in Airflow
А в каждом дагране юзает опорную дату
источник

AV

Alexandr Vladimirovi... in Airflow
Max Efremov
Для бэкфилинга
не, я про execution_date атрибут)
если есть полное описание атрибута, киньте плиз ссылку)
источник

GB

Georgy Borodin in Airflow
Короче, execution_date – самая соль Airflow, если он тебе не нужен – ты решаешь задачу, которую нужно было решить кроном
источник

ME

Max Efremov in Airflow
там просто дата запуска дага по расписанию. Наверное в доках что-то ещё написано, но суть такая
источник

ME

Max Efremov in Airflow
Причём она отстаёт от текущей даты всегда на 1 период
источник

ME

Max Efremov in Airflow
Т.е. данные процессятся при окончании той даты
источник

GB

Georgy Borodin in Airflow
Max Efremov
Причём она отстаёт от текущей даты всегда на 1 период
И то, специально)
источник

AV

Alexandr Vladimirovi... in Airflow
Georgy Borodin
Короче, execution_date – самая соль Airflow, если он тебе не нужен – ты решаешь задачу, которую нужно было решить кроном
ну смотрите, у меня задача такая, мне надо при запуске ДАГа получать время запуска ДАГа - 1 день
какой макрос мне для этого заюзать?
источник

ME

Max Efremov in Airflow
Georgy Borodin
И то, специально)
Да, так и надо по сути, но сначала я сам тупил
источник