Size: a a a

2020 October 22

SG

Sergey Gavrilov in Airflow
Vladimir K.
Только есть небольшая проблемка) Например, вы идёте по ветке d1 >> p1
У меня стоит ограничение, что только одна активная таска в рамках дага
Он ставит для d2 и d3 статус queued. Потом он их делает up_for_retry. А потом failed)
Вот с этим не знаю, что делать. Придётся, видимо, делать последовательное выпонление
Очень странно, не должно так работать. У вас параллелизм равен 1?
источник

VK

Vladimir K. in Airflow
Georgy Borodin
Чисто из интереса: а разве недостаточно на уровне тасков прописать weight_rule='absolute'?
Проще ведь сразу для всего дага это сделать?
default_args = {
   'owner': 'airflow',
   'depends_on_past': False,
   'email': ['airflow@example.com'],
   'email_on_failure': False,
   'email_on_retry': False,
   'start_date': find_start_date(tables),
   'retries': 3,
   'retry_delay': timedelta(minutes=2),
   'concurrency': 1,
   'weight_rule': WeightRule.ABSOLUTE
}
источник

VK

Vladimir K. in Airflow
Sergey Gavrilov
Очень странно, не должно так работать. У вас параллелизм равен 1?
Да
источник

SG

Sergey Gavrilov in Airflow
Постараюсь не забыть и посмотреть у себя через полчаса
источник

VK

Vladimir K. in Airflow
Sergey Gavrilov
Постараюсь не забыть и посмотреть у себя через полчаса
Постараюсь сейчас повторить и заскринить
источник

GB

Georgy Borodin in Airflow
Vladimir K.
Проще ведь сразу для всего дага это сделать?
default_args = {
   'owner': 'airflow',
   'depends_on_past': False,
   'email': ['airflow@example.com'],
   'email_on_failure': False,
   'email_on_retry': False,
   'start_date': find_start_date(tables),
   'retries': 3,
   'retry_delay': timedelta(minutes=2),
   'concurrency': 1,
   'weight_rule': WeightRule.ABSOLUTE
}
Ну тоже верно, почему-то сразу подумал не про дефолты, а про отдельный параметр для самого дага (его нет)
источник

VK

Vladimir K. in Airflow
Хотя, что-то он теперь и вейты игнорит. Но всё равно, вот этот жёлтый статус потом зафейлится
источник

VK

Vladimir K. in Airflow
источник

GB

Georgy Borodin in Airflow
Вообще "по учебнику" up_for_retry тоже должны попадать в статус queued
источник

VK

Vladimir K. in Airflow
В общем, если нужен порядок, то лучше их тогда последовательно запускать. Спасибо за помощь. Если что, прикрепляю неудачный пример:
источник

GB

Georgy Borodin in Airflow
Можно ещё попробовать довольно топорно пулом ограничить
источник

ЖП

Жан Поль in Airflow
Всем привет, попробовали Airflow на Google cloud platform на самом дешёвом инстансе. за 10 дней -150 баксов, простейший даг тестировали

Это нормально? Или можно оптимизировать?
источник

SG

Sergey Gavrilov in Airflow
Жан Поль
Всем привет, попробовали Airflow на Google cloud platform на самом дешёвом инстансе. за 10 дней -150 баксов, простейший даг тестировали

Это нормально? Или можно оптимизировать?
Да, можете оптимизировать, только надо руками настройки всех машин редачить. И убрать кластерность.
источник

SG

Sergey Gavrilov in Airflow
Vladimir K.
Постараюсь сейчас повторить и заскринить
Попробуйте к concurrency добавить ещё task_concurrency
источник

SG

Sergey Gavrilov in Airflow
И тоже выставить 1
источник

AV

Alexander Verbitsky in Airflow
Всем привет!
Каким образом можно спроектировать pipeline.
Есть датасет из ~10k елементов, обработка каждого елемента это определенная последовательность
шагов т.е. какой-то DAG. Генерировать 10k dag-ов кажется не очень хорошей идеей. Можно использовать один dag и на каждом шаге обробатывать 10к елементов, но каким образом в этом случае параллелить?
источник

ME

Max Efremov in Airflow
мб это спарком каким-то?) А в аирфлоу просто сами шаги)
источник

SG

Sergey Gavrilov in Airflow
Вынужден признать правоту предыдущего оратора
источник

SG

Sergey Gavrilov in Airflow
Потому что Аерфлоу-скрипты распараллеливать лучше не, как говорится
источник

SG

Sergey Gavrilov in Airflow
Ну или напишите отдельную приложуху, которая всё это выполняет сабпроцессами и которую тянет через http таски аерфлоу... Вот только ну такое себе.
источник