Я оцениваю, подходит ли Airflow для моих нужд (в биоинформатике). У меня проблемы с моделью Airflow. Конкретно:
- Где на самом деле выполняется файл DAG? Каков его контекст? Как передать входные данные в файл определения DAG? (Например, я не хочу создавать задачу для каждого файла в каталоге.)
- Как я могу выполнять группу доступности базы данных на разовой основе? Как передать параметры для построения DAG?
Вот пример того, что я хотел бы выполнить. Скажем, я только что получил некоторые данные в виде каталога, содержащего 20 файлов, доступных в некоторой общей файловой системе. Я хочу выполнить конвейер DAG, который запускает определенную команду bash для каждого из 20 файлов, затем объединяет некоторые результаты и выполняет дальнейшую обработку. Группе DAG нужен путь в файловой системе, а также список файлов в каталоге, чтобы создать задачу для каждого из них.
Мне, вероятно, не нужно передавать метаданные от одной задачи к другой (что, как я понимаю, возможно через XCom
), если я могу динамически создать всю группу DAG заранее. Но мне непонятно, как пройти путь к построению DAG.
Другими словами, я бы хотел, чтобы мое определение DAG включало что-то вроде
dag = DAG(...)
for file in glob(input_path):
t = BashOperator(..., dag=dag)
Как мне получить input_path
, если я хочу вручную запустить DAG?
Мне также действительно не нужно планирование в стиле cron.