У меня около миллиона задач Airflow, использующих одну и ту же функцию Python.Каждый из них должен запускаться с разными датами начала и параметрами.
Ранее я задавал вопрос о том, как запустить две такие задачи под одним DAG.Однако, когда задач становится много, ответы там не масштабируются.(см. ссылку и примечания)
Вопрос
Как я могу запустить миллион (или любое большое количество) или задач в масштабируемом режиме в Airflow, где каждая задачапроисходит из одной и той же функции Python, но имеет другую дату начала и другие аргументы?
Примечания
Задачи не должны выполняться на PythonOperator
(поскольку они происходят от функции Python).В действительности, они будут работать распределенным образом на кластере Kubernetes, скорее всего (например, с KubernetesExecutor
или KubernetesPodOperator
).В любом случае, архитектурная проблема, стоящая за вкладом DAG (ов), все еще остается.DAG, для динамического построения всех задач и внутри функции python, которая выполняется, чтобы передать различные даты начала.Снаружи Airflow будет выполнять каждую задачу каждый день, но внутри функции, если execution_date
раньше, чем start_date
, функция будет просто return 0
.