Проблема
Есть ли способ в Airflow создать рабочий процесс таким образом, чтобы количество задач B. * было неизвестно до завершения задачи A? Я посмотрел на subdags, но похоже, что он может работать только со статическим набором задач, которые должны быть определены при создании Dag.
Сработали бы триггеры срабатывания? И если бы вы могли бы привести пример.
У меня проблема, когда невозможно узнать количество задач B, которые понадобятся для вычисления задачи C до тех пор, пока задача A не будет завершена. Каждая задача B. * займет несколько часов для вычисления и не может быть объединена.
|---> Task B.1 --|
|---> Task B.2 --|
Task A ------|---> Task B.3 --|-----> Task C
| .... |
|---> Task B.N --|
Идея № 1
Мне не нравится это решение, потому что мне нужно создать блокирующий ExternalTaskSensor, и вся задача B. * займет от 2 до 24 часов. Поэтому я не считаю это жизнеспособным решением. Конечно, есть более простой способ? Или Airflow не предназначен для этого?
Dag 1
Task A -> TriggerDagRunOperator(Dag 2) -> ExternalTaskSensor(Dag 2, Task Dummy B) -> Task C
Dag 2 (Dynamically created DAG though python_callable in TriggerDagrunOperator)
|-- Task B.1 --|
|-- Task B.2 --|
Task Dummy A --|-- Task B.3 --|-----> Task Dummy B
| .... |
|-- Task B.N --|
Изменить 1:
На данный момент этот вопрос по-прежнему не имеет большого ответа. Меня связали несколько человек, которые искали решение.