Как стать автором
Обновить

Комментарии 4

Как написано в документации, «A key capability of Airflow is that these DAG Runs are atomic, idempotent items, <...>», что значит: «Подразумевается, что даг генерируется в неизменном виде».

Мне всегда казалось, смысл этого предложения в том, что каждый отдельный дагран можно запускать сколько угодно раз и ничего не изменится (смысл идемпотентной операции). Например, при загрузке данных за день предполагается, что сначала мы удаляем данные за этот день, чтобы они не задублировались. +atomic, то есть каждый дагран работает со своим набором данных (например, за конкретные сутки/час/10 минут).
Это относится к вопросу о том, на каких примерах кто понимает эти принципы.
Можно перефразировать как «каждый отдельный дагран можно запускать сколько угодно раз через любой промежуток времени и результат его работы не изменится».
То, о чём вы говорите, является следствием принципа идемпотентности, как и то, о чём я написал в статье. Если бы мы могли генерировать разный даг для разного даграна — да, идемпотентность в данном случае сводилось бы к сгенерированному инстансу даграна. Я же хотел подчеркнуть то, что при динамической генерации (когда даг изменяется во времени и не повторяется) возникают указанные мной проблемы.
А не было такого, что запускаете task1 >> task2, потом task1 заканчивает работу с ошибкой, поэтому task2 помечается как upstream_to_fail и после этого Airflow перестает запускать другие таски? Помогает только перезапуск Airflow
Другие таски этого дага, которые не связаны с task1?
Нет, таких ситуаций не было, но наши даги пока что простые в плане ветвлений и количества тасков.
Стоит спросить в группе в телеграме, там много опытного народа, кто-нибудь подскажет
Зарегистрируйтесь на Хабре, чтобы оставить комментарий